Version 2.18.0-267.0.dev
Merge commit '2acc88a52d653d987541ee14857bdf35ef6fc9eb' into 'dev'
diff --git a/pkg/front_end/test/incremental_suite.dart b/pkg/front_end/test/incremental_suite.dart
index da9478c..de4a3cf 100644
--- a/pkg/front_end/test/incremental_suite.dart
+++ b/pkg/front_end/test/incremental_suite.dart
@@ -2208,7 +2208,8 @@
getterReference: lib.reference.canonicalName
?.getChildFromFieldGetterWithName(fieldName)
.reference,
- fileUri: lib.fileUri);
+ fileUri: lib.fileUri)
+ ..isNonNullableByDefault = lib.isNonNullableByDefault;
lib.addField(field);
for (Class c in lib.classes) {
if (c.fields
@@ -2224,7 +2225,8 @@
getterReference: c.reference.canonicalName
?.getChildFromFieldGetterWithName(fieldName)
.reference,
- fileUri: c.fileUri);
+ fileUri: c.fileUri)
+ ..isNonNullableByDefault = lib.isNonNullableByDefault;
c.addField(field);
}
}
diff --git a/pkg/front_end/testcases/incremental/await_in_non_async.yaml b/pkg/front_end/testcases/incremental/await_in_non_async.yaml
index 06c5f68..6e1730d 100644
--- a/pkg/front_end/testcases/incremental/await_in_non_async.yaml
+++ b/pkg/front_end/testcases/incremental/await_in_non_async.yaml
@@ -10,7 +10,6 @@
warnings: false
sources:
main.dart: |
- // @dart=2.9
main() {
foo();
}
@@ -26,7 +25,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
await foo();
}
diff --git a/pkg/front_end/testcases/incremental/await_in_non_async.yaml.world.2.expect b/pkg/front_end/testcases/incremental/await_in_non_async.yaml.world.2.expect
index 1e5883c..0e7c789 100644
--- a/pkg/front_end/testcases/incremental/await_in_non_async.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/await_in_non_async.yaml.world.2.expect
@@ -3,13 +3,13 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:3: Error: 'await' can only be used in 'async' or 'async*' methods.
+// org-dartlang-test:///main.dart:2:3: Error: 'await' can only be used in 'async' or 'async*' methods.
// await foo();
// ^^^^^
//
static method main() → dynamic {
- invalid-expression "org-dartlang-test:///main.dart:3:3: Error: 'await' can only be used in 'async' or 'async*' methods.\n await foo();\n ^^^^^";
+ invalid-expression "org-dartlang-test:///main.dart:2:3: Error: 'await' can only be used in 'async' or 'async*' methods.\n await foo();\n ^^^^^";
}
static method foo() → dynamic {}
}
diff --git a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml
index f6870cd..2e729f2 100644
--- a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml
+++ b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml
@@ -9,11 +9,9 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class A extends B {}
lib.dart: |
- // @dart=2.9
class B {
void bMethod() {}
}
@@ -25,11 +23,9 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class A extends B {}
lib.dart: |
- // @dart=2.9
class B {
void bMethod() {}
}
@@ -53,11 +49,9 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class A extends B {}
lib.dart: |
- // @dart=2.9
class B {
void bMethod() {}
}
diff --git a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.1.expect b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.1.expect
index ab925ca..f05d8a2 100644
--- a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.1.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///lib.dart" as lib {
class B extends dart.core::Object {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super dart.core::Object::•()
;
method bMethod() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -23,7 +13,7 @@
import "org-dartlang-test:///lib.dart";
class A extends lib::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super lib::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.2.expect b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.2.expect
index ab925ca..f05d8a2 100644
--- a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.2.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///lib.dart" as lib {
class B extends dart.core::Object {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super dart.core::Object::•()
;
method bMethod() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -23,7 +13,7 @@
import "org-dartlang-test:///lib.dart";
class A extends lib::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super lib::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.3.expect b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.3.expect
index 69312e6..e2d5d4f 100644
--- a/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/bad_sdk_uri.yaml.world.3.expect
@@ -2,11 +2,10 @@
library from "org-dartlang-test:///lib.dart" as lib {
class B extends #lib1::Object {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super #lib1::Object::•()
;
method bMethod() → void {}
- abstract member-signature operator ==(dynamic dynamic) → #lib1::bool*; -> #lib1::Object::==
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -14,7 +13,7 @@
import "org-dartlang-test:///lib.dart";
class A extends lib::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super lib::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/calculated_bounds_no_strongmode.yaml b/pkg/front_end/testcases/incremental/calculated_bounds_no_strongmode.yaml
index a414ca1..f884677 100644
--- a/pkg/front_end/testcases/incremental/calculated_bounds_no_strongmode.yaml
+++ b/pkg/front_end/testcases/incremental/calculated_bounds_no_strongmode.yaml
@@ -11,12 +11,10 @@
- a.dart
sources:
a.dart: |
- // @dart=2.9
import 'b.dart';
class A {
void foo(B cls) {}
}
b.dart: |
- // @dart=2.9
abstract class B<T extends String> {}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/incremental/change_between_no_nnbd_and_nnbd.yaml b/pkg/front_end/testcases/incremental/change_between_no_nnbd_and_nnbd.yaml
index 6c6a9bd..1743104 100644
--- a/pkg/front_end/testcases/incremental/change_between_no_nnbd_and_nnbd.yaml
+++ b/pkg/front_end/testcases/incremental/change_between_no_nnbd_and_nnbd.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
libMethod();
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml
index a4648e6..4141487 100644
--- a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
@@ -19,7 +18,6 @@
print(c);
}
lib.dart: |
- // @dart=2.9
class A {
const A();
}
@@ -41,6 +39,5 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
index f9945e5..2f204b3 100644
--- a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.1.expect
@@ -2,37 +2,17 @@
library from "org-dartlang-test:///lib.dart" as lib {
class A extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → lib::A*
+ const constructor •() → lib::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends dart.core::Object implements lib::A /*hasConstConstructor*/ {
- const constructor •() → lib::B*
+ const constructor •() → lib::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends lib::B /*hasConstConstructor*/ {
- const constructor •([lib::A* a = #C1]) → lib::C*
+ const constructor •([lib::A a = #C1]) → lib::C
: super lib::B::•()
;
}
@@ -53,11 +33,11 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- C. (from org-dartlang-test:///lib.dart:11:9)
-- B. (from org-dartlang-test:///lib.dart:7:9)
+- C. (from org-dartlang-test:///lib.dart:10:9)
+- B. (from org-dartlang-test:///lib.dart:6:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-test:///lib.dart:
-- A. (from org-dartlang-test:///lib.dart:3:9)
+- A. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
index f994018..15ba313 100644
--- a/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changed_serialization_2.yaml.world.2.expect
@@ -2,37 +2,17 @@
library from "org-dartlang-test:///lib.dart" as lib {
class A extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → lib::A*
+ const constructor •() → lib::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends dart.core::Object implements lib::A /*hasConstConstructor*/ {
- const constructor •() → lib::B*
+ const constructor •() → lib::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends lib::B /*hasConstConstructor*/ {
- const constructor •([lib::A* a = #C1]) → lib::C*
+ const constructor •([lib::A a = #C1]) → lib::C
: super lib::B::•()
;
}
@@ -49,6 +29,6 @@
Constructor coverage from constants:
org-dartlang-test:///lib.dart:
-- A. (from org-dartlang-test:///lib.dart:3:9)
+- A. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/changing_modules.yaml b/pkg/front_end/testcases/incremental/changing_modules.yaml
index e6638ae..44769e1 100644
--- a/pkg/front_end/testcases/incremental/changing_modules.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules.yaml
@@ -9,7 +9,6 @@
modules:
example_0.1.0:
example_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -17,7 +16,6 @@
print("Hello from v0.1.0");
}
example_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
@@ -34,7 +32,6 @@
}
example_0.1.1:
example_0.1.1/b.dart: |
- // @dart=2.9
b() {
print("Hello from v0.1.1");
}
@@ -51,7 +48,6 @@
}
foo_1:
foo_1/foo.dart: |
- // @dart=2.9
import "package:example/b.dart";
foo() {
print("Hello from foo");
@@ -74,7 +70,6 @@
}
foo_2:
foo_2/foo.dart: |
- // @dart=2.9
import "package:example/b.dart";
import "bar.dart";
import "baz.dart";
@@ -86,12 +81,10 @@
}
bool foo2 = true;
foo_2/bar.dart: |
- // @dart=2.9
bar() {
print("hello from bar");
}
foo_2/baz.dart: |
- // @dart=2.9
baz() {
print("hello from baz");
}
@@ -114,7 +107,6 @@
fromComponent: true
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
@@ -149,7 +141,6 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
import "package:foo/foo.dart";
main() {
print("hello");
@@ -191,7 +182,6 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
import "package:foo/foo.dart";
main() {
print("hello");
diff --git a/pkg/front_end/testcases/incremental/changing_modules.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules.yaml.world.2.expect
index 5e9ae23..e9555cc 100644
--- a/pkg/front_end/testcases/incremental/changing_modules.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules.yaml.world.2.expect
@@ -20,7 +20,7 @@
import "package:example/b.dart";
- static field dart.core::bool* foo1 = true;
+ static field dart.core::bool foo1 = true;
static method foo() → dynamic {
dart.core::print("Hello from foo");
b::b();
diff --git a/pkg/front_end/testcases/incremental/changing_modules.yaml.world.3.expect b/pkg/front_end/testcases/incremental/changing_modules.yaml.world.3.expect
index 6fe58fb..691384d 100644
--- a/pkg/front_end/testcases/incremental/changing_modules.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules.yaml.world.3.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "package:example/b.dart" as b {
- static field dart.core::bool* example011 = true;
+ static field dart.core::bool example011 = true;
static method b() → dynamic {
dart.core::print("Hello from v0.1.1");
}
@@ -24,7 +24,7 @@
import "package:foo/bar.dart";
import "package:foo/baz.dart";
- static field dart.core::bool* foo2 = true;
+ static field dart.core::bool foo2 = true;
static method foo() → dynamic {
dart.core::print("Hello from foo 2");
bar::bar();
diff --git a/pkg/front_end/testcases/incremental/changing_modules_10.yaml b/pkg/front_end/testcases/incremental/changing_modules_10.yaml
index e81be38..5d47893 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_10.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_10.yaml
@@ -10,13 +10,11 @@
modules:
module:
module/a.dart: |
- // @dart=2.9
import 'package:module/b.dart';
class A extends A2<B> { }
class A2<T> { }
module/b.dart: |
- // @dart=2.9
class B { }
module/.dart_tool/package_config.json: |
{
@@ -33,7 +31,6 @@
fromComponent: true
sources:
main.dart: |
- // @dart=2.9
import 'package:module/a.dart';
class Foo extends A {}
.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.1.expect
index 8f6e15e..a4aa8e8 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.1.expect
@@ -4,7 +4,7 @@
import "package:module/a.dart";
class Foo extends a::A {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super a::A::•()
;
}
@@ -13,42 +13,22 @@
import "package:module/b.dart";
- class A extends a::A2<b::B*> {
- synthetic constructor •() → a::A*
+ class A extends a::A2<b::B> {
+ synthetic constructor •() → a::A
: super a::A2::•()
;
}
- class A2<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::A2<a::A2::T*>*
+ class A2<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::A2<a::A2::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/b.dart" as b {
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.2.expect
index 8f6e15e..a4aa8e8 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_10.yaml.world.2.expect
@@ -4,7 +4,7 @@
import "package:module/a.dart";
class Foo extends a::A {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super a::A::•()
;
}
@@ -13,42 +13,22 @@
import "package:module/b.dart";
- class A extends a::A2<b::B*> {
- synthetic constructor •() → a::A*
+ class A extends a::A2<b::B> {
+ synthetic constructor •() → a::A
: super a::A2::•()
;
}
- class A2<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::A2<a::A2::T*>*
+ class A2<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::A2<a::A2::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/b.dart" as b {
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_11.yaml b/pkg/front_end/testcases/incremental/changing_modules_11.yaml
index e433d98..ec018d6 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_11.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_11.yaml
@@ -10,13 +10,11 @@
modules:
module:
module/a.dart: |
- // @dart=2.9
import 'package:module/b.dart';
class A implements A2<B> { }
class A2<T> { }
module/b.dart: |
- // @dart=2.9
class B { }
module/.dart_tool/package_config.json: |
{
@@ -33,7 +31,6 @@
fromComponent: true
sources:
main.dart: |
- // @dart=2.9
import 'package:module/a.dart';
class Foo extends A {}
.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.1.expect
index dc93385..e94c8ee 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.1.expect
@@ -4,7 +4,7 @@
import "package:module/a.dart";
class Foo extends a::A {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super a::A::•()
;
}
@@ -13,52 +13,22 @@
import "package:module/b.dart";
- class A extends dart.core::Object implements a::A2<b::B*> {
- synthetic constructor •() → a::A*
+ class A extends dart.core::Object implements a::A2<b::B> {
+ synthetic constructor •() → a::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class A2<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::A2<a::A2::T*>*
+ class A2<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::A2<a::A2::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/b.dart" as b {
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.2.expect
index dc93385..e94c8ee 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_11.yaml.world.2.expect
@@ -4,7 +4,7 @@
import "package:module/a.dart";
class Foo extends a::A {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super a::A::•()
;
}
@@ -13,52 +13,22 @@
import "package:module/b.dart";
- class A extends dart.core::Object implements a::A2<b::B*> {
- synthetic constructor •() → a::A*
+ class A extends dart.core::Object implements a::A2<b::B> {
+ synthetic constructor •() → a::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class A2<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::A2<a::A2::T*>*
+ class A2<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::A2<a::A2::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/b.dart" as b {
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_12.yaml b/pkg/front_end/testcases/incremental/changing_modules_12.yaml
index 082cc0a..ce698ca 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_12.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_12.yaml
@@ -9,19 +9,15 @@
modules:
module:
module/a.dart: |
- // @dart=2.9
import 'package:module/b.dart';
class A { }
module/b.dart: |
- // @dart=2.9
export 'package:module/a.dart';
class B { }
module/c.dart: |
- // @dart=2.9
export 'package:module/d.dart';
class C { }
module/d.dart: |
- // @dart=2.9
import 'package:module/c.dart';
class D { }
module/.dart_tool/package_config.json: |
@@ -39,7 +35,6 @@
fromComponent: true
sources:
main.dart: |
- // @dart=2.9
class Foo {}
.dart_tool/package_config.json: |
{
diff --git a/pkg/front_end/testcases/incremental/changing_modules_12.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_12.yaml.world.1.expect
index 5bf5f6e..96e3132 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_12.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_12.yaml.world.1.expect
@@ -2,18 +2,8 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_13.yaml b/pkg/front_end/testcases/incremental/changing_modules_13.yaml
index d92b7ca..050087a 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_13.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_13.yaml
@@ -9,7 +9,6 @@
modules:
module:
module/a.dart: |
- // @dart=2.9
class A { }
class B { }
class C { }
@@ -29,7 +28,6 @@
fromComponent: true
sources:
main.dart: |
- // @dart=2.9
import "package:module/a.dart";
class ABC = AB with C;
.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect
index 136a4b6..dc9475d 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_13.yaml.world.1.expect
@@ -4,7 +4,7 @@
import "package:module/a.dart";
class ABC = a::AB with a::C {
- synthetic constructor •() → main::ABC*
+ synthetic constructor •() → main::ABC
: super a::AB::•()
;
}
@@ -12,52 +12,22 @@
library from "package:module/a.dart" as a {
class A extends dart.core::Object {
- synthetic constructor •() → a::A*
+ synthetic constructor •() → a::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends dart.core::Object {
- synthetic constructor •() → a::B*
+ synthetic constructor •() → a::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends dart.core::Object {
- synthetic constructor •() → a::C*
+ synthetic constructor •() → a::C
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class AB = a::A with a::B {
- synthetic constructor •() → a::AB*
+ synthetic constructor •() → a::AB
: super a::A::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_14.yaml b/pkg/front_end/testcases/incremental/changing_modules_14.yaml
index 77d4395..d3973fe 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_14.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_14.yaml
@@ -12,7 +12,6 @@
modules:
moduleC:
moduleC/lib.dart: |
- // @dart=2.9
const constC = ['value_c'];
moduleC/.dart_tool/package_config.json: |
{
@@ -26,7 +25,6 @@
}
moduleB:
moduleB/lib.dart: |
- // @dart=2.9
import "package:moduleC/lib.dart";
const constB = ['value_b', constC];
moduleB/.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/changing_modules_14.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_14.yaml.world.1.expect
index ac9e649..fc4a047 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_14.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_14.yaml.world.1.expect
@@ -15,11 +15,11 @@
import "package:moduleC/lib.dart";
- static const field dart.core::List<dart.core::Object*>* constB = const <dart.core::Object*>["value_b", lib3::constC];
+ static const field dart.core::List<dart.core::Object> constB = const <dart.core::Object>["value_b", lib3::constC];
}
library from "package:moduleC/lib.dart" as lib3 {
- static const field dart.core::List<dart.core::String*>* constC = const <dart.core::String*>["value_c"];
+ static const field dart.core::List<dart.core::String> constC = const <dart.core::String>["value_c"];
}
constants {
#C1 = 42.0
diff --git a/pkg/front_end/testcases/incremental/changing_modules_15.yaml b/pkg/front_end/testcases/incremental/changing_modules_15.yaml
index f1c4102..ee0493c 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_15.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_15.yaml
@@ -12,7 +12,6 @@
modules:
moduleC:
moduleC/lib.dart: |
- // @dart=2.9
const constC = true;
moduleC/.dart_tool/package_config.json: |
{
@@ -26,7 +25,6 @@
}
moduleB:
moduleB/lib.dart: |
- // @dart=2.9
import "package:moduleC/lib.dart";
const constB = false || constC;
moduleB/.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/changing_modules_15.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_15.yaml.world.1.expect
index c7ef4da..4c400fa 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_15.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_15.yaml.world.1.expect
@@ -9,11 +9,11 @@
import "package:moduleC/lib.dart";
- static const field dart.core::bool* constB = false || lib2::constC;
+ static const field dart.core::bool constB = false || lib2::constC;
}
library from "package:moduleC/lib.dart" as lib2 {
- static const field dart.core::bool* constC = true;
+ static const field dart.core::bool constC = true;
}
constants {
#C1 = true
diff --git a/pkg/front_end/testcases/incremental/changing_modules_2.yaml b/pkg/front_end/testcases/incremental/changing_modules_2.yaml
index a73afd8..51655eb 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_2.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_2.yaml
@@ -9,7 +9,6 @@
modules:
example_1:
example_1/a.dart: |
- // @dart=2.9
a() {}
var example = true;
example_1/.dart_tool/package_config.json: |
@@ -24,7 +23,6 @@
}
example_2:
example_2/a.dart: |
- // @dart=2.9
a() {}
var example = true;
example_2/.dart_tool/package_config.json: |
@@ -39,7 +37,6 @@
}
foo:
foo/foo.dart: |
- // @dart=2.9
export "package:example/a.dart";
var foo = true;
foo/.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.1.expect
index 41e48cc..6375850 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.1.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "package:example/a.dart" as a {
- static field dart.core::bool* example = true;
+ static field dart.core::bool example = true;
static method a() → dynamic {}
}
library from "package:foo/foo.dart" as foo {
@@ -11,7 +11,7 @@
export "package:example/a.dart";
- static field dart.core::bool* foo = true;
+ static field dart.core::bool foo = true;
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.2.expect
index 41e48cc..6375850 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_2.yaml.world.2.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "package:example/a.dart" as a {
- static field dart.core::bool* example = true;
+ static field dart.core::bool example = true;
static method a() → dynamic {}
}
library from "package:foo/foo.dart" as foo {
@@ -11,7 +11,7 @@
export "package:example/a.dart";
- static field dart.core::bool* foo = true;
+ static field dart.core::bool foo = true;
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_3.yaml b/pkg/front_end/testcases/incremental/changing_modules_3.yaml
index b8e864b..53ccb82 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_3.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_3.yaml
@@ -9,7 +9,6 @@
modules:
foo:
foo/foo.dart: |
- // @dart=2.9
var foo = true;
foo/.dart_tool/package_config.json: |
{
@@ -23,7 +22,6 @@
}
foo2:
foo2/foo.dart: |
- // @dart=2.9
var foo2 = true;
foo2/.dart_tool/package_config.json: |
{
@@ -41,7 +39,6 @@
simulateTransformer: true
sources:
main.dart: |
- // @dart=2.9
import "package:foo/foo.dart";
main() {
print(foo);
@@ -74,7 +71,6 @@
simulateTransformer: true
sources:
main.dart: |
- // @dart=2.9
import "package:foo/foo.dart";
main() {
print(foo2);
diff --git a/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.1.expect
index d25031d1..bb6bb75 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.1.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "package:foo/foo.dart" as foo {
- static field dart.core::bool* foo = true;
+ static field dart.core::bool foo = true;
final field dynamic unique_SimulateTransformer;
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.2.expect
index 56379e6..992affc 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_3.yaml.world.2.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "package:foo/foo.dart" as foo {
- static field dart.core::bool* foo2 = true;
+ static field dart.core::bool foo2 = true;
final field dynamic unique_SimulateTransformer;
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_4.yaml b/pkg/front_end/testcases/incremental/changing_modules_4.yaml
index 3e155a2..896fcfc 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_4.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_4.yaml
@@ -10,7 +10,6 @@
modules:
moduleB:
moduleB/b.dart: |
- // @dart=2.9
import 'package:moduleC/c.dart';
export 'package:moduleC/c.dart' show baz;
@@ -39,7 +38,6 @@
}
moduleC:
moduleC/c.dart: |
- // @dart=2.9
import 'package:moduleD/d.dart';
String baz = "42";
@@ -64,7 +62,6 @@
}
moduleD:
moduleD/d.dart: |
- // @dart=2.9
String baz3 = "baz3";
moduleD/.dart_tool/package_config.json: |
{
@@ -81,7 +78,6 @@
fromComponent: true
sources:
a.dart: |
- // @dart=2.9
import "package:moduleB/b.dart";
String foo = baz;
diff --git a/pkg/front_end/testcases/incremental/changing_modules_4.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_4.yaml.world.1.expect
index 24ffa21..46e3fd2 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_4.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_4.yaml.world.1.expect
@@ -3,8 +3,8 @@
import "package:moduleB/b.dart";
- static field dart.core::String* foo = c::baz;
- static field dart.core::int* x = b::mya2.{b::A2::bar}{dart.core::int*};
+ static field dart.core::String foo = c::baz;
+ static field dart.core::int x = b::mya2.{b::A2::bar}{dart.core::int};
}
library from "package:moduleB/b.dart" as b {
additionalExports = (c::baz,
@@ -14,37 +14,27 @@
export "package:moduleC/c.dart" show baz;
class A2 extends c::A3 {
- field dart.core::int* bar = 42;
- synthetic constructor •() → b::A2*
+ field dart.core::int bar = 42;
+ synthetic constructor •() → b::A2
: super c::A3::•()
;
}
- static field b::A2* mya2 = new b::A2::•();
+ static field b::A2 mya2 = new b::A2::•();
}
library from "package:moduleC/c.dart" as c {
import "package:moduleD/d.dart";
class A3 extends dart.core::Object {
- field dart.core::int* foo = 42;
- synthetic constructor •() → c::A3*
+ field dart.core::int foo = 42;
+ synthetic constructor •() → c::A3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static field dart.core::String* baz = "42";
- static field dart.core::String* baz2 = d::baz3;
+ static field dart.core::String baz = "42";
+ static field dart.core::String baz2 = d::baz3;
}
library from "package:moduleD/d.dart" as d {
- static field dart.core::String* baz3 = "baz3";
+ static field dart.core::String baz3 = "baz3";
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_5.yaml b/pkg/front_end/testcases/incremental/changing_modules_5.yaml
index 4cd4a5f..9907b09 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_5.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_5.yaml
@@ -10,7 +10,6 @@
modules:
moduleB:
moduleB/b.dart: |
- // @dart=2.9
import 'package:moduleC/c.dart';
var bVar = 42;
@@ -40,7 +39,6 @@
}
moduleC:
moduleC/c.dart: |
- // @dart=2.9
import 'package:moduleD/d.dart';
String baz = "42";
@@ -65,7 +63,6 @@
}
moduleD:
moduleD/d.dart: |
- // @dart=2.9
String baz3 = "baz3";
moduleD/.dart_tool/package_config.json: |
{
@@ -82,7 +79,6 @@
fromComponent: true
sources:
a.dart: |
- // @dart=2.9
import "package:moduleB/b.dart";
var foo = bVar;
diff --git a/pkg/front_end/testcases/incremental/changing_modules_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_5.yaml.world.1.expect
index c70a885..ff83593 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_5.yaml.world.1.expect
@@ -3,47 +3,37 @@
import "package:moduleB/b.dart";
- static field dart.core::int* foo = b::bVar;
- static field dart.core::String* foo2 = b::bVarFromC;
+ static field dart.core::int foo = b::bVar;
+ static field dart.core::String foo2 = b::bVarFromC;
}
library from "package:moduleB/b.dart" as b {
import "package:moduleC/c.dart";
class A2 extends c::A3 {
- field dart.core::int* bar = 42;
- synthetic constructor •() → b::A2*
+ field dart.core::int bar = 42;
+ synthetic constructor •() → b::A2
: super c::A3::•()
;
}
- static field dart.core::int* bVar = 42;
- static field dart.core::String* bVarFromC = c::baz2;
- static field b::A2* mya2 = new b::A2::•();
+ static field dart.core::int bVar = 42;
+ static field dart.core::String bVarFromC = c::baz2;
+ static field b::A2 mya2 = new b::A2::•();
}
library from "package:moduleC/c.dart" as c {
import "package:moduleD/d.dart";
class A3 extends dart.core::Object {
- field dart.core::int* foo = 42;
- synthetic constructor •() → c::A3*
+ field dart.core::int foo = 42;
+ synthetic constructor •() → c::A3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static field dart.core::String* baz = "42";
- static field dart.core::String* baz2 = d::baz3;
+ static field dart.core::String baz = "42";
+ static field dart.core::String baz2 = d::baz3;
}
library from "package:moduleD/d.dart" as d {
- static field dart.core::String* baz3 = "baz3";
+ static field dart.core::String baz3 = "baz3";
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_6.yaml b/pkg/front_end/testcases/incremental/changing_modules_6.yaml
index ee9094b..108d3d7 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_6.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_6.yaml
@@ -10,7 +10,6 @@
modules:
moduleB:
moduleB/b.dart: |
- // @dart=2.9
import 'package:moduleC/c.dart';
var bVar = 42;
@@ -40,7 +39,6 @@
}
moduleC:
moduleC/c.dart: |
- // @dart=2.9
import 'package:moduleD/d.dart';
String baz = "42";
@@ -65,7 +63,6 @@
}
moduleD:
moduleD/d.dart: |
- // @dart=2.9
String baz3 = "baz3";
moduleD/.dart_tool/package_config.json: |
{
@@ -82,7 +79,6 @@
fromComponent: true
sources:
a.dart: |
- // @dart=2.9
import "package:moduleB/b.dart";
var foo = bVar;
diff --git a/pkg/front_end/testcases/incremental/changing_modules_6.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_6.yaml.world.1.expect
index 264ec86..35d0600 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_6.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_6.yaml.world.1.expect
@@ -4,53 +4,43 @@
import "package:moduleB/b.dart";
class A1 extends b::A2 {
- synthetic constructor •() → a::A1*
+ synthetic constructor •() → a::A1
: super b::A2::•()
;
- method fooMethod() → dart.core::String*
+ method fooMethod() → dart.core::String
return "42!";
}
- static field dart.core::int* foo = b::bVar;
- static field dart.core::String* foo2 = b::bVarFromC;
+ static field dart.core::int foo = b::bVar;
+ static field dart.core::String foo2 = b::bVarFromC;
}
library from "package:moduleB/b.dart" as b {
import "package:moduleC/c.dart";
class A2 extends c::A3 {
- field dart.core::int* bar = 42;
- synthetic constructor •() → b::A2*
+ field dart.core::int bar = 42;
+ synthetic constructor •() → b::A2
: super c::A3::•()
;
}
- static field dart.core::int* bVar = 42;
- static field dart.core::String* bVarFromC = c::baz2;
- static field b::A2* mya2 = new b::A2::•();
+ static field dart.core::int bVar = 42;
+ static field dart.core::String bVarFromC = c::baz2;
+ static field b::A2 mya2 = new b::A2::•();
}
library from "package:moduleC/c.dart" as c {
import "package:moduleD/d.dart";
class A3 extends dart.core::Object {
- field dart.core::int* foo = 42;
- synthetic constructor •() → c::A3*
+ field dart.core::int foo = 42;
+ synthetic constructor •() → c::A3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static field dart.core::String* baz = "42";
- static field dart.core::String* baz2 = d::baz3;
+ static field dart.core::String baz = "42";
+ static field dart.core::String baz2 = d::baz3;
}
library from "package:moduleD/d.dart" as d {
- static field dart.core::String* baz3 = "baz3";
+ static field dart.core::String baz3 = "baz3";
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_7.yaml b/pkg/front_end/testcases/incremental/changing_modules_7.yaml
index 28632d3..2fbcb0b 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_7.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_7.yaml
@@ -10,14 +10,12 @@
modules:
module:
module/lib1.dart: |
- // @dart=2.9
import 'lib3.dart';
class Class1 {
- Class3a get c3a {}
+ Class3a get c3a => throw '';
}
module/lib2.dart: |
- // @dart=2.9
import 'lib4.dart';
class Class2 {
@@ -27,16 +25,14 @@
}
}
module/lib3.dart: |
- // @dart=2.9
class Class3a {
- Class3b get c3b {}
+ Class3b get c3b => throw '';
}
class Class3b {
- String str() {}
+ String str() => throw '';
}
module/lib4.dart: |
- // @dart=2.9
class Class4 {}
module/.dart_tool/package_config.json: |
{
@@ -53,7 +49,6 @@
fromComponent: true
sources:
compileme.dart: |
- // @dart=2.9
import 'package:module/lib1.dart';
import 'package:module/lib2.dart';
@@ -106,7 +101,6 @@
skipOutlineBodyCheck: true
sources:
compileme.dart: |
- // @dart=2.9
import 'package:module/lib1.dart';
import 'package:module/lib2.dart';
diff --git a/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.1.expect
index a3215f8d..61a40e9 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.1.expect
@@ -5,27 +5,17 @@
import "package:module/lib2.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → com::Foo*
+ synthetic constructor •() → com::Foo
: super dart.core::Object::•()
;
- method class1() → lib1::Class1* {
- lib1::Class1* class1 = new lib1::Class1::•();
- class1.{lib1::Class1::c3a}{lib3::Class3a*}.{lib3::Class3a::c3b}{lib3::Class3b*}.{lib3::Class3b::str}(){() →* dart.core::String*};
+ method class1() → lib1::Class1 {
+ lib1::Class1 class1 = new lib1::Class1::•();
+ class1.{lib1::Class1::c3a}{lib3::Class3a}.{lib3::Class3a::c3b}{lib3::Class3b}.{lib3::Class3b::str}(){() → dart.core::String};
return class1;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- lib2::Class2* class2 = new lib2::Class2::•();
+ lib2::Class2 class2 = new lib2::Class2::•();
dart.core::print(class2);
}
}
@@ -34,20 +24,11 @@
import "package:module/lib3.dart";
class Class1 extends dart.core::Object {
- synthetic constructor •() → lib1::Class1*
+ synthetic constructor •() → lib1::Class1
: super dart.core::Object::•()
;
- get c3a() → lib3::Class3a* {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ get c3a() → lib3::Class3a
+ return throw "";
}
}
library from "package:module/lib2.dart" as lib2 {
@@ -55,75 +36,37 @@
import "package:module/lib4.dart";
class Class2 extends dart.core::Object {
- synthetic constructor •() → lib2::Class2*
+ synthetic constructor •() → lib2::Class2
: super dart.core::Object::•()
;
method cl4() → void {
- lib4::Class4* class4 = new lib4::Class4::•();
+ lib4::Class4 class4 = new lib4::Class4::•();
dart.core::print(class4);
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/lib3.dart" as lib3 {
class Class3a extends dart.core::Object {
- synthetic constructor •() → lib3::Class3a*
+ synthetic constructor •() → lib3::Class3a
: super dart.core::Object::•()
;
- get c3b() → lib3::Class3b* {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ get c3b() → lib3::Class3b
+ return throw "";
}
class Class3b extends dart.core::Object {
- synthetic constructor •() → lib3::Class3b*
+ synthetic constructor •() → lib3::Class3b
: super dart.core::Object::•()
;
- method str() → dart.core::String* {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method str() → dart.core::String
+ return throw "";
}
}
library from "package:module/lib4.dart" as lib4 {
class Class4 extends dart.core::Object {
- synthetic constructor •() → lib4::Class4*
+ synthetic constructor •() → lib4::Class4
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.2.expect
index c677c51..df138d5 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_7.yaml.world.2.expect
@@ -5,20 +5,10 @@
import "package:module/lib2.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → com::Foo*
+ synthetic constructor •() → com::Foo
;
- method class1() → lib1::Class1*
+ method class1() → lib1::Class1
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic
;
@@ -28,20 +18,11 @@
import "package:module/lib3.dart";
class Class1 extends dart.core::Object {
- synthetic constructor •() → lib1::Class1*
+ synthetic constructor •() → lib1::Class1
: super dart.core::Object::•()
;
- get c3a() → lib3::Class3a* {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ get c3a() → lib3::Class3a
+ return throw "";
}
}
library from "package:module/lib2.dart" as lib2 {
@@ -49,75 +30,37 @@
import "package:module/lib4.dart";
class Class2 extends dart.core::Object {
- synthetic constructor •() → lib2::Class2*
+ synthetic constructor •() → lib2::Class2
: super dart.core::Object::•()
;
method cl4() → void {
- lib4::Class4* class4 = new lib4::Class4::•();
+ lib4::Class4 class4 = new lib4::Class4::•();
dart.core::print(class4);
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/lib3.dart" as lib3 {
class Class3a extends dart.core::Object {
- synthetic constructor •() → lib3::Class3a*
+ synthetic constructor •() → lib3::Class3a
: super dart.core::Object::•()
;
- get c3b() → lib3::Class3b* {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ get c3b() → lib3::Class3b
+ return throw "";
}
class Class3b extends dart.core::Object {
- synthetic constructor •() → lib3::Class3b*
+ synthetic constructor •() → lib3::Class3b
: super dart.core::Object::•()
;
- method str() → dart.core::String* {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method str() → dart.core::String
+ return throw "";
}
}
library from "package:module/lib4.dart" as lib4 {
class Class4 extends dart.core::Object {
- synthetic constructor •() → lib4::Class4*
+ synthetic constructor •() → lib4::Class4
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_8.yaml b/pkg/front_end/testcases/incremental/changing_modules_8.yaml
index 118080c..281ee16 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_8.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_8.yaml
@@ -10,14 +10,12 @@
modules:
module:
module/lib1.dart: |
- // @dart=2.9
import 'lib2.dart';
abstract class XSet {
factory XSet.identity() = XLinkedHashSet.identity;
}
module/lib2.dart: |
- // @dart=2.9
import 'lib1.dart';
import 'lib3.dart';
@@ -25,7 +23,6 @@
factory XLinkedHashSet.identity() = XIdentityHashSet;
}
module/lib3.dart: |
- // @dart=2.9
import 'lib2.dart';
class XIdentityHashSet implements XLinkedHashSet {
@@ -46,7 +43,6 @@
fromComponent: true
sources:
compileme.dart: |
- // @dart=2.9
import 'package:module/lib1.dart';
main() {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect
index f8cb2d3..abc21f4 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_8.yaml.world.1.expect
@@ -4,7 +4,7 @@
import "package:module/lib1.dart";
static method main() → dynamic {
- lib1::XSet* history = new lib3::XIdentityHashSet::•();
+ lib1::XSet history = new lib3::XIdentityHashSet::•();
}
}
library from "package:module/lib1.dart" as lib1 {
@@ -12,19 +12,9 @@
import "package:module/lib2.dart";
abstract class XSet extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- static factory identity() → lib1::XSet*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ static factory identity() → lib1::XSet
return lib2::XLinkedHashSet::identity();
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/lib2.dart" as lib2 {
@@ -33,19 +23,9 @@
import "package:module/lib3.dart";
class XLinkedHashSet extends dart.core::Object implements lib1::XSet {
- static final field dynamic _redirecting# = <dynamic>[#C2];
- static factory identity() → lib2::XLinkedHashSet*
+ static final field dynamic _redirecting# = <dynamic>[#C2]/*isLegacy*/;
+ static factory identity() → lib2::XLinkedHashSet
return new lib3::XIdentityHashSet::•();
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:module/lib3.dart" as lib3 {
@@ -53,19 +33,9 @@
import "package:module/lib2.dart";
class XIdentityHashSet extends dart.core::Object implements lib2::XLinkedHashSet {
- constructor •() → lib3::XIdentityHashSet*
+ constructor •() → lib3::XIdentityHashSet
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_9.yaml b/pkg/front_end/testcases/incremental/changing_modules_9.yaml
index e267a81..23155af 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_9.yaml
+++ b/pkg/front_end/testcases/incremental/changing_modules_9.yaml
@@ -10,7 +10,6 @@
modules:
moduleA:
moduleA/a.dart: |
- // @dart=2.9
export 'package:moduleB/b.dart';
class A { }
@@ -30,7 +29,6 @@
}
moduleB:
moduleB/b.dart: |
- // @dart=2.9
class B {
int foo = 42;
}
@@ -49,7 +47,6 @@
fromComponent: true
sources:
main.dart: |
- // @dart=2.9
import "package:moduleA/a.dart";
main() {
diff --git a/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.1.expect b/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.1.expect
index 8b5f7a9..3ebe5d3 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.1.expect
@@ -4,7 +4,7 @@
import "package:moduleA/a.dart";
static method main() → dynamic {
- a::A* a = new a::A::•();
+ a::A a = new a::A::•();
}
}
library from "package:moduleA/a.dart" as a {
@@ -13,37 +13,17 @@
export "package:moduleB/b.dart";
class A extends dart.core::Object {
- synthetic constructor •() → a::A*
+ synthetic constructor •() → a::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:moduleB/b.dart" as b {
class B extends dart.core::Object {
- field dart.core::int* foo = 42;
- synthetic constructor •() → b::B*
+ field dart.core::int foo = 42;
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.2.expect b/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.2.expect
index 8b5f7a9..3ebe5d3 100644
--- a/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/changing_modules_9.yaml.world.2.expect
@@ -4,7 +4,7 @@
import "package:moduleA/a.dart";
static method main() → dynamic {
- a::A* a = new a::A::•();
+ a::A a = new a::A::•();
}
}
library from "package:moduleA/a.dart" as a {
@@ -13,37 +13,17 @@
export "package:moduleB/b.dart";
class A extends dart.core::Object {
- synthetic constructor •() → a::A*
+ synthetic constructor •() → a::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:moduleB/b.dart" as b {
class B extends dart.core::Object {
- field dart.core::int* foo = 42;
- synthetic constructor •() → b::B*
+ field dart.core::int foo = 42;
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_part.yaml b/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_part.yaml
index 57c1a4c..e8a3d25 100644
--- a/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_part.yaml
+++ b/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_part.yaml
@@ -11,17 +11,14 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() { b(); }
b.dart: |
- // @dart=2.9
part 'c.dart';
b() {
c();
}
c.dart: |
- // @dart=2.9
part of 'b.dart';
c() {}
expectedLibraryCount: 2
@@ -32,7 +29,6 @@
expectInitializeFromDill: false
sources:
b.dart: |
- // @dart=2.9
b() {}
expectedLibraryCount: 2
uriToSourcesDoesntInclude:
diff --git a/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_unreferenced_libraries.yaml b/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_unreferenced_libraries.yaml
index ba49b68..7d5d86d 100644
--- a/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_unreferenced_libraries.yaml
+++ b/pkg/front_end/testcases/incremental/cleans_up_uritosource_non_package_unreferenced_libraries.yaml
@@ -11,17 +11,14 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() { b(); }
b.dart: |
- // @dart=2.9
part 'c.dart';
b() {
c();
}
c.dart: |
- // @dart=2.9
part of 'b.dart';
c() {}
expectedLibraryCount: 2
@@ -32,7 +29,6 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
main() {}
expectedLibraryCount: 1
uriToSourcesDoesntInclude:
@@ -45,7 +41,6 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
main() {}
expectedLibraryCount: 1
uriToSourcesDoesntInclude:
diff --git a/pkg/front_end/testcases/incremental/cleans_up_uritosource_unreferenced_package_library.yaml b/pkg/front_end/testcases/incremental/cleans_up_uritosource_unreferenced_package_library.yaml
index ea47771..98612ff 100644
--- a/pkg/front_end/testcases/incremental/cleans_up_uritosource_unreferenced_package_library.yaml
+++ b/pkg/front_end/testcases/incremental/cleans_up_uritosource_unreferenced_package_library.yaml
@@ -22,11 +22,9 @@
]
}
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() { b(); }
pkg/example/b.dart: |
- // @dart=2.9
b() {}
expectedLibraryCount: 2
- entry: main.dart
@@ -42,7 +40,6 @@
"packages": []
}
main.dart: |
- // @dart=2.9
main() {}
expectedLibraryCount: 1
uriToSourcesDoesntInclude:
diff --git a/pkg/front_end/testcases/incremental/constant_exports_hash.yaml b/pkg/front_end/testcases/incremental/constant_exports_hash.yaml
index fe79e16..ae08c58 100644
--- a/pkg/front_end/testcases/incremental/constant_exports_hash.yaml
+++ b/pkg/front_end/testcases/incremental/constant_exports_hash.yaml
@@ -11,19 +11,16 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
export "lib1.dart" show x;
export "lib2.dart" show x;
main() {
print("exports");
}
lib1.dart: |
- // @dart=2.9
x() {
print("lib1.x!");
}
lib2.dart: |
- // @dart=2.9
x() {
print("lib2.x!");
}
@@ -35,19 +32,16 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
export "lib1.dart" show x;
export "lib2.dart" show x;
main() {
print("exports!");
}
lib1.dart: |
- // @dart=2.9
x() {
print("lib1.x!");
}
lib2.dart: |
- // @dart=2.9
x() {
print("lib2.x!");
}
diff --git a/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.1.expect b/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.1.expect
index d263cde3..90f6f3b 100644
--- a/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.1.expect
@@ -15,7 +15,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
+// org-dartlang-test:///main.dart:2:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
// export "lib2.dart" show x;
// ^
//
@@ -23,7 +23,7 @@
export "org-dartlang-test:///lib1.dart" show x;
export "org-dartlang-test:///lib2.dart" show x;
- static const field dynamic _exports# = #C1;
+ static const field dynamic _exports# = #C1 /*isLegacy*/;
static method main() → dynamic {
dart.core::print("exports");
}
diff --git a/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.2.expect b/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.2.expect
index f84cb36..6c9fb88 100644
--- a/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/constant_exports_hash.yaml.world.2.expect
@@ -15,7 +15,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
+// org-dartlang-test:///main.dart:2:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
// export "lib2.dart" show x;
// ^
//
@@ -23,7 +23,7 @@
export "org-dartlang-test:///lib1.dart" show x;
export "org-dartlang-test:///lib2.dart" show x;
- static const field dynamic _exports# = #C1;
+ static const field dynamic _exports# = #C1 /*isLegacy*/;
static method main() → dynamic {
dart.core::print("exports!");
}
diff --git a/pkg/front_end/testcases/incremental/constant_set_literal.yaml b/pkg/front_end/testcases/incremental/constant_set_literal.yaml
index b58f969..d8ddd8d 100644
--- a/pkg/front_end/testcases/incremental/constant_set_literal.yaml
+++ b/pkg/front_end/testcases/incremental/constant_set_literal.yaml
@@ -9,7 +9,6 @@
- entry: "main.dart"
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
const Set<String> foo = {};
@@ -18,7 +17,6 @@
print(bar);
}
lib.dart: |
- // @dart=2.9
const Set<String> bar = {"hello", "world"};
expectedLibraryCount: 2
- entry: "main.dart"
@@ -28,6 +26,5 @@
- lib.dart
sources:
lib.dart: |
- // @dart=2.9
const Set<int> bar = {42};
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.1.expect b/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.1.expect
index c6642dc..047d357 100644
--- a/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.1.expect
@@ -1,13 +1,13 @@
main = main::main;
library from "org-dartlang-test:///lib.dart" as lib {
- static const field dart.core::Set<dart.core::String*>* bar = #C3;
+ static const field dart.core::Set<dart.core::String> bar = #C3;
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib.dart";
- static const field dart.core::Set<dart.core::String*>* foo = #C4;
+ static const field dart.core::Set<dart.core::String> foo = #C4;
static method main() → dynamic {
dart.core::print(#C4);
dart.core::print(#C3);
diff --git a/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.2.expect b/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.2.expect
index e7dc08e..2c2bcbd 100644
--- a/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/constant_set_literal.yaml.world.2.expect
@@ -1,13 +1,13 @@
main = main::main;
library from "org-dartlang-test:///lib.dart" as lib {
- static const field dart.core::Set<dart.core::int*>* bar = #C2;
+ static const field dart.core::Set<dart.core::int> bar = #C2;
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib.dart";
- static const field dart.core::Set<dart.core::String*>* foo = #C3;
+ static const field dart.core::Set<dart.core::String> foo = #C3;
static method main() → dynamic {
dart.core::print(#C3);
dart.core::print(#C2);
diff --git a/pkg/front_end/testcases/incremental/crash_01.yaml b/pkg/front_end/testcases/incremental/crash_01.yaml
index 9663d9a..d8c9c08 100644
--- a/pkg/front_end/testcases/incremental/crash_01.yaml
+++ b/pkg/front_end/testcases/incremental/crash_01.yaml
@@ -22,7 +22,6 @@
]
}
app/main.dart: |
- // @dart=2.9
import "package:flutter/src/cupertino/interface_level.dart";
flutter/src/widgets/framework.dart: |
abstract class Widget {}
diff --git a/pkg/front_end/testcases/incremental/crash_02.yaml b/pkg/front_end/testcases/incremental/crash_02.yaml
index 38115cb..7a10c94 100644
--- a/pkg/front_end/testcases/incremental/crash_02.yaml
+++ b/pkg/front_end/testcases/incremental/crash_02.yaml
@@ -22,7 +22,6 @@
]
}
app/main.dart: |
- // @dart=2.9
import "package:flutter/src/widgets/framework.dart";
flutter/src/widgets/framework.dart: |
import "package:flutter/src/widgets/widget_inspector.dart";
diff --git a/pkg/front_end/testcases/incremental/crash_03.yaml b/pkg/front_end/testcases/incremental/crash_03.yaml
index 7e1e066..4d1be72 100644
--- a/pkg/front_end/testcases/incremental/crash_03.yaml
+++ b/pkg/front_end/testcases/incremental/crash_03.yaml
@@ -22,7 +22,6 @@
]
}
app/main.dart: |
- // @dart=2.9
import "package:flutter/src/widgets/framework.dart";
flutter/src/widgets/framework.dart: |
abstract class Widget {}
diff --git a/pkg/front_end/testcases/incremental/crash_07.yaml b/pkg/front_end/testcases/incremental/crash_07.yaml
index cfb8245..ed141b7 100644
--- a/pkg/front_end/testcases/incremental/crash_07.yaml
+++ b/pkg/front_end/testcases/incremental/crash_07.yaml
@@ -10,12 +10,10 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
import 'nonexistingfile.dart';
class A implements B {}
lib.dart: |
- // @dart=2.9
class B implements C<NonExistingClass> {}
class C<E> {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/crash_07.yaml.world.1.expect b/pkg/front_end/testcases/incremental/crash_07.yaml.world.1.expect
index 299f150..e480482 100644
--- a/pkg/front_end/testcases/incremental/crash_07.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/crash_07.yaml.world.1.expect
@@ -3,40 +3,20 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:2:22: Error: Type 'NonExistingClass' not found.
+// org-dartlang-test:///lib.dart:1:22: Error: Type 'NonExistingClass' not found.
// class B implements C<NonExistingClass> {}
// ^^^^^^^^^^^^^^^^
//
class B extends dart.core::Object implements lib::C<invalid-type> {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class C<E extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → lib::C<lib::C::E*>*
+ class C<E extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → lib::C<lib::C::E%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -45,26 +25,16 @@
import "org-dartlang-test:///nonexistingfile.dart";
class A extends dart.core::Object implements lib::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///nonexistingfile.dart" as non {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:8: Error: Error when reading 'org-dartlang-test:///nonexistingfile.dart': File org-dartlang-test:///nonexistingfile.dart does not exist.
+// org-dartlang-test:///main.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexistingfile.dart': File org-dartlang-test:///nonexistingfile.dart does not exist.
// import 'nonexistingfile.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/crash_test_1.yaml b/pkg/front_end/testcases/incremental/crash_test_1.yaml
index 5a7785c..1b66228 100644
--- a/pkg/front_end/testcases/incremental/crash_test_1.yaml
+++ b/pkg/front_end/testcases/incremental/crash_test_1.yaml
@@ -9,13 +9,11 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
void main() {
var c = new C.e4();
}
lib.dart: |
- // @dart=2.9
class C {
C();
factory C.e4() async = C;
@@ -27,14 +25,12 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
void main() {
var c = new C.e4();
print(c);
}
lib.dart: |
- // @dart=2.9
class C {
C();
factory C.e4() async = C;
diff --git a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect
index b30010d..16a9d5c 100644
--- a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.1.expect
@@ -3,28 +3,18 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:4:18: Error: Factory bodies can't use 'async', 'async*', or 'sync*'.
+// org-dartlang-test:///lib.dart:3:18: Error: Factory bodies can't use 'async', 'async*', or 'sync*'.
// factory C.e4() async = C;
// ^^^^^
//
class C extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- constructor •() → lib::C*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ constructor •() → lib::C
: super dart.core::Object::•()
;
- static factory e4() → lib::C*
+ static factory e4() → lib::C
return new lib::C::•();
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -32,7 +22,7 @@
import "org-dartlang-test:///lib.dart";
static method main() → void {
- lib::C* c = new lib::C::•();
+ lib::C c = new lib::C::•();
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect
index cc3198c..385f382 100644
--- a/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/crash_test_1.yaml.world.2.expect
@@ -3,28 +3,18 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:4:18: Error: Factory bodies can't use 'async', 'async*', or 'sync*'.
+// org-dartlang-test:///lib.dart:3:18: Error: Factory bodies can't use 'async', 'async*', or 'sync*'.
// factory C.e4() async = C;
// ^^^^^
//
class C extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- constructor •() → lib::C*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ constructor •() → lib::C
: super dart.core::Object::•()
;
- static factory e4() → lib::C*
+ static factory e4() → lib::C
return new lib::C::•();
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -32,7 +22,7 @@
import "org-dartlang-test:///lib.dart";
static method main() → void {
- lib::C* c = new lib::C::•();
+ lib::C c = new lib::C::•();
dart.core::print(c);
}
}
diff --git a/pkg/front_end/testcases/incremental/deleting_file.yaml b/pkg/front_end/testcases/incremental/deleting_file.yaml
index bafc4b3..dea1937 100644
--- a/pkg/front_end/testcases/incremental/deleting_file.yaml
+++ b/pkg/front_end/testcases/incremental/deleting_file.yaml
@@ -11,14 +11,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("Hello no. 0");
b();
}
b.dart: |
- // @dart=2.9
b() {
print("b");
}
@@ -29,7 +27,6 @@
- b.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("Hello no. 0");
@@ -44,7 +41,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("Hello no. 1");
@@ -59,7 +55,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("Hello no. 1");
diff --git a/pkg/front_end/testcases/incremental/deleting_file.yaml.world.2.expect b/pkg/front_end/testcases/incremental/deleting_file.yaml.world.2.expect
index a1988d3..65c08c4c 100644
--- a/pkg/front_end/testcases/incremental/deleting_file.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/deleting_file.yaml.world.2.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:8: Error: Error when reading 'org-dartlang-test:///b.dart': File org-dartlang-test:///b.dart does not exist.
+// org-dartlang-test:///main.dart:1:8: Error: Error when reading 'org-dartlang-test:///b.dart': File org-dartlang-test:///b.dart does not exist.
// import "b.dart";
// ^
//
@@ -13,7 +13,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.
+// org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.
// b();
// ^
//
@@ -22,6 +22,6 @@
static method main() → dynamic {
dart.core::print("Hello no. 0");
- invalid-expression "org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.\n b();\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.\n b();\n ^";
}
}
diff --git a/pkg/front_end/testcases/incremental/deleting_file.yaml.world.3.expect b/pkg/front_end/testcases/incremental/deleting_file.yaml.world.3.expect
index 8e795d4..2fff4ef 100644
--- a/pkg/front_end/testcases/incremental/deleting_file.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/deleting_file.yaml.world.3.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:8: Error: Error when reading 'org-dartlang-test:///b.dart': File org-dartlang-test:///b.dart does not exist.
+// org-dartlang-test:///main.dart:1:8: Error: Error when reading 'org-dartlang-test:///b.dart': File org-dartlang-test:///b.dart does not exist.
// import "b.dart";
// ^
//
@@ -13,7 +13,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.
+// org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.
// b();
// ^
//
@@ -22,6 +22,6 @@
static method main() → dynamic {
dart.core::print("Hello no. 1");
- invalid-expression "org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.\n b();\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.\n b();\n ^";
}
}
diff --git a/pkg/front_end/testcases/incremental/deleting_file.yaml.world.4.expect b/pkg/front_end/testcases/incremental/deleting_file.yaml.world.4.expect
index 8e795d4..2fff4ef 100644
--- a/pkg/front_end/testcases/incremental/deleting_file.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/deleting_file.yaml.world.4.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:8: Error: Error when reading 'org-dartlang-test:///b.dart': File org-dartlang-test:///b.dart does not exist.
+// org-dartlang-test:///main.dart:1:8: Error: Error when reading 'org-dartlang-test:///b.dart': File org-dartlang-test:///b.dart does not exist.
// import "b.dart";
// ^
//
@@ -13,7 +13,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.
+// org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.
// b();
// ^
//
@@ -22,6 +22,6 @@
static method main() → dynamic {
dart.core::print("Hello no. 1");
- invalid-expression "org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.\n b();\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.\n b();\n ^";
}
}
diff --git a/pkg/front_end/testcases/incremental/disappearing_library.yaml b/pkg/front_end/testcases/incremental/disappearing_library.yaml
index c04715d..75a951b 100644
--- a/pkg/front_end/testcases/incremental/disappearing_library.yaml
+++ b/pkg/front_end/testcases/incremental/disappearing_library.yaml
@@ -12,7 +12,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
library mainLibrary;
import "b.dart" as b;
@@ -20,7 +19,6 @@
b.foo();
}
b.dart: |
- // @dart=2.9
library bLibrary;
foo() {
@@ -33,7 +31,6 @@
- b.dart
sources:
b.dart: |
- // @dart=2.9
library bLibrary;
main() {
diff --git a/pkg/front_end/testcases/incremental/disappearing_package.yaml b/pkg/front_end/testcases/incremental/disappearing_package.yaml
index 5349d99..aa20efa 100644
--- a/pkg/front_end/testcases/incremental/disappearing_package.yaml
+++ b/pkg/front_end/testcases/incremental/disappearing_package.yaml
@@ -12,14 +12,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
b() {
print("b");
}
@@ -42,7 +40,6 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
main() {
print("hello");
}
diff --git a/pkg/front_end/testcases/incremental/entry_not_package_url_main.yaml b/pkg/front_end/testcases/incremental/entry_not_package_url_main.yaml
index 1f881a7..4e055b5 100644
--- a/pkg/front_end/testcases/incremental/entry_not_package_url_main.yaml
+++ b/pkg/front_end/testcases/incremental/entry_not_package_url_main.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
}
.dart_tool/package_config.json: |
diff --git a/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml b/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml
index 4c8beb6..78a9a76 100644
--- a/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml
+++ b/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
asdf;
}
diff --git a/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml.world.1.expect b/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml.world.1.expect
index f598435..a0d9cf4 100644
--- a/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/entry_not_package_url_main_with_errors.yaml.world.1.expect
@@ -3,12 +3,12 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:3: Error: Undefined name 'asdf'.
+// org-dartlang-test:///main.dart:2:3: Error: Undefined name 'asdf'.
// asdf;
// ^^^^
//
static method main() → dynamic {
- invalid-expression "org-dartlang-test:///main.dart:3:3: Error: Undefined name 'asdf'.\n asdf;\n ^^^^";
+ invalid-expression "org-dartlang-test:///main.dart:2:3: Error: Undefined name 'asdf'.\n asdf;\n ^^^^";
}
}
diff --git a/pkg/front_end/testcases/incremental/entry_not_package_url_no_main.yaml b/pkg/front_end/testcases/incremental/entry_not_package_url_no_main.yaml
index a070cbb..43def34 100644
--- a/pkg/front_end/testcases/incremental/entry_not_package_url_no_main.yaml
+++ b/pkg/front_end/testcases/incremental/entry_not_package_url_no_main.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
notMain() {}
.dart_tool/package_config.json: |
{
diff --git a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml
index 6557fc6..38de9ca 100644
--- a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml
+++ b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml
@@ -19,20 +19,18 @@
]
}
main.dart: |
- // @dart=2.9
import 'package:flutter/object.dart';
import 'lib.dart';
class Adaptor extends RenderFoo with LibMixin {}
class AdaptorElement extends RenderObject {
- Adaptor get renderObject => super.renderObject;
+ Adaptor get renderObject => super.renderObject as Adaptor;
void foo() {
print(renderObject.constraints.axis);
}
}
lib.dart: |
- // @dart=2.9
import 'package:flutter/object.dart';
mixin LibMixin on RenderObject {}
flutter/object.dart: |
diff --git a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.1.expect b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.1.expect
index 45c9ab4..68a17c6 100644
--- a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.1.expect
@@ -35,18 +35,6 @@
import "package:flutter/object.dart";
abstract class LibMixin extends obj::RenderObject /*isMixinDeclaration*/ {
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -55,46 +43,23 @@
import "org-dartlang-test:///lib.dart";
abstract class _Adaptor&RenderFoo&LibMixin extends obj::RenderFoo implements lib::LibMixin /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → main::_Adaptor&RenderFoo&LibMixin*
+ synthetic constructor •() → main::_Adaptor&RenderFoo&LibMixin
: super obj::RenderFoo::•()
;
- abstract member-signature get constraints() → obj::FooConstraints*; -> obj::RenderFoo::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class Adaptor extends main::_Adaptor&RenderFoo&LibMixin {
- synthetic constructor •() → main::Adaptor*
+ synthetic constructor •() → main::Adaptor
: super main::_Adaptor&RenderFoo&LibMixin::•()
;
}
class AdaptorElement extends obj::RenderObject {
- synthetic constructor •() → main::AdaptorElement*
+ synthetic constructor •() → main::AdaptorElement
: super obj::RenderObject::•()
;
- get renderObject() → main::Adaptor*
- return super.{obj::RenderObject::renderObject} as{TypeError} main::Adaptor*;
+ get renderObject() → main::Adaptor
+ return super.{obj::RenderObject::renderObject} as{ForNonNullableByDefault} main::Adaptor;
method foo() → void {
- dart.core::print(this.{main::AdaptorElement::renderObject}{main::Adaptor*}.{main::_Adaptor&RenderFoo&LibMixin::constraints}{obj::FooConstraints*}.{obj::FooConstraints::axis}{dart.core::String*});
+ dart.core::print(this.{main::AdaptorElement::renderObject}{main::Adaptor}.{obj::RenderFoo::constraints}{obj::FooConstraints}.{obj::FooConstraints::axis}{dart.core::String});
}
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.2.expect b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.2.expect
index 45c9ab4..68a17c6 100644
--- a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change.yaml.world.2.expect
@@ -35,18 +35,6 @@
import "package:flutter/object.dart";
abstract class LibMixin extends obj::RenderObject /*isMixinDeclaration*/ {
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -55,46 +43,23 @@
import "org-dartlang-test:///lib.dart";
abstract class _Adaptor&RenderFoo&LibMixin extends obj::RenderFoo implements lib::LibMixin /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → main::_Adaptor&RenderFoo&LibMixin*
+ synthetic constructor •() → main::_Adaptor&RenderFoo&LibMixin
: super obj::RenderFoo::•()
;
- abstract member-signature get constraints() → obj::FooConstraints*; -> obj::RenderFoo::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class Adaptor extends main::_Adaptor&RenderFoo&LibMixin {
- synthetic constructor •() → main::Adaptor*
+ synthetic constructor •() → main::Adaptor
: super main::_Adaptor&RenderFoo&LibMixin::•()
;
}
class AdaptorElement extends obj::RenderObject {
- synthetic constructor •() → main::AdaptorElement*
+ synthetic constructor •() → main::AdaptorElement
: super obj::RenderObject::•()
;
- get renderObject() → main::Adaptor*
- return super.{obj::RenderObject::renderObject} as{TypeError} main::Adaptor*;
+ get renderObject() → main::Adaptor
+ return super.{obj::RenderObject::renderObject} as{ForNonNullableByDefault} main::Adaptor;
method foo() → void {
- dart.core::print(this.{main::AdaptorElement::renderObject}{main::Adaptor*}.{main::_Adaptor&RenderFoo&LibMixin::constraints}{obj::FooConstraints*}.{obj::FooConstraints::axis}{dart.core::String*});
+ dart.core::print(this.{main::AdaptorElement::renderObject}{main::Adaptor}.{obj::RenderFoo::constraints}{obj::FooConstraints}.{obj::FooConstraints::axis}{dart.core::String});
}
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml
index 6e0e5c8..fa61ced 100644
--- a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml
+++ b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml
@@ -19,23 +19,20 @@
]
}
main.dart: |
- // @dart=2.9
import 'package:flutter/object.dart';
import 'lib1.dart';
class AdaptorElement extends RenderObject {
- Adaptor get renderObject => super.renderObject;
+ Adaptor get renderObject => super.renderObject as Adaptor;
void foo() {
print(renderObject.constraints.axis);
}
}
lib1.dart: |
- // @dart=2.9
import 'package:flutter/object.dart';
import 'lib2.dart';
abstract class Adaptor extends RenderFoo with LibMixin {}
lib2.dart: |
- // @dart=2.9
import 'package:flutter/object.dart';
mixin LibMixin on RenderObject {}
flutter/object.dart: |
diff --git a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.1.expect b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.1.expect
index ec1075d..e9c963c 100644
--- a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.1.expect
@@ -36,24 +36,12 @@
import "org-dartlang-test:///lib2.dart";
abstract class _Adaptor&RenderFoo&LibMixin extends obj::RenderFoo implements lib2::LibMixin /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → lib1::_Adaptor&RenderFoo&LibMixin*
+ synthetic constructor •() → lib1::_Adaptor&RenderFoo&LibMixin
: super obj::RenderFoo::•()
;
- abstract member-signature get constraints() → obj::FooConstraints*; -> obj::RenderFoo::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class Adaptor extends lib1::_Adaptor&RenderFoo&LibMixin {
- synthetic constructor •() → lib1::Adaptor*
+ synthetic constructor •() → lib1::Adaptor
: super lib1::_Adaptor&RenderFoo&LibMixin::•()
;
}
@@ -63,18 +51,6 @@
import "package:flutter/object.dart";
abstract class LibMixin extends obj::RenderObject /*isMixinDeclaration*/ {
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -83,24 +59,13 @@
import "org-dartlang-test:///lib1.dart";
class AdaptorElement extends obj::RenderObject {
- synthetic constructor •() → main::AdaptorElement*
+ synthetic constructor •() → main::AdaptorElement
: super obj::RenderObject::•()
;
- get renderObject() → lib1::Adaptor*
- return super.{obj::RenderObject::renderObject} as{TypeError} lib1::Adaptor*;
+ get renderObject() → lib1::Adaptor
+ return super.{obj::RenderObject::renderObject} as{ForNonNullableByDefault} lib1::Adaptor;
method foo() → void {
- dart.core::print(this.{main::AdaptorElement::renderObject}{lib1::Adaptor*}.{lib1::_Adaptor&RenderFoo&LibMixin::constraints}{obj::FooConstraints*}.{obj::FooConstraints::axis}{dart.core::String*});
+ dart.core::print(this.{main::AdaptorElement::renderObject}{lib1::Adaptor}.{obj::RenderFoo::constraints}{obj::FooConstraints}.{obj::FooConstraints::axis}{dart.core::String});
}
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.2.expect b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.2.expect
index ec1075d..e9c963c 100644
--- a/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/error_on_recompile_with_no_change_02.yaml.world.2.expect
@@ -36,24 +36,12 @@
import "org-dartlang-test:///lib2.dart";
abstract class _Adaptor&RenderFoo&LibMixin extends obj::RenderFoo implements lib2::LibMixin /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → lib1::_Adaptor&RenderFoo&LibMixin*
+ synthetic constructor •() → lib1::_Adaptor&RenderFoo&LibMixin
: super obj::RenderFoo::•()
;
- abstract member-signature get constraints() → obj::FooConstraints*; -> obj::RenderFoo::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class Adaptor extends lib1::_Adaptor&RenderFoo&LibMixin {
- synthetic constructor •() → lib1::Adaptor*
+ synthetic constructor •() → lib1::Adaptor
: super lib1::_Adaptor&RenderFoo&LibMixin::•()
;
}
@@ -63,18 +51,6 @@
import "package:flutter/object.dart";
abstract class LibMixin extends obj::RenderObject /*isMixinDeclaration*/ {
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get renderObject() → obj::RenderObject*; -> obj::RenderObject::renderObject
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -83,24 +59,13 @@
import "org-dartlang-test:///lib1.dart";
class AdaptorElement extends obj::RenderObject {
- synthetic constructor •() → main::AdaptorElement*
+ synthetic constructor •() → main::AdaptorElement
: super obj::RenderObject::•()
;
- get renderObject() → lib1::Adaptor*
- return super.{obj::RenderObject::renderObject} as{TypeError} lib1::Adaptor*;
+ get renderObject() → lib1::Adaptor
+ return super.{obj::RenderObject::renderObject} as{ForNonNullableByDefault} lib1::Adaptor;
method foo() → void {
- dart.core::print(this.{main::AdaptorElement::renderObject}{lib1::Adaptor*}.{lib1::_Adaptor&RenderFoo&LibMixin::constraints}{obj::FooConstraints*}.{obj::FooConstraints::axis}{dart.core::String*});
+ dart.core::print(this.{main::AdaptorElement::renderObject}{lib1::Adaptor}.{obj::RenderFoo::constraints}{obj::FooConstraints}.{obj::FooConstraints::axis}{dart.core::String});
}
- abstract member-signature get constraints() → obj::Constraints*; -> obj::RenderObject::constraints
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/expression_calculation_with_error.yaml b/pkg/front_end/testcases/incremental/expression_calculation_with_error.yaml
index 9576219..51073a5 100644
--- a/pkg/front_end/testcases/incremental/expression_calculation_with_error.yaml
+++ b/pkg/front_end/testcases/incremental/expression_calculation_with_error.yaml
@@ -13,7 +13,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("hello");
}
diff --git a/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml b/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml
index 0ecdf8e..13a6a2e 100644
--- a/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml
+++ b/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml
@@ -9,7 +9,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
diff --git a/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml.world.1.expect b/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml.world.1.expect
index 361ccb3..02d4ea6 100644
--- a/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/extension_expression_compilation_usage.yaml.world.1.expect
@@ -1,13 +1,13 @@
main = <No Member>;
library from "org-dartlang-test:///main.dart" as main {
- extension NumberParsing on dart.core::String* {
+ extension NumberParsing on dart.core::String {
method parseInt = main::NumberParsing|parseInt;
tearoff parseInt = main::NumberParsing|get#parseInt;
}
- static method NumberParsing|parseInt(lowered final dart.core::String* #this) → dart.core::int* {
+ static method NumberParsing|parseInt(lowered final dart.core::String #this) → dart.core::int {
return dart.core::int::parse(#this);
}
- static method NumberParsing|get#parseInt(lowered final dart.core::String* #this) → () →* dart.core::int*
- return () → dart.core::int* => main::NumberParsing|parseInt(#this);
+ static method NumberParsing|get#parseInt(lowered final dart.core::String #this) → () → dart.core::int
+ return () → dart.core::int => main::NumberParsing|parseInt(#this);
}
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml
index 62cacea..21d2963 100644
--- a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml
@@ -14,7 +14,6 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart" as p;
main() {
@@ -22,12 +21,10 @@
o.onObject;
}
lib1.dart: |
- // @dart=2.9
extension OnObject on Object {
String get onObject => "object #1";
}
lib2.dart: |
- // @dart=2.9
extension AlsoOnObject on Object {
String get onObject => "object #2";
}
@@ -40,7 +37,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib1.dart" as p;
main() {
@@ -57,7 +53,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart" as p;
main() {
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect
index d04e859..9dde03d 100644
--- a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.1.expect
@@ -1,33 +1,33 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- extension OnObject on dart.core::Object* {
+ extension OnObject on dart.core::Object {
get onObject = lib1::OnObject|get#onObject;
}
- static method OnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+ static method OnObject|get#onObject(lowered final dart.core::Object #this) → dart.core::String
return "object #1";
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
- extension AlsoOnObject on dart.core::Object* {
+ extension AlsoOnObject on dart.core::Object {
get onObject = lib2::AlsoOnObject|get#onObject;
}
- static method AlsoOnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+ static method AlsoOnObject|get#onObject(lowered final dart.core::Object #this) → dart.core::String
return "object #2";
}
library from "org-dartlang-test:///main.dart" as main {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:6:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.
+// org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.
// - 'Object' is from 'dart:core'.
// Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
// o.onObject;
// ^^^^^^^^
-// org-dartlang-test:///lib1.dart:3:14: Context: This is one of the extension members.
+// org-dartlang-test:///lib1.dart:2:14: Context: This is one of the extension members.
// String get onObject => "object #1";
// ^^^^^^^^
-// org-dartlang-test:///lib2.dart:3:14: Context: This is one of the extension members.
+// org-dartlang-test:///lib2.dart:2:14: Context: This is one of the extension members.
// String get onObject => "object #2";
// ^^^^^^^^
//
@@ -36,7 +36,7 @@
import "org-dartlang-test:///lib2.dart" as p;
static method main() → dynamic {
- dart.core::Object* o = 1;
- invalid-expression "org-dartlang-test:///main.dart:6:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.\n - 'Object' is from 'dart:core'.\nTry using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.\n o.onObject;\n ^^^^^^^^" in o{<unresolved>}.onObject;
+ dart.core::Object o = 1;
+ invalid-expression "org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.\n - 'Object' is from 'dart:core'.\nTry using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.\n o.onObject;\n ^^^^^^^^" in o{<unresolved>}.onObject;
}
}
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect
index 55a319c..49f8dfb 100644
--- a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.2.expect
@@ -1,10 +1,10 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- extension OnObject on dart.core::Object* {
+ extension OnObject on dart.core::Object {
get onObject = lib1::OnObject|get#onObject;
}
- static method OnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+ static method OnObject|get#onObject(lowered final dart.core::Object #this) → dart.core::String
return "object #1";
}
library from "org-dartlang-test:///main.dart" as main {
@@ -13,7 +13,7 @@
import "org-dartlang-test:///lib1.dart" as p;
static method main() → dynamic {
- dart.core::Object* o = 1;
+ dart.core::Object o = 1;
lib1::OnObject|get#onObject(o);
}
}
diff --git a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect
index d04e859..9dde03d 100644
--- a/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/extension_prefix_double_import_then_conflict.yaml.world.3.expect
@@ -1,33 +1,33 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- extension OnObject on dart.core::Object* {
+ extension OnObject on dart.core::Object {
get onObject = lib1::OnObject|get#onObject;
}
- static method OnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+ static method OnObject|get#onObject(lowered final dart.core::Object #this) → dart.core::String
return "object #1";
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
- extension AlsoOnObject on dart.core::Object* {
+ extension AlsoOnObject on dart.core::Object {
get onObject = lib2::AlsoOnObject|get#onObject;
}
- static method AlsoOnObject|get#onObject(lowered final dart.core::Object* #this) → dart.core::String*
+ static method AlsoOnObject|get#onObject(lowered final dart.core::Object #this) → dart.core::String
return "object #2";
}
library from "org-dartlang-test:///main.dart" as main {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:6:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.
+// org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.
// - 'Object' is from 'dart:core'.
// Try using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.
// o.onObject;
// ^^^^^^^^
-// org-dartlang-test:///lib1.dart:3:14: Context: This is one of the extension members.
+// org-dartlang-test:///lib1.dart:2:14: Context: This is one of the extension members.
// String get onObject => "object #1";
// ^^^^^^^^
-// org-dartlang-test:///lib2.dart:3:14: Context: This is one of the extension members.
+// org-dartlang-test:///lib2.dart:2:14: Context: This is one of the extension members.
// String get onObject => "object #2";
// ^^^^^^^^
//
@@ -36,7 +36,7 @@
import "org-dartlang-test:///lib2.dart" as p;
static method main() → dynamic {
- dart.core::Object* o = 1;
- invalid-expression "org-dartlang-test:///main.dart:6:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.\n - 'Object' is from 'dart:core'.\nTry using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.\n o.onObject;\n ^^^^^^^^" in o{<unresolved>}.onObject;
+ dart.core::Object o = 1;
+ invalid-expression "org-dartlang-test:///main.dart:5:5: Error: The property 'onObject' is defined in multiple extensions for 'Object' and neither is more specific.\n - 'Object' is from 'dart:core'.\nTry using an explicit extension application of the wanted extension or hiding unwanted extensions from scope.\n o.onObject;\n ^^^^^^^^" in o{<unresolved>}.onObject;
}
}
diff --git a/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml b/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml
index 78a3218..fb17878 100644
--- a/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml
+++ b/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml
@@ -9,7 +9,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart";
import "lib3.dart";
@@ -19,21 +18,18 @@
"42".fooMe2();
}
lib1.dart: |
- // @dart=2.9
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
}
lib2.dart: |
- // @dart=2.9
extension DuplicateName on String {
String fooMe1() {
return "Foo1";
}
}
lib3.dart: |
- // @dart=2.9
extension DuplicateName on String {
String fooMe2() {
return "Foo2";
@@ -58,7 +54,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart";
import "lib3.dart";
@@ -68,21 +63,18 @@
"42".fooMe2();
}
lib1.dart: |
- // @dart=2.9
extension NumberParsing on String {
int parseInt() {
return int.parse(this);
}
}
lib2.dart: |
- // @dart=2.9
extension DuplicateName on String {
String fooMe1() {
return "Foo1";
}
}
lib3.dart: |
- // @dart=2.9
extension DuplicateName on String {
String fooMe2() {
return "Foo2";
diff --git a/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.1.expect b/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.1.expect
index 83ad3f0..0e35632 100644
--- a/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.1.expect
@@ -1,39 +1,39 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- extension NumberParsing on dart.core::String* {
+ extension NumberParsing on dart.core::String {
method parseInt = lib1::NumberParsing|parseInt;
tearoff parseInt = lib1::NumberParsing|get#parseInt;
}
- static method NumberParsing|parseInt(lowered final dart.core::String* #this) → dart.core::int* {
+ static method NumberParsing|parseInt(lowered final dart.core::String #this) → dart.core::int {
return dart.core::int::parse(#this);
}
- static method NumberParsing|get#parseInt(lowered final dart.core::String* #this) → () →* dart.core::int*
- return () → dart.core::int* => lib1::NumberParsing|parseInt(#this);
+ static method NumberParsing|get#parseInt(lowered final dart.core::String #this) → () → dart.core::int
+ return () → dart.core::int => lib1::NumberParsing|parseInt(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
- extension DuplicateName on dart.core::String* {
+ extension DuplicateName on dart.core::String {
method fooMe1 = lib2::DuplicateName|fooMe1;
tearoff fooMe1 = lib2::DuplicateName|get#fooMe1;
}
- static method DuplicateName|fooMe1(lowered final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe1(lowered final dart.core::String #this) → dart.core::String {
return "Foo1";
}
- static method DuplicateName|get#fooMe1(lowered final dart.core::String* #this) → () →* dart.core::String*
- return () → dart.core::String* => lib2::DuplicateName|fooMe1(#this);
+ static method DuplicateName|get#fooMe1(lowered final dart.core::String #this) → () → dart.core::String
+ return () → dart.core::String => lib2::DuplicateName|fooMe1(#this);
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
- extension DuplicateName on dart.core::String* {
+ extension DuplicateName on dart.core::String {
method fooMe2 = lib3::DuplicateName|fooMe2;
tearoff fooMe2 = lib3::DuplicateName|get#fooMe2;
}
- static method DuplicateName|fooMe2(lowered final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe2(lowered final dart.core::String #this) → dart.core::String {
return "Foo2";
}
- static method DuplicateName|get#fooMe2(lowered final dart.core::String* #this) → () →* dart.core::String*
- return () → dart.core::String* => lib3::DuplicateName|fooMe2(#this);
+ static method DuplicateName|get#fooMe2(lowered final dart.core::String #this) → () → dart.core::String
+ return () → dart.core::String => lib3::DuplicateName|fooMe2(#this);
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.2.expect b/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.2.expect
index 83ad3f0..0e35632 100644
--- a/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/extension_usage_from_dill.yaml.world.2.expect
@@ -1,39 +1,39 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- extension NumberParsing on dart.core::String* {
+ extension NumberParsing on dart.core::String {
method parseInt = lib1::NumberParsing|parseInt;
tearoff parseInt = lib1::NumberParsing|get#parseInt;
}
- static method NumberParsing|parseInt(lowered final dart.core::String* #this) → dart.core::int* {
+ static method NumberParsing|parseInt(lowered final dart.core::String #this) → dart.core::int {
return dart.core::int::parse(#this);
}
- static method NumberParsing|get#parseInt(lowered final dart.core::String* #this) → () →* dart.core::int*
- return () → dart.core::int* => lib1::NumberParsing|parseInt(#this);
+ static method NumberParsing|get#parseInt(lowered final dart.core::String #this) → () → dart.core::int
+ return () → dart.core::int => lib1::NumberParsing|parseInt(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
- extension DuplicateName on dart.core::String* {
+ extension DuplicateName on dart.core::String {
method fooMe1 = lib2::DuplicateName|fooMe1;
tearoff fooMe1 = lib2::DuplicateName|get#fooMe1;
}
- static method DuplicateName|fooMe1(lowered final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe1(lowered final dart.core::String #this) → dart.core::String {
return "Foo1";
}
- static method DuplicateName|get#fooMe1(lowered final dart.core::String* #this) → () →* dart.core::String*
- return () → dart.core::String* => lib2::DuplicateName|fooMe1(#this);
+ static method DuplicateName|get#fooMe1(lowered final dart.core::String #this) → () → dart.core::String
+ return () → dart.core::String => lib2::DuplicateName|fooMe1(#this);
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
- extension DuplicateName on dart.core::String* {
+ extension DuplicateName on dart.core::String {
method fooMe2 = lib3::DuplicateName|fooMe2;
tearoff fooMe2 = lib3::DuplicateName|get#fooMe2;
}
- static method DuplicateName|fooMe2(lowered final dart.core::String* #this) → dart.core::String* {
+ static method DuplicateName|fooMe2(lowered final dart.core::String #this) → dart.core::String {
return "Foo2";
}
- static method DuplicateName|get#fooMe2(lowered final dart.core::String* #this) → () →* dart.core::String*
- return () → dart.core::String* => lib3::DuplicateName|fooMe2(#this);
+ static method DuplicateName|get#fooMe2(lowered final dart.core::String #this) → () → dart.core::String
+ return () → dart.core::String => lib3::DuplicateName|fooMe2(#this);
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml b/pkg/front_end/testcases/incremental/ffi_01.yaml
index 2c40646..6295865 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml
@@ -9,7 +9,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
@@ -19,20 +18,19 @@
print(coordinate.next);
}
lib.dart: |
- // @dart=2.9
import 'dart:ffi';
class Coordinate extends Struct {
@Double()
- double x;
+ external double x;
@Double()
- double y;
+ external double y;
- Pointer<Coordinate> next;
+ external Pointer<Coordinate>? next;
- factory Coordinate.allocate(double x, double y, Pointer<Coordinate> next) {
- return null;
+ factory Coordinate.allocate(double x, double y, Pointer<Coordinate>? next) {
+ throw '';
}
}
expectedLibraryCount: 2
@@ -43,7 +41,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
index b7e1762..f8e1774 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.1.expect
@@ -8,36 +8,27 @@
constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
: super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
;
- static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
- return null;
- }
- abstract member-signature get _typedDataBase() → dart.core::Object*; -> dart.ffi::_Compound::_typedDataBase
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
@#C8
- get x() → dart.core::double*
+ get x() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set x(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
@#C8
- get y() → dart.core::double*
+ set x(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ @#C8
+ get y() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set y(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
- get next() → dart.ffi::Pointer<lib::Coordinate*>*
- return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
- set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
- return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v.{dart.ffi::Pointer::address}{dart.core::int});
+ @#C8
+ set y(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ get next() → dart.ffi::Pointer<lib::Coordinate>?
+ return dart.ffi::_fromAddress<lib::Coordinate>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
+ set next(dart.ffi::Pointer<lib::Coordinate>? #externalFieldValue) → void
+ return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue.{dart.ffi::Pointer::address}{dart.core::int});
+ static factory allocate(dart.core::double x, dart.core::double y, dart.ffi::Pointer<lib::Coordinate>? next) → lib::Coordinate {
+ throw "";
+ }
@#C16
- static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+ static get #sizeOf() → dart.core::int*
return #C19.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*};
}
}
@@ -46,10 +37,10 @@
import "org-dartlang-test:///lib.dart";
static method main() → dynamic {
- lib::Coordinate* coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
- dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate*>*});
+ lib::Coordinate coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
+ dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate>?});
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
index 655f66e..4ac553a 100644
--- a/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/ffi_01.yaml.world.2.expect
@@ -8,36 +8,27 @@
constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
: super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
;
- static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
- return null;
- }
- abstract member-signature get _typedDataBase() → dart.core::Object*; -> dart.ffi::_Compound::_typedDataBase
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
@#C8
- get x() → dart.core::double*
+ get x() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set x(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
@#C8
- get y() → dart.core::double*
+ set x(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ @#C8
+ get y() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set y(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
- get next() → dart.ffi::Pointer<lib::Coordinate*>*
- return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
- set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
- return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v.{dart.ffi::Pointer::address}{dart.core::int});
+ @#C8
+ set y(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ get next() → dart.ffi::Pointer<lib::Coordinate>?
+ return dart.ffi::_fromAddress<lib::Coordinate>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
+ set next(dart.ffi::Pointer<lib::Coordinate>? #externalFieldValue) → void
+ return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue.{dart.ffi::Pointer::address}{dart.core::int});
+ static factory allocate(dart.core::double x, dart.core::double y, dart.ffi::Pointer<lib::Coordinate>? next) → lib::Coordinate {
+ throw "";
+ }
@#C16
- static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+ static get #sizeOf() → dart.core::int*
return #C19.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*};
}
}
@@ -46,10 +37,10 @@
import "org-dartlang-test:///lib.dart";
static method main() → dynamic {
- lib::Coordinate* coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
- dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate*>*});
+ lib::Coordinate coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
+ dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate>?});
main::done();
}
static method done() → dynamic {
diff --git a/pkg/front_end/testcases/incremental/ffi_02.yaml b/pkg/front_end/testcases/incremental/ffi_02.yaml
index 19d30a0..ec0ac7f 100644
--- a/pkg/front_end/testcases/incremental/ffi_02.yaml
+++ b/pkg/front_end/testcases/incremental/ffi_02.yaml
@@ -10,10 +10,9 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
- Coordinate coordinate;
+ late Coordinate coordinate;
main() {
coordinate = new Coordinate.allocate(42.0, 42.0, null);
@@ -22,20 +21,19 @@
print(coordinate.next);
}
lib.dart: |
- // @dart=2.9
import 'dart:ffi';
class Coordinate extends Struct {
@Double()
- double x;
+ external double x;
@Double()
- double y;
+ external double y;
- Pointer<Coordinate> next;
+ external Pointer<Coordinate>? next;
- factory Coordinate.allocate(double x, double y, Pointer<Coordinate> next) {
- return null;
+ factory Coordinate.allocate(double x, double y, Pointer<Coordinate>? next) {
+ throw '';
}
}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
index 8606c08..01043ea 100644
--- a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expect
@@ -8,36 +8,27 @@
constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
: super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
;
- static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
- return null;
- }
- abstract member-signature get _typedDataBase() → dart.core::Object*; -> dart.ffi::_Compound::_typedDataBase
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
@#C8
- get x() → dart.core::double*
+ get x() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set x(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
@#C8
- get y() → dart.core::double*
+ set x(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ @#C8
+ get y() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set y(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
- get next() → dart.ffi::Pointer<lib::Coordinate*>*
- return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
- set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
- return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v.{dart.ffi::Pointer::address}{dart.core::int});
+ @#C8
+ set y(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ get next() → dart.ffi::Pointer<lib::Coordinate>?
+ return dart.ffi::_fromAddress<lib::Coordinate>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
+ set next(dart.ffi::Pointer<lib::Coordinate>? #externalFieldValue) → void
+ return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue.{dart.ffi::Pointer::address}{dart.core::int});
+ static factory allocate(dart.core::double x, dart.core::double y, dart.ffi::Pointer<lib::Coordinate>? next) → lib::Coordinate {
+ throw "";
+ }
@#C16
- static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+ static get #sizeOf() → dart.core::int*
return #C19.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*};
}
}
@@ -45,12 +36,12 @@
import "org-dartlang-test:///lib.dart";
- static field lib::Coordinate* coordinate;
+ late static field lib::Coordinate coordinate;
static method main() → dynamic {
main::coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
- dart.core::print(main::coordinate.{lib::Coordinate::x}{dart.core::double*});
- dart.core::print(main::coordinate.{lib::Coordinate::y}{dart.core::double*});
- dart.core::print(main::coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate*>*});
+ dart.core::print(main::coordinate.{lib::Coordinate::x}{dart.core::double});
+ dart.core::print(main::coordinate.{lib::Coordinate::y}{dart.core::double});
+ dart.core::print(main::coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate>?});
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expression.1.expect b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expression.1.expect
index c3ece07..29aa6aa 100644
--- a/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expression.1.expect
+++ b/pkg/front_end/testcases/incremental/ffi_02.yaml.world.1.expression.1.expect
@@ -1,2 +1,2 @@
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
- return dart.core::print(#lib1::coordinate.{#lib2::Coordinate::x}{dart.core::double*});
+ return dart.core::print(#lib1::coordinate.{#lib2::Coordinate::x}{dart.core::double});
diff --git a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml
index 6df844e..1322120 100644
--- a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml
+++ b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml
@@ -13,18 +13,16 @@
skipClassHierarchyTest: true
sources:
main.dart: |
- // @dart=2.9
import 'package:flutter/framework.dart';
import 'after_layout.dart';
class _HotReloadIssueState extends State<HotReloadIssue>
with AfterLayoutMixin<HotReloadIssue> {
- Widget build(BuildContext context) {}
+ Widget build(BuildContext context) => throw '';
void afterFirstLayout(BuildContext context) {}
}
class HotReloadIssue extends StatefulWidget {}
after_layout.dart: |
- // @dart=2.9
import 'package:flutter/framework.dart';
mixin AfterLayoutMixin<T extends StatefulWidget> on State<T> {}
diff --git a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect
index 4ae1498..7d26320 100644
--- a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.1.expect
@@ -3,14 +3,7 @@
import "package:flutter/framework.dart";
- abstract class AfterLayoutMixin<T extends fra::StatefulWidget*> extends fra::State<aft::AfterLayoutMixin::T*> /*isMixinDeclaration*/ {
- abstract member-signature get _widget() → aft::AfterLayoutMixin::T*; -> fra::State::_widget
- abstract member-signature set _widget(covariant-by-class aft::AfterLayoutMixin::T* value) → void; -> fra::State::_widget
- abstract member-signature method toString() → dart.core::String*; -> fra::_State&Object&Diagnosticable::toString
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract class AfterLayoutMixin<T extends fra::StatefulWidget> extends fra::State<aft::AfterLayoutMixin::T> /*isMixinDeclaration*/ {
}
}
library from "package:flutter/framework.dart" as fra {
@@ -71,37 +64,26 @@
import "package:flutter/framework.dart";
import "org-dartlang-test:///after_layout.dart";
- abstract class __HotReloadIssueState&State&AfterLayoutMixin = fra::State<main::HotReloadIssue*> with aft::AfterLayoutMixin<main::HotReloadIssue*> /*isAnonymousMixin*/ {
- synthetic constructor •() → main::__HotReloadIssueState&State&AfterLayoutMixin*
+ abstract class __HotReloadIssueState&State&AfterLayoutMixin = fra::State<main::HotReloadIssue> with aft::AfterLayoutMixin<main::HotReloadIssue> /*isAnonymousMixin*/ {
+ synthetic constructor •() → main::__HotReloadIssueState&State&AfterLayoutMixin
: super fra::State::•()
;
- abstract member-signature get _widget() → main::HotReloadIssue*; -> fra::State::_widget
- abstract member-signature set _widget(covariant-by-class main::HotReloadIssue* value) → void; -> fra::State::_widget
- abstract member-signature method toString() → dart.core::String*; -> fra::_State&Object&Diagnosticable::toString
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class _HotReloadIssueState extends main::__HotReloadIssueState&State&AfterLayoutMixin {
- synthetic constructor •() → main::_HotReloadIssueState*
+ synthetic constructor •() → main::_HotReloadIssueState
: super main::__HotReloadIssueState&State&AfterLayoutMixin::•()
;
- method build(fra::BuildContext* context) → fra::Widget* {}
- method afterFirstLayout(fra::BuildContext* context) → void {}
- static method _#new#tearOff() → main::_HotReloadIssueState*
+ method build(fra::BuildContext context) → fra::Widget
+ return throw "";
+ method afterFirstLayout(fra::BuildContext context) → void {}
+ static method _#new#tearOff() → main::_HotReloadIssueState
return new main::_HotReloadIssueState::•();
}
class HotReloadIssue extends fra::StatefulWidget {
- synthetic constructor •() → main::HotReloadIssue*
+ synthetic constructor •() → main::HotReloadIssue
: super fra::StatefulWidget::•()
;
- static method _#new#tearOff() → main::HotReloadIssue*
+ static method _#new#tearOff() → main::HotReloadIssue
return new main::HotReloadIssue::•();
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect
index cd64084..7d26320 100644
--- a/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_issue_66122.yaml.world.2.expect
@@ -3,14 +3,7 @@
import "package:flutter/framework.dart";
- abstract class AfterLayoutMixin<T extends fra::StatefulWidget*> extends fra::State<aft::AfterLayoutMixin::T*> /*isMixinDeclaration*/ {
- abstract member-signature get _widget() → aft::AfterLayoutMixin::T*; -> fra::State::_widget
- abstract member-signature set _widget(covariant-by-class aft::AfterLayoutMixin::T* value) → void; -> fra::State::_widget
- abstract member-signature method toString() → dart.core::String*; -> fra::_State&Object&Diagnosticable::toString
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract class AfterLayoutMixin<T extends fra::StatefulWidget> extends fra::State<aft::AfterLayoutMixin::T> /*isMixinDeclaration*/ {
}
}
library from "package:flutter/framework.dart" as fra {
@@ -71,37 +64,26 @@
import "package:flutter/framework.dart";
import "org-dartlang-test:///after_layout.dart";
- abstract class __HotReloadIssueState&State&AfterLayoutMixin = fra::State<main::HotReloadIssue*> with aft::AfterLayoutMixin<main::HotReloadIssue*> /*isAnonymousMixin*/ {
- synthetic constructor •() → main::__HotReloadIssueState&State&AfterLayoutMixin*
+ abstract class __HotReloadIssueState&State&AfterLayoutMixin = fra::State<main::HotReloadIssue> with aft::AfterLayoutMixin<main::HotReloadIssue> /*isAnonymousMixin*/ {
+ synthetic constructor •() → main::__HotReloadIssueState&State&AfterLayoutMixin
: super fra::State::•()
;
- abstract member-signature get _widget() → main::HotReloadIssue*; -> fra::State::_widget
- abstract member-signature set _widget(covariant-by-class main::HotReloadIssue* value) → void; -> fra::State::_widget
- abstract member-signature method toString() → dart.core::String*; -> fra::Diagnosticable::toString
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class _HotReloadIssueState extends main::__HotReloadIssueState&State&AfterLayoutMixin {
- synthetic constructor •() → main::_HotReloadIssueState*
+ synthetic constructor •() → main::_HotReloadIssueState
: super main::__HotReloadIssueState&State&AfterLayoutMixin::•()
;
- method build(fra::BuildContext* context) → fra::Widget* {}
- method afterFirstLayout(fra::BuildContext* context) → void {}
- static method _#new#tearOff() → main::_HotReloadIssueState*
+ method build(fra::BuildContext context) → fra::Widget
+ return throw "";
+ method afterFirstLayout(fra::BuildContext context) → void {}
+ static method _#new#tearOff() → main::_HotReloadIssueState
return new main::_HotReloadIssueState::•();
}
class HotReloadIssue extends fra::StatefulWidget {
- synthetic constructor •() → main::HotReloadIssue*
+ synthetic constructor •() → main::HotReloadIssue
: super fra::StatefulWidget::•()
;
- static method _#new#tearOff() → main::HotReloadIssue*
+ static method _#new#tearOff() → main::HotReloadIssue
return new main::HotReloadIssue::•();
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml b/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml
index 3ee21e2..d725921 100644
--- a/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml
+++ b/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml
@@ -9,18 +9,16 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class Test extends Test2 {
- Quux world() => null;
+ Quux world() => throw '';
}
abstract class Test2 {
Baz world();
}
lib.dart: |
- // @dart=2.9
class FooEntry {}
class BarEntry extends FooEntry {}
@@ -48,11 +46,10 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class Test extends Test2 {
- Quux world() => null;
+ Quux world() => throw '';
}
abstract class Test2 {
diff --git a/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.1.expect
index d8273a9..9488ccb 100644
--- a/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.1.expect
@@ -2,73 +2,43 @@
library from "org-dartlang-test:///lib.dart" as lib {
class FooEntry extends dart.core::Object {
- synthetic constructor •() → lib::FooEntry*
+ synthetic constructor •() → lib::FooEntry
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class BarEntry extends lib::FooEntry {
- synthetic constructor •() → lib::BarEntry*
+ synthetic constructor •() → lib::BarEntry
: super lib::FooEntry::•()
;
}
abstract class FooTarget extends dart.core::Object {
- synthetic constructor •() → lib::FooTarget*
+ synthetic constructor •() → lib::FooTarget
: super dart.core::Object::•()
;
- abstract method hello(lib::FooEntry* entry) → void;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract method hello(lib::FooEntry entry) → void;
}
abstract class Baz extends dart.core::Object implements lib::FooTarget {
- synthetic constructor •() → lib::Baz*
+ synthetic constructor •() → lib::Baz
: super dart.core::Object::•()
;
- method hello(covariant-by-declaration lib::FooEntry* entry) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method hello(covariant-by-declaration lib::FooEntry entry) → void {}
}
abstract class MyMixin extends lib::Baz /*isMixinDeclaration*/ {
}
abstract class Qux extends lib::Baz {
- synthetic constructor •() → lib::Qux*
+ synthetic constructor •() → lib::Qux
: super lib::Baz::•()
;
- method hello(covariant-by-declaration lib::BarEntry* entry) → void {}
+ method hello(covariant-by-declaration lib::BarEntry entry) → void {}
}
abstract class _Quux&Qux&MyMixin extends lib::Qux implements lib::MyMixin /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → lib::_Quux&Qux&MyMixin*
+ synthetic constructor •() → lib::_Quux&Qux&MyMixin
: super lib::Qux::•()
;
- abstract member-signature method hello(covariant-by-declaration lib::FooEntry* entry) → void; -> lib::Baz::hello
+ abstract member-signature method hello(covariant-by-declaration lib::FooEntry entry) → void; -> lib::Baz::hello
}
class Quux extends lib::_Quux&Qux&MyMixin {
- synthetic constructor •() → lib::Quux*
+ synthetic constructor •() → lib::Quux
: super lib::_Quux&Qux&MyMixin::•()
;
}
@@ -78,26 +48,16 @@
import "org-dartlang-test:///lib.dart";
class Test extends main::Test2 {
- synthetic constructor •() → main::Test*
+ synthetic constructor •() → main::Test
: super main::Test2::•()
;
- method world() → lib::Quux*
- return null;
+ method world() → lib::Quux
+ return throw "";
}
abstract class Test2 extends dart.core::Object {
- synthetic constructor •() → main::Test2*
+ synthetic constructor •() → main::Test2
: super dart.core::Object::•()
;
- abstract method world() → lib::Baz*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract method world() → lib::Baz;
}
}
diff --git a/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.2.expect
index 65c8b9e..f0ed98f 100644
--- a/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_mixin_failure_1.yaml.world.2.expect
@@ -2,73 +2,43 @@
library from "org-dartlang-test:///lib.dart" as lib {
class FooEntry extends dart.core::Object {
- synthetic constructor •() → lib::FooEntry*
+ synthetic constructor •() → lib::FooEntry
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class BarEntry extends lib::FooEntry {
- synthetic constructor •() → lib::BarEntry*
+ synthetic constructor •() → lib::BarEntry
: super lib::FooEntry::•()
;
}
abstract class FooTarget extends dart.core::Object {
- synthetic constructor •() → lib::FooTarget*
+ synthetic constructor •() → lib::FooTarget
: super dart.core::Object::•()
;
- abstract method hello(lib::FooEntry* entry) → void;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract method hello(lib::FooEntry entry) → void;
}
abstract class Baz extends dart.core::Object implements lib::FooTarget {
- synthetic constructor •() → lib::Baz*
+ synthetic constructor •() → lib::Baz
: super dart.core::Object::•()
;
- method hello(covariant-by-declaration lib::FooEntry* entry) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method hello(covariant-by-declaration lib::FooEntry entry) → void {}
}
abstract class MyMixin extends lib::Baz /*isMixinDeclaration*/ {
}
abstract class Qux extends lib::Baz {
- synthetic constructor •() → lib::Qux*
+ synthetic constructor •() → lib::Qux
: super lib::Baz::•()
;
- method hello(covariant-by-declaration lib::BarEntry* entry) → void {}
+ method hello(covariant-by-declaration lib::BarEntry entry) → void {}
}
abstract class _Quux&Qux&MyMixin extends lib::Qux implements lib::MyMixin /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → lib::_Quux&Qux&MyMixin*
+ synthetic constructor •() → lib::_Quux&Qux&MyMixin
: super lib::Qux::•()
;
- abstract member-signature method hello(covariant-by-declaration lib::FooEntry* entry) → void; -> lib::Baz::hello
+ abstract member-signature method hello(covariant-by-declaration lib::FooEntry entry) → void; -> lib::Baz::hello
}
class Quux extends lib::_Quux&Qux&MyMixin {
- synthetic constructor •() → lib::Quux*
+ synthetic constructor •() → lib::Quux
: super lib::_Quux&Qux&MyMixin::•()
;
}
@@ -78,27 +48,17 @@
import "org-dartlang-test:///lib.dart";
class Test extends main::Test2 {
- synthetic constructor •() → main::Test*
+ synthetic constructor •() → main::Test
: super main::Test2::•()
;
- method world() → lib::Quux*
- return null;
+ method world() → lib::Quux
+ return throw "";
}
abstract class Test2 extends dart.core::Object {
- synthetic constructor •() → main::Test2*
+ synthetic constructor •() → main::Test2
: super dart.core::Object::•()
;
- abstract method world() → lib::Baz*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract method world() → lib::Baz;
}
static method main() → dynamic {
dart.core::print(new main::Test::•());
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml
index 01cc15f..dd756a9 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml
@@ -9,18 +9,15 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/widget_inspector.dart';
class Foo extends Widget {}
flutter/lib/src/widgets/framework.dart: |
- // @dart=2.9
abstract class Bar {}
abstract class Widget extends Bar {}
flutter/lib/src/widgets/widget_inspector.dart: |
- // @dart=2.9
abstract class _HasCreationLocation {
_Location get _location;
}
@@ -29,11 +26,11 @@
/// file locations.
class _Location {
const _Location({
- this.file,
- this.line,
- this.column,
- this.name,
- this.parameterLocations,
+ required this.file,
+ required this.line,
+ required this.column,
+ required this.name,
+ required this.parameterLocations,
});
/// File path of the location.
@@ -69,7 +66,6 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
import 'package:flutter/src/widgets/framework.dart';
import 'package:flutter/src/widgets/widget_inspector.dart';
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect
index 1168c24..82bfff9 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.1.expect
@@ -2,18 +2,13 @@
library from "package:flutter/src/widgets/framework.dart" as fra {
abstract class Bar extends dart.core::Object {
- synthetic constructor •() → fra::Bar*
+ synthetic constructor •() → fra::Bar
: super dart.core::Object::•()
;
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class Widget extends fra::Bar implements wid::_HasCreationLocation {
- final field wid::_Location* _location;
- synthetic constructor •({wid::_Location* $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget*
+ final field wid::_Location? _location /*isLegacy*/;
+ synthetic constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget
: super fra::Bar::•(), fra::Widget::_location = $creationLocationd_0dea112b090073317d4
;
}
@@ -21,32 +16,22 @@
library from "package:flutter/src/widgets/widget_inspector.dart" as wid {
abstract class _HasCreationLocation extends dart.core::Object {
- synthetic constructor •() → wid::_HasCreationLocation*
+ synthetic constructor •() → wid::_HasCreationLocation
: super dart.core::Object::•()
;
- abstract get _location() → wid::_Location*;
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get _location() → wid::_Location;
}
class _Location extends dart.core::Object /*hasConstConstructor*/ {
- final field dart.core::String* file;
- final field dart.core::int* line;
- final field dart.core::int* column;
- final field dart.core::String* name;
- final field dart.core::List<wid::_Location*>* parameterLocations;
- const constructor •({dart.core::String* file = #C1, dart.core::int* line = #C1, dart.core::int* column = #C1, dart.core::String* name = #C1, dart.core::List<wid::_Location*>* parameterLocations = #C1}) → wid::_Location*
+ final field dart.core::String file;
+ final field dart.core::int line;
+ final field dart.core::int column;
+ final field dart.core::String name;
+ final field dart.core::List<wid::_Location> parameterLocations;
+ const constructor •({required dart.core::String file = #C1, required dart.core::int line = #C1, required dart.core::int column = #C1, required dart.core::String name = #C1, required dart.core::List<wid::_Location> parameterLocations = #C1}) → wid::_Location
: wid::_Location::file = file, wid::_Location::line = line, wid::_Location::column = column, wid::_Location::name = name, wid::_Location::parameterLocations = parameterLocations, super dart.core::Object::•()
;
- static method _#new#tearOff({dart.core::String* file = #C1, dart.core::int* line = #C1, dart.core::int* column = #C1, dart.core::String* name = #C1, dart.core::List<wid::_Location*>* parameterLocations = #C1}) → wid::_Location*
+ static method _#new#tearOff({required dart.core::String file = #C1, required dart.core::int line = #C1, required dart.core::int column = #C1, required dart.core::String name = #C1, required dart.core::List<wid::_Location> parameterLocations = #C1}) → wid::_Location
return new wid::_Location::•(file: file, line: line, column: column, name: name, parameterLocations: parameterLocations);
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -55,17 +40,17 @@
import "package:flutter/src/widgets/widget_inspector.dart";
class Foo extends fra::Widget {
- synthetic constructor •({wid::_Location* $creationLocationd_0dea112b090073317d4 = #C1}) → main::Foo*
+ synthetic constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → main::Foo
: super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4)
;
- static method _#new#tearOff() → main::Foo*
+ static method _#new#tearOff() → main::Foo
return new main::Foo::•($creationLocationd_0dea112b090073317d4: #C6);
}
}
constants {
#C1 = null
#C2 = "org-dartlang-test:///main.dart"
- #C3 = 5.0
+ #C3 = 4.0
#C4 = 7.0
#C5 = "Foo"
#C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
@@ -74,6 +59,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:9:9)
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:8:9)
- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
diff --git a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect
index 1168c24..82bfff9 100644
--- a/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/flutter_widget_transform.yaml.world.2.expect
@@ -2,18 +2,13 @@
library from "package:flutter/src/widgets/framework.dart" as fra {
abstract class Bar extends dart.core::Object {
- synthetic constructor •() → fra::Bar*
+ synthetic constructor •() → fra::Bar
: super dart.core::Object::•()
;
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class Widget extends fra::Bar implements wid::_HasCreationLocation {
- final field wid::_Location* _location;
- synthetic constructor •({wid::_Location* $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget*
+ final field wid::_Location? _location /*isLegacy*/;
+ synthetic constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → fra::Widget
: super fra::Bar::•(), fra::Widget::_location = $creationLocationd_0dea112b090073317d4
;
}
@@ -21,32 +16,22 @@
library from "package:flutter/src/widgets/widget_inspector.dart" as wid {
abstract class _HasCreationLocation extends dart.core::Object {
- synthetic constructor •() → wid::_HasCreationLocation*
+ synthetic constructor •() → wid::_HasCreationLocation
: super dart.core::Object::•()
;
- abstract get _location() → wid::_Location*;
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get _location() → wid::_Location;
}
class _Location extends dart.core::Object /*hasConstConstructor*/ {
- final field dart.core::String* file;
- final field dart.core::int* line;
- final field dart.core::int* column;
- final field dart.core::String* name;
- final field dart.core::List<wid::_Location*>* parameterLocations;
- const constructor •({dart.core::String* file = #C1, dart.core::int* line = #C1, dart.core::int* column = #C1, dart.core::String* name = #C1, dart.core::List<wid::_Location*>* parameterLocations = #C1}) → wid::_Location*
+ final field dart.core::String file;
+ final field dart.core::int line;
+ final field dart.core::int column;
+ final field dart.core::String name;
+ final field dart.core::List<wid::_Location> parameterLocations;
+ const constructor •({required dart.core::String file = #C1, required dart.core::int line = #C1, required dart.core::int column = #C1, required dart.core::String name = #C1, required dart.core::List<wid::_Location> parameterLocations = #C1}) → wid::_Location
: wid::_Location::file = file, wid::_Location::line = line, wid::_Location::column = column, wid::_Location::name = name, wid::_Location::parameterLocations = parameterLocations, super dart.core::Object::•()
;
- static method _#new#tearOff({dart.core::String* file = #C1, dart.core::int* line = #C1, dart.core::int* column = #C1, dart.core::String* name = #C1, dart.core::List<wid::_Location*>* parameterLocations = #C1}) → wid::_Location*
+ static method _#new#tearOff({required dart.core::String file = #C1, required dart.core::int line = #C1, required dart.core::int column = #C1, required dart.core::String name = #C1, required dart.core::List<wid::_Location> parameterLocations = #C1}) → wid::_Location
return new wid::_Location::•(file: file, line: line, column: column, name: name, parameterLocations: parameterLocations);
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -55,17 +40,17 @@
import "package:flutter/src/widgets/widget_inspector.dart";
class Foo extends fra::Widget {
- synthetic constructor •({wid::_Location* $creationLocationd_0dea112b090073317d4 = #C1}) → main::Foo*
+ synthetic constructor •({wid::_Location? $creationLocationd_0dea112b090073317d4 = #C1}) → main::Foo
: super fra::Widget::•($creationLocationd_0dea112b090073317d4: $creationLocationd_0dea112b090073317d4)
;
- static method _#new#tearOff() → main::Foo*
+ static method _#new#tearOff() → main::Foo
return new main::Foo::•($creationLocationd_0dea112b090073317d4: #C6);
}
}
constants {
#C1 = null
#C2 = "org-dartlang-test:///main.dart"
- #C3 = 5.0
+ #C3 = 4.0
#C4 = 7.0
#C5 = "Foo"
#C6 = wid::_Location {file:#C2, line:#C3, column:#C4, name:#C5, parameterLocations:#C1}
@@ -74,6 +59,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:9:9)
+- _Location. (from org-dartlang-test:///flutter/lib/src/widgets/widget_inspector.dart:8:9)
- Object. (from org-dartlang-sdk:///lib/core/object.dart:-1:-1)
diff --git a/pkg/front_end/testcases/incremental/incremental_serialization_1.yaml b/pkg/front_end/testcases/incremental/incremental_serialization_1.yaml
index 3e63911..49d644c 100644
--- a/pkg/front_end/testcases/incremental/incremental_serialization_1.yaml
+++ b/pkg/front_end/testcases/incremental/incremental_serialization_1.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "dart:core";
import "package:package2/lib2.dart";
import "package:package2/lib3.dart";
@@ -19,17 +18,14 @@
lib3();
}
package1/lib1.dart: |
- // @dart=2.9
lib1() {
return 42;
}
package2/lib2.dart: |
- // @dart=2.9
lib2() {
return 42;
}
package2/lib3.dart: |
- // @dart=2.9
import "package:package1/lib1.dart";
lib3() {
return lib1();
@@ -57,7 +53,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:package1/lib1.dart";
main() {
lib1();
@@ -75,7 +70,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:package2/lib2.dart";
main() {
lib2();
@@ -91,13 +85,11 @@
- package:package1/lib1.dart
sources:
main.dart: |
- // @dart=2.9
import "package:package2/lib2.dart";
main() {
lib2();
}
package1/lib1.dart: |
- // @dart=2.9
lib1_1() {
return 42;
}
diff --git a/pkg/front_end/testcases/incremental/incremental_serialization_2.yaml b/pkg/front_end/testcases/incremental/incremental_serialization_2.yaml
index 15fb17a..9bb763c 100644
--- a/pkg/front_end/testcases/incremental/incremental_serialization_2.yaml
+++ b/pkg/front_end/testcases/incremental/incremental_serialization_2.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:package1/lib1.dart";
import "package:package1/lib2.dart";
import "package:package1/lib3.dart";
@@ -21,17 +20,14 @@
lib3();
}
package1/lib1.dart: |
- // @dart=2.9
lib1() {
return 42;
}
package1/lib2.dart: |
- // @dart=2.9
lib2() {
return 42;
}
package1/lib3.dart: |
- // @dart=2.9
import "package:package1/lib1.dart";
lib3() {
return lib1();
@@ -55,7 +51,6 @@
- package:package1/lib3.dart
sources:
package1/lib3.dart: |
- // @dart=2.9
import "package:package1/lib1.dart";
lib3() {
return lib3_1();
diff --git a/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml b/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml
index e3664d7..1863ef8 100644
--- a/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml
+++ b/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml
@@ -13,36 +13,31 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "dart:core";
import "package:package1/lib1_a.dart";
main() {
lib1();
}
package1/lib1_a.dart: |
- // @dart=2.9
import "package:package3/lib3.dart" as lib3;
export "lib1_b.dart";
lib1a() {
lib3.lib3();
}
package1/lib1_b.dart: |
- // @dart=2.9
import "package:package2/lib2.dart" as lib2;
lib1() {
return la(null);
}
- la(lib2.Foo f) {
+ la(lib2.Foo? f) {
return 42;
}
package2/lib2.dart: |
- // @dart=2.9
int f = 42;
class Foo {
static int y = 42;
}
package3/lib3.dart: |
- // @dart=2.9
lib3() {
print("lib3");
}
@@ -70,36 +65,31 @@
expectInitializeFromDill: true
sources:
main.dart: |
- // @dart=2.9
import "dart:core";
import "package:package1/lib1_a.dart";
main() {
lib1();
}
package1/lib1_a.dart: |
- // @dart=2.9
import "package:package3/lib3.dart" as lib3;
export "lib1_b.dart";
lib1a() {
lib3.lib3();
}
package1/lib1_b.dart: |
- // @dart=2.9
import "package:package2/lib2.dart" as lib2;
lib1() {
return la(null);
}
- la(lib2.Foo f) {
+ la(lib2.Foo? f) {
return 42;
}
package2/lib2.dart: |
- // @dart=2.9
int f = 42;
class Foo {
static int y = 42;
}
package3/lib3.dart: |
- // @dart=2.9
lib3() {
print("lib3");
}
diff --git a/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.1.expect
index 6aaedcc..8f81a48 100644
--- a/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.1.expect
@@ -26,29 +26,19 @@
static method lib1() → dynamic {
return lib::la(null);
}
- static method la(lib22::Foo* f) → dynamic {
+ static method la(lib22::Foo? f) → dynamic {
return 42;
}
}
library from "package:package2/lib2.dart" as lib22 {
class Foo extends dart.core::Object {
- static field dart.core::int* y = 42;
- synthetic constructor •() → lib22::Foo*
+ static field dart.core::int y = 42;
+ synthetic constructor •() → lib22::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static field dart.core::int* f = 42;
+ static field dart.core::int f = 42;
}
library from "package:package3/lib3.dart" as lib3 {
diff --git a/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.2.expect
index 6aaedcc..8f81a48 100644
--- a/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/incremental_serialization_3.yaml.world.2.expect
@@ -26,29 +26,19 @@
static method lib1() → dynamic {
return lib::la(null);
}
- static method la(lib22::Foo* f) → dynamic {
+ static method la(lib22::Foo? f) → dynamic {
return 42;
}
}
library from "package:package2/lib2.dart" as lib22 {
class Foo extends dart.core::Object {
- static field dart.core::int* y = 42;
- synthetic constructor •() → lib22::Foo*
+ static field dart.core::int y = 42;
+ synthetic constructor •() → lib22::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static field dart.core::int* f = 42;
+ static field dart.core::int f = 42;
}
library from "package:package3/lib3.dart" as lib3 {
diff --git a/pkg/front_end/testcases/incremental/incremental_serialization_4.yaml b/pkg/front_end/testcases/incremental/incremental_serialization_4.yaml
index 144fc2c..108d755 100644
--- a/pkg/front_end/testcases/incremental/incremental_serialization_4.yaml
+++ b/pkg/front_end/testcases/incremental/incremental_serialization_4.yaml
@@ -13,7 +13,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:package1/p1.dart";
import "package:package2/p2.dart";
main() {
@@ -21,7 +20,6 @@
p2();
}
package1/p1.dart: |
- // @dart=2.9
p1() {
print("Package 1");
p1_v1_Only();
@@ -30,7 +28,6 @@
print("Package 1 v1 only!");
}
package1v2/p1.dart: |
- // @dart=2.9
p1() {
print("Package 1 v2");
p1_v2_Only();
@@ -39,7 +36,6 @@
print("Package 1 v2 only!");
}
package2/p2.dart: |
- // @dart=2.9
import "package:package1/p1.dart";
p2() {
p1();
@@ -65,7 +61,6 @@
expectInitializeFromDill: false # .packages changed
sources:
main.dart: |
- // @dart=2.9
import "package:package1/p1.dart";
import "package:package2/p2.dart";
main() {
@@ -73,7 +68,6 @@
p2();
}
package1/p1.dart: |
- // @dart=2.9
p1() {
print("Package 1");
p1_v1_Only();
@@ -82,7 +76,6 @@
print("Package 1 v1 only!");
}
package1v2/p1.dart: |
- // @dart=2.9
p1() {
print("Package 1 v2");
p1_v2_Only();
@@ -91,7 +84,6 @@
print("Package 1 v2 only!");
}
package2/p2.dart: |
- // @dart=2.9
import "package:package1/p1.dart";
p2() {
p1();
diff --git a/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml b/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml
index f2414e8..2efee99 100644
--- a/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml
+++ b/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml
@@ -13,14 +13,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "foo.dart";
main() {
Foo foo = new Foo();
foo.foo();
}
foo.dart: |
- // @dart=2.9
class Foo {
foo() {
print("Foo!");
@@ -32,12 +30,10 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("hello from main");
}
foo.dart: |
- // @dart=2.9
class Foo {
foo() {
print("Foo!");
@@ -51,7 +47,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "foo.dart";
main() {
Foo foo = new Foo();
diff --git a/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.1.expect b/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.1.expect
index 5296948..ea64df1 100644
--- a/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.1.expect
@@ -2,22 +2,12 @@
library from "org-dartlang-test:///foo.dart" as foo {
class Foo extends dart.core::Object {
- synthetic constructor •() → foo::Foo*
+ synthetic constructor •() → foo::Foo
: super dart.core::Object::•()
;
method foo() → dynamic {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -25,7 +15,7 @@
import "org-dartlang-test:///foo.dart";
static method main() → dynamic {
- foo::Foo* foo = new foo::Foo::•();
- foo.{foo::Foo::foo}(){() →* dynamic};
+ foo::Foo foo = new foo::Foo::•();
+ foo.{foo::Foo::foo}(){() → dynamic};
}
}
diff --git a/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.3.expect b/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.3.expect
index 5296948..ea64df1 100644
--- a/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/initialize_with_file_then_use_type.yaml.world.3.expect
@@ -2,22 +2,12 @@
library from "org-dartlang-test:///foo.dart" as foo {
class Foo extends dart.core::Object {
- synthetic constructor •() → foo::Foo*
+ synthetic constructor •() → foo::Foo
: super dart.core::Object::•()
;
method foo() → dynamic {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -25,7 +15,7 @@
import "org-dartlang-test:///foo.dart";
static method main() → dynamic {
- foo::Foo* foo = new foo::Foo::•();
- foo.{foo::Foo::foo}(){() →* dynamic};
+ foo::Foo foo = new foo::Foo::•();
+ foo.{foo::Foo::foo}(){() → dynamic};
}
}
diff --git a/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml b/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml
index dd9cc98..330c4fc 100644
--- a/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml
+++ b/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml
@@ -14,14 +14,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:mypackage/foo.dart";
main() {
Foo foo = new Foo();
foo.foo();
}
mypackage/foo.dart: |
- // @dart=2.9
class Foo {
foo() {
print("Foo!");
@@ -43,12 +41,10 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("hello from main");
}
mypackage/foo.dart: |
- // @dart=2.9
class Foo {
foo() {
print("Foo!");
@@ -72,7 +68,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:mypackage/foo.dart";
main() {
Foo foo = new Foo();
diff --git a/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.1.expect b/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.1.expect
index 7f55824..5731142 100644
--- a/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.1.expect
@@ -4,28 +4,18 @@
import "package:mypackage/foo.dart";
static method main() → dynamic {
- foo::Foo* foo = new foo::Foo::•();
- foo.{foo::Foo::foo}(){() →* dynamic};
+ foo::Foo foo = new foo::Foo::•();
+ foo.{foo::Foo::foo}(){() → dynamic};
}
}
library from "package:mypackage/foo.dart" as foo {
class Foo extends dart.core::Object {
- synthetic constructor •() → foo::Foo*
+ synthetic constructor •() → foo::Foo
: super dart.core::Object::•()
;
method foo() → dynamic {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.3.expect b/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.3.expect
index 7f55824..5731142 100644
--- a/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/initialize_with_unused_package_then_use_type.yaml.world.3.expect
@@ -4,28 +4,18 @@
import "package:mypackage/foo.dart";
static method main() → dynamic {
- foo::Foo* foo = new foo::Foo::•();
- foo.{foo::Foo::foo}(){() →* dynamic};
+ foo::Foo foo = new foo::Foo::•();
+ foo.{foo::Foo::foo}(){() → dynamic};
}
}
library from "package:mypackage/foo.dart" as foo {
class Foo extends dart.core::Object {
- synthetic constructor •() → foo::Foo*
+ synthetic constructor •() → foo::Foo
: super dart.core::Object::•()
;
method foo() → dynamic {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/initializer_not_copied.yaml b/pkg/front_end/testcases/incremental/initializer_not_copied.yaml
index f6b8c6b..7146c86 100644
--- a/pkg/front_end/testcases/incremental/initializer_not_copied.yaml
+++ b/pkg/front_end/testcases/incremental/initializer_not_copied.yaml
@@ -12,7 +12,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class C extends C3 implements C4 {
void noSuchMethod(Invocation invocation) {
diff --git a/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.1.expect b/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.1.expect
index dc9903b..7b0a7bc 100644
--- a/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.1.expect
@@ -31,27 +31,18 @@
import "org-dartlang-test:///lib.dart";
class C extends lib::C3 implements lib::C4 {
- synthetic constructor •() → main::C*
+ synthetic constructor •() → main::C
: super lib::C3::•()
;
- method noSuchMethod(dart.core::Invocation* invocation) → void {
- dart.core::print(invocation.{dart.core::Invocation::positionalArguments}{dart.core::List<dynamic>*});
+ method noSuchMethod(dart.core::Invocation invocation) → void {
+ dart.core::print(invocation.{dart.core::Invocation::positionalArguments}{dart.core::List<dynamic>});
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- no-such-method-forwarder method m([covariant-by-declaration dart.core::String* a]) → dynamic
- return this.{main::C::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C3, 0, #C4, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(a)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C5))){(dart.core::Invocation*) →* void} as{TypeError,ForDynamic} dynamic;
+ no-such-method-forwarder method m([covariant-by-declaration dart.core::String a]) → dynamic
+ return this.{main::C::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C3, 0, #C4, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(a)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C5))){(dart.core::Invocation) → void} as{TypeError,ForDynamic,ForNonNullableByDefault} dynamic;
}
static method main() → dynamic {
- main::C* c = new main::C::•();
- c.{main::C::m}(){([dart.core::String*]) →* dynamic};
+ main::C c = new main::C::•();
+ c.{main::C::m}(){([dart.core::String]) → dynamic};
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.2.expect b/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.2.expect
index 60cba58..a68df11 100644
--- a/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/initializer_not_copied.yaml.world.2.expect
@@ -31,27 +31,18 @@
import "org-dartlang-test:///lib.dart";
class C extends lib::C3 implements lib::C4 {
- synthetic constructor •() → main::C*
+ synthetic constructor •() → main::C
: super lib::C3::•()
;
- method noSuchMethod(dart.core::Invocation* invocation) → void {
- dart.core::print(invocation.{dart.core::Invocation::positionalArguments}{dart.core::List<dynamic>*});
+ method noSuchMethod(dart.core::Invocation invocation) → void {
+ dart.core::print(invocation.{dart.core::Invocation::positionalArguments}{dart.core::List<dynamic>});
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- no-such-method-forwarder method m([covariant-by-declaration dart.core::String* a = #C1]) → dynamic
- return this.{main::C::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C3, 0, #C4, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(a)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C5))){(dart.core::Invocation*) →* void} as{TypeError,ForDynamic} dynamic;
+ no-such-method-forwarder method m([covariant-by-declaration dart.core::String a = #C1]) → dynamic
+ return this.{main::C::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C3, 0, #C4, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(a)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C5))){(dart.core::Invocation) → void} as{TypeError,ForDynamic,ForNonNullableByDefault} dynamic;
}
static method main() → dynamic {
- main::C* c = new main::C::•();
- c.{main::C::m}(){([dart.core::String*]) →* dynamic};
+ main::C c = new main::C::•();
+ c.{main::C::m}(){([dart.core::String]) → dynamic};
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml b/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml
index fd9154f..2620942c 100644
--- a/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml
+++ b/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml
@@ -9,7 +9,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
// The space makes the scheme invalid -- this causes Uri.parse to throw.
part ' package:foo/bar.dart';
expectedLibraryCount: 1
@@ -22,7 +21,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {}
expectInitializeFromDill: false
expectedLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml.world.1.expect b/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml.world.1.expect
index 2b1004b..8763205 100644
--- a/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/invalid_part_uri_01.yaml.world.1.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:6: Error: Expected a URI.
+// org-dartlang-test:///main.dart:2:6: Error: Expected a URI.
// part ' package:foo/bar.dart';
// ^
//
@@ -13,7 +13,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:7: Error: Couldn't parse URI ' package:foo/bar.dart':
+// org-dartlang-test:///main.dart:2:7: Error: Couldn't parse URI ' package:foo/bar.dart':
// Scheme not starting with alphabetic character.
// part ' package:foo/bar.dart';
// ^
diff --git a/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml b/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml
index 0ee68fc..a77a588 100644
--- a/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml
+++ b/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml
@@ -8,7 +8,6 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
part '$foo';
main() {}
expectedLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.1.expect b/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.1.expect
index 1184909..144eef3 100644
--- a/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.1.expect
@@ -1,9 +1,9 @@
main = main::main;
-library from "org-dartlang-malformed-uri:bad18" as bad {
+library from "org-dartlang-malformed-uri:bad5" as bad5 {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Expected a URI.
+// org-dartlang-test:///main.dart:1:6: Error: Expected a URI.
// part '$foo';
// ^
//
@@ -13,11 +13,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:7: Error: Can't use string interpolation in a URI.
+// org-dartlang-test:///main.dart:1:7: Error: Can't use string interpolation in a URI.
// part '$foo';
// ^
//
- part org-dartlang-malformed-uri:bad18;
+ part org-dartlang-malformed-uri:bad5;
static method main() → dynamic {}
}
diff --git a/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.2.expect b/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.2.expect
index 1184909..144eef3 100644
--- a/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/invalid_uri_as_part.yaml.world.2.expect
@@ -1,9 +1,9 @@
main = main::main;
-library from "org-dartlang-malformed-uri:bad18" as bad {
+library from "org-dartlang-malformed-uri:bad5" as bad5 {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Expected a URI.
+// org-dartlang-test:///main.dart:1:6: Error: Expected a URI.
// part '$foo';
// ^
//
@@ -13,11 +13,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:7: Error: Can't use string interpolation in a URI.
+// org-dartlang-test:///main.dart:1:7: Error: Can't use string interpolation in a URI.
// part '$foo';
// ^
//
- part org-dartlang-malformed-uri:bad18;
+ part org-dartlang-malformed-uri:bad5;
static method main() → dynamic {}
}
diff --git a/pkg/front_end/testcases/incremental/invalidate_export_of_main.yaml b/pkg/front_end/testcases/incremental/invalidate_export_of_main.yaml
index eee5b6c..768fd3c 100644
--- a/pkg/front_end/testcases/incremental/invalidate_export_of_main.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_export_of_main.yaml
@@ -10,8 +10,6 @@
- a.dart
sources:
a.dart: |
- // @dart=2.9
export 'b.dart';
b.dart: |
- // @dart=2.9
main() { print("hello"); }
\ No newline at end of file
diff --git a/pkg/front_end/testcases/incremental/invalidate_package_part.yaml b/pkg/front_end/testcases/incremental/invalidate_package_part.yaml
index 224d615..3932e94 100644
--- a/pkg/front_end/testcases/incremental/invalidate_package_part.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_package_part.yaml
@@ -10,14 +10,12 @@
- entry: "package:example/main.dart"
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b1");
@@ -40,14 +38,12 @@
- "package:example/b.dart"
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b2");
@@ -70,14 +66,12 @@
- "package:example/b.dart"
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b3");
diff --git a/pkg/front_end/testcases/incremental/invalidate_package_part_2.yaml b/pkg/front_end/testcases/incremental/invalidate_package_part_2.yaml
index c8635e8..ca20741 100644
--- a/pkg/front_end/testcases/incremental/invalidate_package_part_2.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_package_part_2.yaml
@@ -9,14 +9,12 @@
- entry: "package:example/main.dart"
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b1");
@@ -41,7 +39,6 @@
- "package:example/b.dart"
sources:
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b2");
@@ -66,7 +63,6 @@
- "package:example/b.dart"
sources:
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b3");
diff --git a/pkg/front_end/testcases/incremental/invalidate_package_part_as_file.yaml b/pkg/front_end/testcases/incremental/invalidate_package_part_as_file.yaml
index b6fc99f..046ced9 100644
--- a/pkg/front_end/testcases/incremental/invalidate_package_part_as_file.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_package_part_as_file.yaml
@@ -10,14 +10,12 @@
- pkg/example/b.dart
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b1");
diff --git a/pkg/front_end/testcases/incremental/invalidate_package_part_as_package.yaml b/pkg/front_end/testcases/incremental/invalidate_package_part_as_package.yaml
index 6519fd4..e96a3ed 100644
--- a/pkg/front_end/testcases/incremental/invalidate_package_part_as_package.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_package_part_as_package.yaml
@@ -10,14 +10,12 @@
- "package:example/b.dart"
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "main.dart";
b() {
print("b1");
diff --git a/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_file.yaml b/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_file.yaml
index 17c374a..4df5b5a 100644
--- a/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_file.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_file.yaml
@@ -11,14 +11,12 @@
- pkg/example/b.dart
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "package:example/b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "package:example/main.dart";
b() {
print("b1");
diff --git a/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_package.yaml b/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_package.yaml
index d79692e..ef23401 100644
--- a/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_package.yaml
+++ b/pkg/front_end/testcases/incremental/invalidate_package_part_from_package_url_as_package.yaml
@@ -11,14 +11,12 @@
- "package:example/b.dart"
sources:
pkg/example/main.dart: |
- // @dart=2.9
part "package:example/b.dart";
main() {
print("hello");
b();
}
pkg/example/b.dart: |
- // @dart=2.9
part of "package:example/main.dart";
b() {
print("b1");
diff --git a/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml b/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml
index ec752c6..2313785 100644
--- a/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml
+++ b/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml
@@ -15,19 +15,16 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("hello");
b();
}
b.dart: |
- // @dart=2.9
b() {
print("hello from b");
}
c.dart: |
- // @dart=2.9
c() {
print("hello from c");
}
@@ -41,7 +38,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
import "nonexisting.dart";
main() {
@@ -49,7 +45,6 @@
b();
}
b.dart: |
- // @dart=2.9
import "c.dart";
b() {
print("hello from b");
@@ -65,7 +60,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("hello");
diff --git a/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml.world.2.expect b/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml.world.2.expect
index 00a49d0..8f72034 100644
--- a/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/invalidation_across_compile_time_error.yaml.world.2.expect
@@ -28,7 +28,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///main.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/issue_32366.yaml b/pkg/front_end/testcases/incremental/issue_32366.yaml
index 595813f..c049a7d 100644
--- a/pkg/front_end/testcases/incremental/issue_32366.yaml
+++ b/pkg/front_end/testcases/incremental/issue_32366.yaml
@@ -8,7 +8,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
abstract class AIterator extends Iterator {
}
class Foo {
@@ -26,7 +25,6 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
abstract class BIterator extends Iterator {
}
class Foo {
diff --git a/pkg/front_end/testcases/incremental/issue_32366.yaml.world.1.expect b/pkg/front_end/testcases/incremental/issue_32366.yaml.world.1.expect
index 3cb283a..bc95a7c 100644
--- a/pkg/front_end/testcases/incremental/issue_32366.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/issue_32366.yaml.world.1.expect
@@ -2,36 +2,15 @@
library from "org-dartlang-test:///main.dart" as main {
abstract class AIterator extends dart.core::Iterator<dynamic> {
- synthetic constructor •() → main::AIterator*
+ synthetic constructor •() → main::AIterator
: super dart.core::Iterator::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- abstract member-signature method moveNext() → dart.core::bool*; -> dart.core::Iterator::moveNext
}
class Foo extends dart.core::Object {
final field dynamic a;
- constructor •(dynamic a) → main::Foo*
+ constructor •(dynamic a) → main::Foo
: main::Foo::a = a, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
new main::Foo::•(5);
diff --git a/pkg/front_end/testcases/incremental/issue_32366.yaml.world.2.expect b/pkg/front_end/testcases/incremental/issue_32366.yaml.world.2.expect
index 65cc6dc..84dceba 100644
--- a/pkg/front_end/testcases/incremental/issue_32366.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/issue_32366.yaml.world.2.expect
@@ -3,65 +3,44 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:5:11: Error: Expected ';' after this.
+// org-dartlang-test:///main.dart:4:11: Error: Expected ';' after this.
// final a kjsdf ksjdf ;
// ^^^^^
//
-// org-dartlang-test:///main.dart:5:11: Error: Final field 'kjsdf' is not initialized.
+// org-dartlang-test:///main.dart:4:11: Error: Final field 'kjsdf' is not initialized.
// Try to initialize the field in the declaration or in every constructor.
// final a kjsdf ksjdf ;
// ^^^^^
//
-// org-dartlang-test:///main.dart:5:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// org-dartlang-test:///main.dart:4:17: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// final a kjsdf ksjdf ;
// ^^^^^
//
-// org-dartlang-test:///main.dart:5:9: Error: 'a' isn't a type.
+// org-dartlang-test:///main.dart:4:9: Error: 'a' isn't a type.
// final a kjsdf ksjdf ;
// ^
//
-// org-dartlang-test:///main.dart:5:9: Error: Type 'a' not found.
+// org-dartlang-test:///main.dart:4:9: Error: Type 'a' not found.
// final a kjsdf ksjdf ;
// ^
//
-// org-dartlang-test:///main.dart:6:12: Error: 'a' isn't an instance field of this class.
+// org-dartlang-test:///main.dart:5:12: Error: 'a' isn't an instance field of this class.
// Foo(this.a);
// ^
//
abstract class BIterator extends dart.core::Iterator<dynamic> {
- synthetic constructor •() → main::BIterator*
+ synthetic constructor •() → main::BIterator
: super dart.core::Iterator::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- abstract member-signature method moveNext() → dart.core::bool*; -> dart.core::Iterator::moveNext
}
class Foo extends dart.core::Object {
final field invalid-type kjsdf = null;
field dynamic ksjdf = null;
- constructor •(dynamic a) → main::Foo*
- : final dynamic #t1 = invalid-expression "org-dartlang-test:///main.dart:6:12: Error: 'a' isn't an instance field of this class.\n Foo(this.a);\n ^"
+ constructor •(dynamic a) → main::Foo
+ : final dynamic #t1 = invalid-expression "org-dartlang-test:///main.dart:5:12: Error: 'a' isn't an instance field of this class.\n Foo(this.a);\n ^"
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
new main::Foo::•(5);
diff --git a/pkg/front_end/testcases/incremental/issue_41976.yaml b/pkg/front_end/testcases/incremental/issue_41976.yaml
index ed856be..d8e31e8 100644
--- a/pkg/front_end/testcases/incremental/issue_41976.yaml
+++ b/pkg/front_end/testcases/incremental/issue_41976.yaml
@@ -9,7 +9,6 @@
- entry: foo.dart
sources:
foo.dart: |
- // @dart=2.9
abstract class Key {
const factory Key(String value) = ValueKey;
const Key.empty();
diff --git a/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect b/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect
index 20a26f1..bf30834 100644
--- a/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expect
@@ -2,46 +2,26 @@
library from "org-dartlang-test:///foo.dart" as foo {
abstract class Key extends dart.core::Object /*hasConstConstructor*/ {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- const constructor empty() → foo::Key*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ const constructor empty() → foo::Key
: super dart.core::Object::•()
;
- static factory •(dart.core::String* value) → foo::Key*
+ static factory •(dart.core::String value) → foo::Key
return new foo::ValueKey::•(value);
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class LocalKey extends foo::Key /*hasConstConstructor*/ {
- const constructor •() → foo::LocalKey*
+ const constructor •() → foo::LocalKey
: super foo::Key::empty()
;
}
class ValueKey extends dart.core::Object implements foo::LocalKey /*hasConstConstructor*/ {
- final field dart.core::String* value;
- const constructor •(dart.core::String* value) → foo::ValueKey*
+ final field dart.core::String value;
+ const constructor •(dart.core::String value) → foo::ValueKey
: foo::ValueKey::value = value, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → void {
- foo::Key* k = new foo::ValueKey::•("t");
+ foo::Key k = new foo::ValueKey::•("t");
dart.core::print("${k}");
}
}
diff --git a/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expression.2.expect b/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expression.2.expect
index caf27dd..d88fafa 100644
--- a/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expression.2.expect
+++ b/pkg/front_end/testcases/incremental/issue_41976.yaml.world.1.expression.2.expect
@@ -1,5 +1,5 @@
method /* from org-dartlang-debug:synthetic_debug_expression */ debugExpr() → dynamic
- return (() → dart.core::int* {
- #lib1::Key* x = new #lib1::ValueKey::•("t");
- return x.{#lib1::Key::hashCode}{dart.core::int*};
- })(){() →* dart.core::int*};
+ return (() → dart.core::int {
+ #lib1::Key x = new #lib1::ValueKey::•("t");
+ return x.{dart.core::Object::hashCode}{dart.core::int};
+ })(){() → dart.core::int};
diff --git a/pkg/front_end/testcases/incremental/issue_44523.yaml b/pkg/front_end/testcases/incremental/issue_44523.yaml
index d7d4906..63f5ae4 100644
--- a/pkg/front_end/testcases/incremental/issue_44523.yaml
+++ b/pkg/front_end/testcases/incremental/issue_44523.yaml
@@ -21,7 +21,6 @@
]
}
app/main.dart: |
- // @dart=2.9
import "package:flutter/lib1.dart";
class _Bar extends RestorableProperty {}
flutter/lib1.dart: |
diff --git a/pkg/front_end/testcases/incremental/issue_44523.yaml.world.1.expect b/pkg/front_end/testcases/incremental/issue_44523.yaml.world.1.expect
index fab130fd..e7d2aad 100644
--- a/pkg/front_end/testcases/incremental/issue_44523.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/issue_44523.yaml.world.1.expect
@@ -4,21 +4,9 @@
import "package:flutter/lib1.dart";
class _Bar extends lib1::RestorableProperty {
- synthetic constructor •() → main::_Bar*
+ synthetic constructor •() → main::_Bar
: super lib1::RestorableProperty::•()
;
- abstract member-signature method _debugAssertNotDisposed() → dart.core::bool*; -> lib1::RestorableProperty::_debugAssertNotDisposed
- abstract member-signature method _debugAssertNotDisposed() → dart.core::bool*; -> lib2::ChangeNotifier::_debugAssertNotDisposed
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:flutter/lib1.dart" as lib1 {
diff --git a/pkg/front_end/testcases/incremental/issue_44523.yaml.world.2.expect b/pkg/front_end/testcases/incremental/issue_44523.yaml.world.2.expect
index fab130fd..e7d2aad 100644
--- a/pkg/front_end/testcases/incremental/issue_44523.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/issue_44523.yaml.world.2.expect
@@ -4,21 +4,9 @@
import "package:flutter/lib1.dart";
class _Bar extends lib1::RestorableProperty {
- synthetic constructor •() → main::_Bar*
+ synthetic constructor •() → main::_Bar
: super lib1::RestorableProperty::•()
;
- abstract member-signature method _debugAssertNotDisposed() → dart.core::bool*; -> lib1::RestorableProperty::_debugAssertNotDisposed
- abstract member-signature method _debugAssertNotDisposed() → dart.core::bool*; -> lib2::ChangeNotifier::_debugAssertNotDisposed
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "package:flutter/lib1.dart" as lib1 {
diff --git a/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml b/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml
index c2c104f..6b88d9a 100644
--- a/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml
+++ b/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml
@@ -17,14 +17,12 @@
warnings: false
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
useString("hello");
}
b.dart: |
- // @dart=2.9
import "dart:core";
void useString(String s) {
@@ -41,14 +39,12 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
useString("hello");
}
b.dart: |
- // @dart=2.9
import "dart:core";
void useString(String s) {
diff --git a/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.1.expect b/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.1.expect
index 2360766..ab378a3 100644
--- a/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.1.expect
@@ -3,7 +3,7 @@
import "dart:core";
- static method useString(dart.core::String* s) → void {
+ static method useString(dart.core::String s) → void {
dart.core::print("Hello from useString: ${s}");
}
}
diff --git a/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.2.expect b/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.2.expect
index 2360766..ab378a3 100644
--- a/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/load_from_component_explicitly_import_dart_core.yaml.world.2.expect
@@ -3,7 +3,7 @@
import "dart:core";
- static method useString(dart.core::String* s) → void {
+ static method useString(dart.core::String s) → void {
dart.core::print("Hello from useString: ${s}");
}
}
diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml
index ac99df2..81b1aa1 100644
--- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml
+++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml
@@ -9,7 +9,6 @@
experiments: alternative-invalidation-strategy
sources:
main_lib1.dart: |
- // @dart=2.9
class SuperClass {
void method(covariant int i) {}
}
@@ -20,14 +19,12 @@
class Class extends SuperClass with Mixin {}
main_lib2.dart: |
- // @dart=2.9
import 'main_lib1.dart';
class SubClass extends Class {}
method() => new SubClass().method(0);
main.dart: |
- // @dart=2.9
import 'main_lib2.dart';
main() {
@@ -42,7 +39,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'main_lib2.dart';
main() {
@@ -59,7 +55,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'main_lib2.dart';
main() {
diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect
index c0afa98..ac9787d 100644
--- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.1.expect
@@ -10,46 +10,26 @@
library from "org-dartlang-test:///main_lib1.dart" as mai2 {
class SuperClass extends dart.core::Object {
- synthetic constructor •() → mai2::SuperClass*
+ synthetic constructor •() → mai2::SuperClass
: super dart.core::Object::•()
;
- method method(covariant-by-declaration dart.core::int* i) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method method(covariant-by-declaration dart.core::int i) → void {}
}
class Mixin extends dart.core::Object {
- synthetic constructor •() → mai2::Mixin*
+ synthetic constructor •() → mai2::Mixin
: super dart.core::Object::•()
;
- method method(dart.core::num* i) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method method(dart.core::num i) → void {}
}
abstract class _Class&SuperClass&Mixin = mai2::SuperClass with mai2::Mixin /*isAnonymousMixin*/ {
- synthetic constructor •() → mai2::_Class&SuperClass&Mixin*
+ synthetic constructor •() → mai2::_Class&SuperClass&Mixin
: super mai2::SuperClass::•()
;
- forwarding-stub method method(covariant-by-declaration dart.core::num* i) → void
+ forwarding-stub method method(covariant-by-declaration dart.core::num i) → void
return super.{mai2::Mixin::method}(i);
}
class Class extends mai2::_Class&SuperClass&Mixin {
- synthetic constructor •() → mai2::Class*
+ synthetic constructor •() → mai2::Class
: super mai2::_Class&SuperClass&Mixin::•()
;
}
@@ -59,10 +39,10 @@
import "org-dartlang-test:///main_lib1.dart";
class SubClass extends mai2::Class {
- synthetic constructor •() → mai::SubClass*
+ synthetic constructor •() → mai::SubClass
: super mai2::Class::•()
;
}
static method method() → dynamic
- return new mai::SubClass::•().{mai2::_Class&SuperClass&Mixin::method}(0){(dart.core::num*) →* void};
+ return new mai::SubClass::•().{mai2::_Class&SuperClass&Mixin::method}(0){(dart.core::num) → void};
}
diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect
index 533b853..a1687b3 100644
--- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.2.expect
@@ -11,46 +11,26 @@
library from "org-dartlang-test:///main_lib1.dart" as mai2 {
class SuperClass extends dart.core::Object {
- synthetic constructor •() → mai2::SuperClass*
+ synthetic constructor •() → mai2::SuperClass
: super dart.core::Object::•()
;
- method method(covariant-by-declaration dart.core::int* i) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method method(covariant-by-declaration dart.core::int i) → void {}
}
class Mixin extends dart.core::Object {
- synthetic constructor •() → mai2::Mixin*
+ synthetic constructor •() → mai2::Mixin
: super dart.core::Object::•()
;
- method method(dart.core::num* i) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method method(dart.core::num i) → void {}
}
abstract class _Class&SuperClass&Mixin = mai2::SuperClass with mai2::Mixin /*isAnonymousMixin*/ {
- synthetic constructor •() → mai2::_Class&SuperClass&Mixin*
+ synthetic constructor •() → mai2::_Class&SuperClass&Mixin
: super mai2::SuperClass::•()
;
- forwarding-stub method method(covariant-by-declaration dart.core::num* i) → void
+ forwarding-stub method method(covariant-by-declaration dart.core::num i) → void
return super.{mai2::Mixin::method}(i);
}
class Class extends mai2::_Class&SuperClass&Mixin {
- synthetic constructor •() → mai2::Class*
+ synthetic constructor •() → mai2::Class
: super mai2::_Class&SuperClass&Mixin::•()
;
}
@@ -60,10 +40,10 @@
import "org-dartlang-test:///main_lib1.dart";
class SubClass extends mai2::Class {
- synthetic constructor •() → mai::SubClass*
+ synthetic constructor •() → mai::SubClass
: super mai2::Class::•()
;
}
static method method() → dynamic
- return new mai::SubClass::•().{mai2::_Class&SuperClass&Mixin::method}(0){(dart.core::num*) →* void};
+ return new mai::SubClass::•().{mai2::_Class&SuperClass&Mixin::method}(0){(dart.core::num) → void};
}
diff --git a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect
index c0afa98..ac9787d 100644
--- a/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/mixin_application_declares.yaml.world.3.expect
@@ -10,46 +10,26 @@
library from "org-dartlang-test:///main_lib1.dart" as mai2 {
class SuperClass extends dart.core::Object {
- synthetic constructor •() → mai2::SuperClass*
+ synthetic constructor •() → mai2::SuperClass
: super dart.core::Object::•()
;
- method method(covariant-by-declaration dart.core::int* i) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method method(covariant-by-declaration dart.core::int i) → void {}
}
class Mixin extends dart.core::Object {
- synthetic constructor •() → mai2::Mixin*
+ synthetic constructor •() → mai2::Mixin
: super dart.core::Object::•()
;
- method method(dart.core::num* i) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ method method(dart.core::num i) → void {}
}
abstract class _Class&SuperClass&Mixin = mai2::SuperClass with mai2::Mixin /*isAnonymousMixin*/ {
- synthetic constructor •() → mai2::_Class&SuperClass&Mixin*
+ synthetic constructor •() → mai2::_Class&SuperClass&Mixin
: super mai2::SuperClass::•()
;
- forwarding-stub method method(covariant-by-declaration dart.core::num* i) → void
+ forwarding-stub method method(covariant-by-declaration dart.core::num i) → void
return super.{mai2::Mixin::method}(i);
}
class Class extends mai2::_Class&SuperClass&Mixin {
- synthetic constructor •() → mai2::Class*
+ synthetic constructor •() → mai2::Class
: super mai2::_Class&SuperClass&Mixin::•()
;
}
@@ -59,10 +39,10 @@
import "org-dartlang-test:///main_lib1.dart";
class SubClass extends mai2::Class {
- synthetic constructor •() → mai::SubClass*
+ synthetic constructor •() → mai::SubClass
: super mai2::Class::•()
;
}
static method method() → dynamic
- return new mai::SubClass::•().{mai2::_Class&SuperClass&Mixin::method}(0){(dart.core::num*) →* void};
+ return new mai::SubClass::•().{mai2::_Class&SuperClass&Mixin::method}(0){(dart.core::num) → void};
}
diff --git a/pkg/front_end/testcases/incremental/mixin_from_sdk.yaml b/pkg/front_end/testcases/incremental/mixin_from_sdk.yaml
index 3e68b28..51be325 100644
--- a/pkg/front_end/testcases/incremental/mixin_from_sdk.yaml
+++ b/pkg/front_end/testcases/incremental/mixin_from_sdk.yaml
@@ -12,7 +12,6 @@
- a.dart
sources:
a.dart: |
- // @dart=2.9
import 'dart:collection';
class Foo extends Object with ListMixin<int> {
diff --git a/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml b/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml
index c830e1c..e760b10 100644
--- a/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml
+++ b/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
abstract class A<T> {}
mixin M<T> on A<T> {}
class C extends Object with M {}
diff --git a/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml.world.1.expect b/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml.world.1.expect
index 3ff776a..87eb5c7 100644
--- a/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/mixin_inferrer_error.yaml.world.1.expect
@@ -3,53 +3,33 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:7: Error: 'Object' doesn't implement 'A<dynamic>' so it can't be used with 'M<dynamic>'.
+// org-dartlang-test:///main.dart:3:7: Error: 'Object' doesn't implement 'A<dynamic>' so it can't be used with 'M<dynamic>'.
// - 'Object' is from 'dart:core'.
// - 'A' is from 'org-dartlang-test:///main.dart'.
// - 'M' is from 'org-dartlang-test:///main.dart'.
// class C extends Object with M {}
// ^
//
-// org-dartlang-test:///main.dart:4:7: Error: Type parameters couldn't be inferred for the mixin 'M' because 'Object' does not implement the mixin's supertype constraint 'A<T>'.
+// org-dartlang-test:///main.dart:3:7: Error: Type parameters couldn't be inferred for the mixin 'M' because 'Object' does not implement the mixin's supertype constraint 'A<T>'.
// - 'A' is from 'org-dartlang-test:///main.dart'.
// class C extends Object with M {}
// ^
//
- abstract class A<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → main::A<main::A::T*>*
+ abstract class A<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → main::A<main::A::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- abstract class M<T extends dart.core::Object* = dynamic> extends main::A<main::M::T*> /*isMixinDeclaration*/ {
+ abstract class M<T extends dart.core::Object? = dynamic> extends main::A<main::M::T%> /*isMixinDeclaration*/ {
}
abstract class _C&Object&M extends dart.core::Object implements main::M<dynamic> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → main::_C&Object&M*
+ const synthetic constructor •() → main::_C&Object&M
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends main::_C&Object&M {
- synthetic constructor •() → main::C*
+ synthetic constructor •() → main::C
: super main::_C&Object&M::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/multiple_entriepoints.yaml b/pkg/front_end/testcases/incremental/multiple_entriepoints.yaml
index 6f4c9d8..0577118 100644
--- a/pkg/front_end/testcases/incremental/multiple_entriepoints.yaml
+++ b/pkg/front_end/testcases/incremental/multiple_entriepoints.yaml
@@ -12,17 +12,14 @@
- b.dart
sources:
a.dart: |
- // @dart=2.9
a() {
print("hello a");
}
b.dart: |
- // @dart=2.9
b() {
print("hello b");
}
c.dart: |
- // @dart=2.9
b() {
print("hello c (I'm not included!)");
}
diff --git a/pkg/front_end/testcases/incremental/no_invalidate_on_export_of_main.yaml b/pkg/front_end/testcases/incremental/no_invalidate_on_export_of_main.yaml
index 5172413..5f3ac3c 100644
--- a/pkg/front_end/testcases/incremental/no_invalidate_on_export_of_main.yaml
+++ b/pkg/front_end/testcases/incremental/no_invalidate_on_export_of_main.yaml
@@ -10,8 +10,6 @@
invalidate:
sources:
a.dart: |
- // @dart=2.9
export 'b.dart';
b.dart: |
- // @dart=2.9
main() { print("hello"); }
\ No newline at end of file
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_1.yaml b/pkg/front_end/testcases/incremental/no_outline_change_1.yaml
index 378608c..563d16c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_1.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_1.yaml
@@ -10,13 +10,11 @@
experiments: alternative-invalidation-strategy
sources:
actualMain.dart: |
- // @dart=2.9
import 'main.dart' as m;
main() {
m.main();
}
main.dart: |
- // @dart=2.9
import 'libA.dart';
main() {
@@ -24,7 +22,6 @@
}
mainHello() {}
libA.dart: |
- // @dart=2.9
import 'main.dart';
import 'libB.dart';
class Foo {}
@@ -33,7 +30,6 @@
mainHello();
}
libB.dart: |
- // @dart=2.9
import 'libA.dart';
class Bar {
Foo foo;
@@ -48,7 +44,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
main() {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.1.expect
index be26f7c..644fc90 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.1.expect
@@ -13,22 +13,12 @@
import "org-dartlang-test:///libB.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → libA::Foo*
+ synthetic constructor •() → libA::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method whatever() → dynamic {
- libB::Bar* bar = new libB::Bar::•(new libA::Foo::•());
+ libB::Bar bar = new libB::Bar::•(new libA::Foo::•());
main::mainHello();
}
}
@@ -37,20 +27,10 @@
import "org-dartlang-test:///libA.dart";
class Bar extends dart.core::Object {
- field libA::Foo* foo;
- constructor •(libA::Foo* foo) → libB::Bar*
+ field libA::Foo foo;
+ constructor •(libA::Foo foo) → libB::Bar
: libB::Bar::foo = foo, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.2.expect
index bf98757..7fa866e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_1.yaml.world.2.expect
@@ -13,22 +13,12 @@
import "org-dartlang-test:///libB.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → libA::Foo*
+ synthetic constructor •() → libA::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method whatever() → dynamic {
- libB::Bar* bar = new libB::Bar::•(new libA::Foo::•());
+ libB::Bar bar = new libB::Bar::•(new libA::Foo::•());
main::mainHello();
}
}
@@ -37,20 +27,10 @@
import "org-dartlang-test:///libA.dart";
class Bar extends dart.core::Object {
- field libA::Foo* foo;
- constructor •(libA::Foo* foo) → libB::Bar*
+ field libA::Foo foo;
+ constructor •(libA::Foo foo) → libB::Bar
: libB::Bar::foo = foo, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml
index 97dacaf..10f6a6e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart";
import "lib3.dart";
@@ -21,14 +20,12 @@
lib3Method(foo);
}
lib1.dart: |
- // @dart=2.9
class Foo {
void fooMethod() {
// Not filled out.
}
}
lib2.dart: |
- // @dart=2.9
import "lib1.dart";
class Bar extends Foo {
void barMethod() {
@@ -36,7 +33,6 @@
}
}
lib3.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart";
void lib3Method(Foo foo) {
@@ -53,7 +49,6 @@
- lib1.dart
sources:
lib1.dart: |
- // @dart=2.9
class Foo {
void fooMethod() {
print("fooMethod");
@@ -69,7 +64,6 @@
- lib3.dart
sources:
lib3.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib2.dart";
void lib3Method(Foo foo) {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.1.expect
index 4843839..faf5c79 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.1.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///lib1.dart" as lib1 {
class Foo extends dart.core::Object {
- synthetic constructor •() → lib1::Foo*
+ synthetic constructor •() → lib1::Foo
: super dart.core::Object::•()
;
method fooMethod() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -23,7 +13,7 @@
import "org-dartlang-test:///lib1.dart";
class Bar extends lib1::Foo {
- synthetic constructor •() → lib2::Bar*
+ synthetic constructor •() → lib2::Bar
: super lib1::Foo::•()
;
method barMethod() → void {}
@@ -34,9 +24,9 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib2.dart";
- static method lib3Method(lib1::Foo* foo) → void {
- lib1::Foo* bar = new lib2::Bar::•();
- dart.core::bool* equal = foo =={lib1::Foo::==}{(dynamic) →* dart.core::bool*} bar;
+ static method lib3Method(lib1::Foo foo) → void {
+ lib1::Foo bar = new lib2::Bar::•();
+ dart.core::bool equal = foo =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} bar;
dart.core::print("foo == bar = ${equal}");
}
}
@@ -47,7 +37,7 @@
import "org-dartlang-test:///lib3.dart";
static method main() → dynamic {
- lib1::Foo* foo = new lib2::Bar::•();
+ lib1::Foo foo = new lib2::Bar::•();
lib3::lib3Method(foo);
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.2.expect
index 8485011..bb646813 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.2.expect
@@ -2,22 +2,12 @@
library from "org-dartlang-test:///lib1.dart" as lib1 {
class Foo extends dart.core::Object {
- synthetic constructor •() → lib1::Foo*
+ synthetic constructor •() → lib1::Foo
: super dart.core::Object::•()
;
method fooMethod() → void {
dart.core::print("fooMethod");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -25,7 +15,7 @@
import "org-dartlang-test:///lib1.dart";
class Bar extends lib1::Foo {
- synthetic constructor •() → lib2::Bar*
+ synthetic constructor •() → lib2::Bar
: super lib1::Foo::•()
;
method barMethod() → void {}
@@ -36,9 +26,9 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib2.dart";
- static method lib3Method(lib1::Foo* foo) → void {
- lib1::Foo* bar = new lib2::Bar::•();
- dart.core::bool* equal = foo =={lib1::Foo::==}{(dynamic) →* dart.core::bool*} bar;
+ static method lib3Method(lib1::Foo foo) → void {
+ lib1::Foo bar = new lib2::Bar::•();
+ dart.core::bool equal = foo =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} bar;
dart.core::print("foo == bar = ${equal}");
}
}
@@ -49,7 +39,7 @@
import "org-dartlang-test:///lib3.dart";
static method main() → dynamic {
- lib1::Foo* foo = new lib2::Bar::•();
+ lib1::Foo foo = new lib2::Bar::•();
lib3::lib3Method(foo);
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.3.expect
index d8f13774..737c62a 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_10.yaml.world.3.expect
@@ -2,22 +2,12 @@
library from "org-dartlang-test:///lib1.dart" as lib1 {
class Foo extends dart.core::Object {
- synthetic constructor •() → lib1::Foo*
+ synthetic constructor •() → lib1::Foo
: super dart.core::Object::•()
;
method fooMethod() → void {
dart.core::print("fooMethod");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -25,7 +15,7 @@
import "org-dartlang-test:///lib1.dart";
class Bar extends lib1::Foo {
- synthetic constructor •() → lib2::Bar*
+ synthetic constructor •() → lib2::Bar
: super lib1::Foo::•()
;
method barMethod() → void {}
@@ -36,9 +26,9 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib2.dart";
- static method lib3Method(lib1::Foo* foo) → void {
- lib1::Foo* bar = new lib2::Bar::•();
- dart.core::bool* equal = foo =={lib1::Foo::==}{(dynamic) →* dart.core::bool*} bar;
+ static method lib3Method(lib1::Foo foo) → void {
+ lib1::Foo bar = new lib2::Bar::•();
+ dart.core::bool equal = foo =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} bar;
dart.core::print("foo == bar = ${equal}");
dart.core::print("Done!");
}
@@ -50,7 +40,7 @@
import "org-dartlang-test:///lib3.dart";
static method main() → dynamic {
- lib1::Foo* foo = new lib2::Bar::•();
+ lib1::Foo foo = new lib2::Bar::•();
lib3::lib3Method(foo);
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml
index 8d38adc..e06e7d3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml
@@ -11,13 +11,11 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
main() {
libMethod();
}
lib1.dart: |
- // @dart=2.9
import "lib2.dart";
class Foo {
factory Foo() = Bar;
@@ -27,7 +25,6 @@
Bar bar = new Bar();
}
lib2.dart: |
- // @dart=2.9
import "lib1.dart";
class Bar implements Foo {
Bar();
@@ -41,7 +38,6 @@
- lib1.dart
sources:
lib1.dart: |
- // @dart=2.9
import "lib2.dart";
class Foo {
factory Foo() = Bar;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect
index b8a5016..7f831ad 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.1.expect
@@ -4,23 +4,13 @@
import "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- static factory •() → lib1::Foo*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ static factory •() → lib1::Foo
return new lib2::Bar::•();
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method libMethod() → void {
- lib1::Foo* foo = new lib2::Bar::•();
- lib2::Bar* bar = new lib2::Bar::•();
+ lib1::Foo foo = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -28,19 +18,9 @@
import "org-dartlang-test:///lib1.dart";
class Bar extends dart.core::Object implements lib1::Foo {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect
index ba249a3..ff2f55c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_11.yaml.world.2.expect
@@ -4,24 +4,14 @@
import "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- static factory •() → lib1::Foo*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ static factory •() → lib1::Foo
return new lib2::Bar::•();
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method libMethod() → void {
- lib1::Foo* foo = new lib2::Bar::•();
- lib2::Bar* bar = new lib2::Bar::•();
- dart.core::print(foo =={lib1::Foo::==}{(dynamic) →* dart.core::bool*} bar);
+ lib1::Foo foo = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
+ dart.core::print(foo =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} bar);
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -29,19 +19,9 @@
import "org-dartlang-test:///lib1.dart";
class Bar extends dart.core::Object implements lib1::Foo {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml
index 7249224..24ee095 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml
@@ -11,14 +11,12 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib2.dart" show Bar;
import "lib1.dart" show Bar;
main() {
Bar bar = new Bar();
}
lib1.dart: |
- // @dart=2.9
export "lib2.dart";
class Foo {
Foo() {
@@ -26,7 +24,6 @@
}
}
lib2.dart: |
- // @dart=2.9
class Bar {
Bar() {
@@ -41,7 +38,6 @@
- lib1.dart
sources:
lib1.dart: |
- // @dart=2.9
export "lib2.dart";
class Foo {
Foo() {
@@ -58,7 +54,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
class Bar {
Bar() {
print("Bar!");
@@ -74,7 +69,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib2.dart" show Bar;
import "lib1.dart" show Bar;
main() {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.1.expect
index 3746e52..baf4f3d 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.1.expect
@@ -5,35 +5,15 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -42,6 +22,6 @@
import "org-dartlang-test:///lib1.dart" show Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.2.expect
index 96ec3d6..6eab121 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.2.expect
@@ -5,37 +5,17 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -44,6 +24,6 @@
import "org-dartlang-test:///lib1.dart" show Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.3.expect
index 533cf21..a24c06e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.3.expect
@@ -5,39 +5,19 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {
dart.core::print("Bar!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -46,6 +26,6 @@
import "org-dartlang-test:///lib1.dart" show Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.4.expect b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.4.expect
index b32b613..0ddf51c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_12.yaml.world.4.expect
@@ -5,39 +5,19 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {
dart.core::print("Bar!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -46,7 +26,7 @@
import "org-dartlang-test:///lib1.dart" show Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
dart.core::print(bar);
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml
index bcdc011..10b1083 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml
@@ -12,17 +12,14 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart" as prefix;
main() {
print(prefix.Foo.BAR);
}
lib1.dart: |
- // @dart=2.9
export "lib2.dart" show Foo;
import "main.dart";
lib2.dart: |
- // @dart=2.9
class Foo {
static const Foo BAR = const Foo("BAR");
const Foo(String x);
@@ -36,7 +33,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart" as prefix;
main() {
print(prefix.Foo.BAR);
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect
index e74b105..fa8de36 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.1.expect
@@ -9,20 +9,10 @@
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- static const field lib2::Foo* BAR = #C1;
- const constructor •(dart.core::String* x) → lib2::Foo*
+ static const field lib2::Foo BAR = #C1;
+ const constructor •(dart.core::String x) → lib2::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -40,6 +30,6 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib2.dart:4:9)
+- Foo. (from org-dartlang-test:///lib2.dart:3:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect
index a4182de..a2b3ee6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_13.yaml.world.2.expect
@@ -9,20 +9,10 @@
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- static const field lib2::Foo* BAR = #C1;
- const constructor •(dart.core::String* x) → lib2::Foo*
+ static const field lib2::Foo BAR = #C1;
+ const constructor •(dart.core::String x) → lib2::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -41,6 +31,6 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib2.dart:4:9)
+- Foo. (from org-dartlang-test:///lib2.dart:3:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml
index cbce88b..a33699a 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml
@@ -11,19 +11,16 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
abstract class Foo implements Bar {
@override
Foo get x;
}
lib1.dart: |
- // @dart=2.9
import "lib2.dart";
abstract class Bar implements Baz {
}
lib2.dart: |
- // @dart=2.9
abstract class Baz {
Baz get x;
}
@@ -36,7 +33,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
abstract class Baz {
Baz get x;
}
@@ -50,7 +46,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
abstract class Foo implements Bar {
@override
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.1.expect
index 7df7d03..168119e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.1.expect
@@ -4,38 +4,18 @@
import "org-dartlang-test:///lib2.dart";
abstract class Bar extends dart.core::Object implements lib2::Baz {
- synthetic constructor •() → lib1::Bar*
+ synthetic constructor •() → lib1::Bar
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
abstract class Baz extends dart.core::Object {
- synthetic constructor •() → lib2::Baz*
+ synthetic constructor •() → lib2::Baz
: super dart.core::Object::•()
;
- abstract get x() → lib2::Baz*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get x() → lib2::Baz;
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -43,21 +23,11 @@
import "org-dartlang-test:///lib1.dart";
abstract class Foo extends dart.core::Object implements lib1::Bar {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- abstract get x() → main::Foo*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get x() → main::Foo;
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.2.expect
index 7df7d03..168119e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.2.expect
@@ -4,38 +4,18 @@
import "org-dartlang-test:///lib2.dart";
abstract class Bar extends dart.core::Object implements lib2::Baz {
- synthetic constructor •() → lib1::Bar*
+ synthetic constructor •() → lib1::Bar
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
abstract class Baz extends dart.core::Object {
- synthetic constructor •() → lib2::Baz*
+ synthetic constructor •() → lib2::Baz
: super dart.core::Object::•()
;
- abstract get x() → lib2::Baz*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get x() → lib2::Baz;
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -43,21 +23,11 @@
import "org-dartlang-test:///lib1.dart";
abstract class Foo extends dart.core::Object implements lib1::Bar {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- abstract get x() → main::Foo*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get x() → main::Foo;
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.3.expect
index 7df7d03..168119e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_14.yaml.world.3.expect
@@ -4,38 +4,18 @@
import "org-dartlang-test:///lib2.dart";
abstract class Bar extends dart.core::Object implements lib2::Baz {
- synthetic constructor •() → lib1::Bar*
+ synthetic constructor •() → lib1::Bar
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
abstract class Baz extends dart.core::Object {
- synthetic constructor •() → lib2::Baz*
+ synthetic constructor •() → lib2::Baz
: super dart.core::Object::•()
;
- abstract get x() → lib2::Baz*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get x() → lib2::Baz;
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -43,21 +23,11 @@
import "org-dartlang-test:///lib1.dart";
abstract class Foo extends dart.core::Object implements lib1::Bar {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- abstract get x() → main::Foo*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get x() → main::Foo;
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_15.yaml b/pkg/front_end/testcases/incremental/no_outline_change_15.yaml
index fb7b2f9..1ec3e65 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_15.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_15.yaml
@@ -11,14 +11,12 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
abstract class C extends B implements A<int> {}
main() {
print("#1");
}
lib1.dart: |
- // @dart=2.9
class A<T> {
foo(T t) {
print("foo T $t");
@@ -39,7 +37,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
abstract class C extends B implements A<int> {}
main() {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.1.expect
index 7dd08b9..c6c715c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.1.expect
@@ -1,52 +1,32 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- class A<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → lib1::A<lib1::A::T*>*
+ class A<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → lib1::A<lib1::A::T%>
: super dart.core::Object::•()
;
- method foo(covariant-by-class lib1::A::T* t) → dynamic {
+ method foo(covariant-by-class lib1::A::T% t) → dynamic {
dart.core::print("foo T ${t}");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends dart.core::Object {
- synthetic constructor •() → lib1::B*
+ synthetic constructor •() → lib1::B
: super dart.core::Object::•()
;
- method foo(dart.core::int* t) → dynamic {
+ method foo(dart.core::int t) → dynamic {
dart.core::print("foo int ${t}");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib1.dart";
- abstract class C extends lib1::B implements lib1::A<dart.core::int*> {
- synthetic constructor •() → main::C*
+ abstract class C extends lib1::B implements lib1::A<dart.core::int> {
+ synthetic constructor •() → main::C
: super lib1::B::•()
;
- forwarding-stub method foo(covariant-by-class dart.core::int* t) → dynamic
+ forwarding-stub method foo(covariant-by-class dart.core::int t) → dynamic
return super.{lib1::B::foo}(t);
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.2.expect
index 4096374..2497315 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_15.yaml.world.2.expect
@@ -1,52 +1,32 @@
main = main::main;
library from "org-dartlang-test:///lib1.dart" as lib1 {
- class A<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → lib1::A<lib1::A::T*>*
+ class A<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → lib1::A<lib1::A::T%>
: super dart.core::Object::•()
;
- method foo(covariant-by-class lib1::A::T* t) → dynamic {
+ method foo(covariant-by-class lib1::A::T% t) → dynamic {
dart.core::print("foo T ${t}");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends dart.core::Object {
- synthetic constructor •() → lib1::B*
+ synthetic constructor •() → lib1::B
: super dart.core::Object::•()
;
- method foo(dart.core::int* t) → dynamic {
+ method foo(dart.core::int t) → dynamic {
dart.core::print("foo int ${t}");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib1.dart";
- abstract class C extends lib1::B implements lib1::A<dart.core::int*> {
- synthetic constructor •() → main::C*
+ abstract class C extends lib1::B implements lib1::A<dart.core::int> {
+ synthetic constructor •() → main::C
: super lib1::B::•()
;
- forwarding-stub method foo(covariant-by-class dart.core::int* t) → dynamic
+ forwarding-stub method foo(covariant-by-class dart.core::int t) → dynamic
return super.{lib1::B::foo}(t);
}
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_16.yaml b/pkg/front_end/testcases/incremental/no_outline_change_16.yaml
index 202a3e0..8bd1eb7 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_16.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_16.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
class Foo1 extends Bar {
noSuchMethod(Invocation msg) {
@@ -24,12 +23,11 @@
}
}
lib1.dart: |
- // @dart=2.9
abstract class Bar {
void method();
bool get getter;
void set setter(bool b);
- bool field;
+ bool field = true;
}
expectedLibraryCount: 2
- entry: main.dart
@@ -40,7 +38,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
class Foo1 extends Bar {
noSuchMethod(Invocation msg) {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.1.expect
index 6f8c60d..c1df2f5 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.1.expect
@@ -2,23 +2,13 @@
library from "org-dartlang-test:///lib1.dart" as lib1 {
abstract class Bar extends dart.core::Object {
- field dart.core::bool* field = null;
- synthetic constructor •() → lib1::Bar*
+ field dart.core::bool field = true;
+ synthetic constructor •() → lib1::Bar
: super dart.core::Object::•()
;
abstract method method() → void;
- abstract get getter() → dart.core::bool*;
- abstract set setter(dart.core::bool* b) → void;
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get getter() → dart.core::bool;
+ abstract set setter(dart.core::bool b) → void;
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -26,45 +16,36 @@
import "org-dartlang-test:///lib1.dart";
class Foo1 extends lib1::Bar {
- synthetic constructor •() → main::Foo1*
+ synthetic constructor •() → main::Foo1
: super lib1::Bar::•()
;
- method noSuchMethod(dart.core::Invocation* msg) → dynamic {
+ method noSuchMethod(dart.core::Invocation msg) → dynamic {
dart.core::print("noSouchMethod!");
}
- no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool*
- return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dart.core::bool*;
+ no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool
+ return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dart.core::bool;
no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
- return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
- no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
- return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
+ return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
+ no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool b) → void
+ return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
}
class Foo2 extends dart.core::Object implements lib1::Bar {
- synthetic constructor •() → main::Foo2*
+ synthetic constructor •() → main::Foo2
: super dart.core::Object::•()
;
- method noSuchMethod(dart.core::Invocation* msg) → dynamic {
+ method noSuchMethod(dart.core::Invocation msg) → dynamic {
dart.core::print("noSouchMethod!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool*
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dart.core::bool*;
- no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ field() → dart.core::bool*
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C7, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dart.core::bool*;
+ no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dart.core::bool;
+ no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ field() → dart.core::bool
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C7, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dart.core::bool;
no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
- no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
- no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ field(dart.core::bool* value) → void
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(value)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
+ no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool b) → void
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
+ no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ field(dart.core::bool value) → void
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(value)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.2.expect
index 546d558..91bbef7 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_16.yaml.world.2.expect
@@ -2,23 +2,13 @@
library from "org-dartlang-test:///lib1.dart" as lib1 {
abstract class Bar extends dart.core::Object {
- field dart.core::bool* field = null;
- synthetic constructor •() → lib1::Bar*
+ field dart.core::bool field = true;
+ synthetic constructor •() → lib1::Bar
: super dart.core::Object::•()
;
abstract method method() → void;
- abstract get getter() → dart.core::bool*;
- abstract set setter(dart.core::bool* b) → void;
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get getter() → dart.core::bool;
+ abstract set setter(dart.core::bool b) → void;
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -26,45 +16,36 @@
import "org-dartlang-test:///lib1.dart";
class Foo1 extends lib1::Bar {
- synthetic constructor •() → main::Foo1*
+ synthetic constructor •() → main::Foo1
: super lib1::Bar::•()
;
- method noSuchMethod(dart.core::Invocation* msg) → dynamic {
+ method noSuchMethod(dart.core::Invocation msg) → dynamic {
dart.core::print("noSouchMethod!!");
}
- no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool*
- return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dart.core::bool*;
+ no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool
+ return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dart.core::bool;
no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
- return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
- no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
- return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
+ return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
+ no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool b) → void
+ return this.{main::Foo1::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
}
class Foo2 extends dart.core::Object implements lib1::Bar {
- synthetic constructor •() → main::Foo2*
+ synthetic constructor •() → main::Foo2
: super dart.core::Object::•()
;
- method noSuchMethod(dart.core::Invocation* msg) → dynamic {
+ method noSuchMethod(dart.core::Invocation msg) → dynamic {
dart.core::print("noSouchMethod!!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool*
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dart.core::bool*;
- no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ field() → dart.core::bool*
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C7, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic} as{TypeError,ForDynamic} dart.core::bool*;
+ no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ getter() → dart.core::bool
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C1, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dart.core::bool;
+ no-such-method-forwarder get /* from org-dartlang-test:///lib1.dart */ field() → dart.core::bool
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C7, 1, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} dart.core::bool;
no-such-method-forwarder method /* from org-dartlang-test:///lib1.dart */ method() → void
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
- no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool* b) → void
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
- no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ field(dart.core::bool* value) → void
- return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(value)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation*) →* dynamic};
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C5, 0, #C2, #C3, dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
+ no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ setter(dart.core::bool b) → void
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C6, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(b)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
+ no-such-method-forwarder set /* from org-dartlang-test:///lib1.dart */ field(dart.core::bool value) → void
+ return this.{main::Foo2::noSuchMethod}(new dart.core::_InvocationMirror::_withType(#C8, 2, #C2, dart.core::List::unmodifiable<dynamic>(dart.core::_GrowableList::_literal1<dynamic>(value)), dart.core::Map::unmodifiable<dart.core::Symbol*, dynamic>(#C4))){(dart.core::Invocation) → dynamic};
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_17.yaml b/pkg/front_end/testcases/incremental/no_outline_change_17.yaml
index 1648959..c2fe2c1 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_17.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_17.yaml
@@ -11,14 +11,12 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib.dart" deferred as foo;
main() {
var f = foo.loadLibrary;
f();
}
lib.dart: |
- // @dart=2.9
foo() {
print("foo!");
}
@@ -31,7 +29,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart" deferred as foo;
main() {
var f = foo.loadLibrary;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.1.expect
index 1c3c19c..37ce4f7 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.1.expect
@@ -10,10 +10,10 @@
import "org-dartlang-test:///lib.dart" deferred as foo;
static method main() → dynamic {
- () →* dart.async::Future<dynamic>* f = #C1;
- f(){() →* dart.async::Future<dynamic>*};
+ () → dart.async::Future<dynamic> f = #C1;
+ f(){() → dart.async::Future<dynamic>};
}
- static method _#loadLibrary_foo() → dart.async::Future<dynamic>*
+ static method _#loadLibrary_foo() → dart.async::Future<dynamic>
return LoadLibrary(foo);
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.2.expect
index e3b1ce9..075af3f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_17.yaml.world.2.expect
@@ -10,11 +10,11 @@
import "org-dartlang-test:///lib.dart" deferred as foo;
static method main() → dynamic {
- () →* dart.async::Future<dynamic>* f = #C1;
- f(){() →* dart.async::Future<dynamic>*};
+ () → dart.async::Future<dynamic> f = #C1;
+ f(){() → dart.async::Future<dynamic>};
dart.core::print("Done");
}
- static method _#loadLibrary_foo() → dart.async::Future<dynamic>*
+ static method _#loadLibrary_foo() → dart.async::Future<dynamic>
return LoadLibrary(foo);
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_18.yaml b/pkg/front_end/testcases/incremental/no_outline_change_18.yaml
index ace7dba..dd099b7 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_18.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_18.yaml
@@ -12,19 +12,16 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
export "lib1.dart" show x;
export "lib2.dart" show x;
main() {
print("exports")
}
lib1.dart: |
- // @dart=2.9
x() {
print("lib1.x!");
}
lib2.dart: |
- // @dart=2.9
x() {
print("lib2.x!");
}
@@ -38,7 +35,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
export "lib1.dart" show x;
export "lib2.dart" show x;
main() {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.1.expect
index 92cbad1..fadf469 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.1.expect
@@ -15,11 +15,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
+// org-dartlang-test:///main.dart:2:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
// export "lib2.dart" show x;
// ^
//
-// org-dartlang-test:///main.dart:5:18: Error: Expected ';' after this.
+// org-dartlang-test:///main.dart:4:18: Error: Expected ';' after this.
// print("exports")
// ^
//
@@ -27,7 +27,7 @@
export "org-dartlang-test:///lib1.dart" show x;
export "org-dartlang-test:///lib2.dart" show x;
- static const field dynamic _exports# = #C1;
+ static const field dynamic _exports# = #C1 /*isLegacy*/;
static method main() → dynamic {
dart.core::print("exports");
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.2.expect
index 458ee49..d46bdce 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_18.yaml.world.2.expect
@@ -15,11 +15,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
+// org-dartlang-test:///main.dart:2:1: Error: 'x' is exported from both 'org-dartlang-test:///lib1.dart' and 'org-dartlang-test:///lib2.dart'.
// export "lib2.dart" show x;
// ^
//
-// org-dartlang-test:///main.dart:5:19: Error: Expected ';' after this.
+// org-dartlang-test:///main.dart:4:19: Error: Expected ';' after this.
// print("exports!")
// ^
//
@@ -27,7 +27,7 @@
export "org-dartlang-test:///lib1.dart" show x;
export "org-dartlang-test:///lib2.dart" show x;
- static const field dynamic _exports# = #C1;
+ static const field dynamic _exports# = #C1 /*isLegacy*/;
static method main() → dynamic {
dart.core::print("exports!");
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_19.yaml b/pkg/front_end/testcases/incremental/no_outline_change_19.yaml
index 8fd792f..d184850 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_19.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_19.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class A1 {}
extension A2 on A1 {
@@ -21,7 +20,7 @@
String get getter1 => "42!";
void set setter1(String s) {}
static A1 method2() {
- return null;
+ throw '';
}
static String get getter2 => "42!";
static void set setter2(String s) {}
@@ -37,7 +36,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class A1 {}
extension A2 on A1 {
@@ -47,7 +45,7 @@
String get getter1 => "42!";
void set setter1(String s) {}
static A1 method2() {
- return null;
+ throw '';
}
static String get getter2 => "42!";
static void set setter2(String s) {}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.1.expect
index c11a0be..d6e61ce 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.1.expect
@@ -2,21 +2,11 @@
library from "org-dartlang-test:///main.dart" as main {
class A1 extends dart.core::Object {
- synthetic constructor •() → main::A1*
+ synthetic constructor •() → main::A1
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension A2 on main::A1* {
+ extension A2 on main::A1 {
method method1 = main::A2|method1;
tearoff method1 = main::A2|get#method1;
get getter1 = main::A2|get#getter1;
@@ -27,20 +17,20 @@
set setter1 = main::A2|set#setter1;
static set setter2 = set main::A2|setter2;
}
- static field dart.core::int* A2|staticField = 42;
- static final field dart.core::int* A2|staticFinalField = 42;
- static method A2|method1(lowered final main::A1* #this) → main::A1* {
+ static field dart.core::int A2|staticField = 42;
+ static final field dart.core::int A2|staticFinalField = 42;
+ static method A2|method1(lowered final main::A1 #this) → main::A1 {
return #this;
}
- static method A2|get#method1(lowered final main::A1* #this) → () →* main::A1*
- return () → main::A1* => main::A2|method1(#this);
- static method A2|get#getter1(lowered final main::A1* #this) → dart.core::String*
+ static method A2|get#method1(lowered final main::A1 #this) → () → main::A1
+ return () → main::A1 => main::A2|method1(#this);
+ static method A2|get#getter1(lowered final main::A1 #this) → dart.core::String
return "42!";
- static method A2|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
- static method A2|method2() → main::A1* {
- return null;
+ static method A2|set#setter1(lowered final main::A1 #this, dart.core::String s) → void {}
+ static method A2|method2() → main::A1 {
+ throw "";
}
- static get A2|getter2() → dart.core::String*
+ static get A2|getter2() → dart.core::String
return "42!";
- static set A2|setter2(dart.core::String* s) → void {}
+ static set A2|setter2(dart.core::String s) → void {}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.2.expect
index c11a0be..d6e61ce 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_19.yaml.world.2.expect
@@ -2,21 +2,11 @@
library from "org-dartlang-test:///main.dart" as main {
class A1 extends dart.core::Object {
- synthetic constructor •() → main::A1*
+ synthetic constructor •() → main::A1
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension A2 on main::A1* {
+ extension A2 on main::A1 {
method method1 = main::A2|method1;
tearoff method1 = main::A2|get#method1;
get getter1 = main::A2|get#getter1;
@@ -27,20 +17,20 @@
set setter1 = main::A2|set#setter1;
static set setter2 = set main::A2|setter2;
}
- static field dart.core::int* A2|staticField = 42;
- static final field dart.core::int* A2|staticFinalField = 42;
- static method A2|method1(lowered final main::A1* #this) → main::A1* {
+ static field dart.core::int A2|staticField = 42;
+ static final field dart.core::int A2|staticFinalField = 42;
+ static method A2|method1(lowered final main::A1 #this) → main::A1 {
return #this;
}
- static method A2|get#method1(lowered final main::A1* #this) → () →* main::A1*
- return () → main::A1* => main::A2|method1(#this);
- static method A2|get#getter1(lowered final main::A1* #this) → dart.core::String*
+ static method A2|get#method1(lowered final main::A1 #this) → () → main::A1
+ return () → main::A1 => main::A2|method1(#this);
+ static method A2|get#getter1(lowered final main::A1 #this) → dart.core::String
return "42!";
- static method A2|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
- static method A2|method2() → main::A1* {
- return null;
+ static method A2|set#setter1(lowered final main::A1 #this, dart.core::String s) → void {}
+ static method A2|method2() → main::A1 {
+ throw "";
}
- static get A2|getter2() → dart.core::String*
+ static get A2|getter2() → dart.core::String
return "42!";
- static set A2|setter2(dart.core::String* s) → void {}
+ static set A2|setter2(dart.core::String s) → void {}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml
index 13340c8..861576b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml
@@ -10,7 +10,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
@@ -29,7 +28,6 @@
enum CompilationStrategy { direct, toKernel, toData, fromData }
libA.dart: |
- // @dart=2.9
import 'main.dart';
whatever(Foo foo) {
print(foo);
@@ -43,7 +41,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect
index 7d10cb3..98b6020 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.1.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -13,50 +13,30 @@
class Foo extends dart.core::Object {
final field dynamic message;
- constructor •(dynamic message) → main::Foo*
+ constructor •(dynamic message) → main::Foo
: main::Foo::message = message, super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}";
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C14;
- static const field main::CompilationStrategy* direct = #C4;
- static const field main::CompilationStrategy* toKernel = #C7;
- static const field main::CompilationStrategy* toData = #C10;
- static const field main::CompilationStrategy* fromData = #C13;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field dart.core::List<main::CompilationStrategy> values = #C14;
+ static const field main::CompilationStrategy direct = #C4;
+ static const field main::CompilationStrategy toKernel = #C7;
+ static const field main::CompilationStrategy toData = #C10;
+ static const field main::CompilationStrategy fromData = #C13;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•("hello");
+ main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- main::CompilationStrategy* compilationStrategy = #C4;
+ main::CompilationStrategy compilationStrategy = #C4;
dart.core::print(compilationStrategy);
}
}
@@ -80,7 +60,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:17:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect
index 586df3a..62d9697 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_2.yaml.world.2.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -13,50 +13,30 @@
class Foo extends dart.core::Object {
final field dynamic message;
- constructor •(dynamic message) → main::Foo*
+ constructor •(dynamic message) → main::Foo
: main::Foo::message = message, super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}!";
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C14;
- static const field main::CompilationStrategy* direct = #C4;
- static const field main::CompilationStrategy* toKernel = #C7;
- static const field main::CompilationStrategy* toData = #C10;
- static const field main::CompilationStrategy* fromData = #C13;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field dart.core::List<main::CompilationStrategy> values = #C14;
+ static const field main::CompilationStrategy direct = #C4;
+ static const field main::CompilationStrategy toKernel = #C7;
+ static const field main::CompilationStrategy toData = #C10;
+ static const field main::CompilationStrategy fromData = #C13;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•("hello");
+ main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- main::CompilationStrategy* compilationStrategy = #C4;
+ main::CompilationStrategy compilationStrategy = #C4;
dart.core::print(compilationStrategy);
}
}
@@ -80,7 +60,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:17:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_20.yaml b/pkg/front_end/testcases/incremental/no_outline_change_20.yaml
index f94ccd0..7d41b57 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_20.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_20.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class A1 {}
extension on A1 {
@@ -21,7 +20,7 @@
String get getter1 => "42!";
void set setter1(String s) {}
static A1 method2() {
- return null;
+ throw '';
}
static String get getter2 => "42!";
static void set setter2(String s) {}
@@ -35,7 +34,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class A1 {}
extension on A1 {
@@ -45,7 +43,7 @@
String get getter1 => "42!";
void set setter1(String s) {}
static A1 method2() {
- return null;
+ throw '';
}
static String get getter2 => "42!";
static void set setter2(String s) {}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.1.expect
index c5238dd..46083ff 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.1.expect
@@ -2,21 +2,11 @@
library from "org-dartlang-test:///main.dart" as main {
class A1 extends dart.core::Object {
- synthetic constructor •() → main::A1*
+ synthetic constructor •() → main::A1
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension _extension#0 on main::A1* {
+ extension _extension#0 on main::A1 {
method method1 = main::_extension#0|method1;
tearoff method1 = main::_extension#0|get#method1;
get getter1 = main::_extension#0|get#getter1;
@@ -25,18 +15,18 @@
set setter1 = main::_extension#0|set#setter1;
static set setter2 = set main::_extension#0|setter2;
}
- static method _extension#0|method1(lowered final main::A1* #this) → main::A1* {
+ static method _extension#0|method1(lowered final main::A1 #this) → main::A1 {
return #this;
}
- static method _extension#0|get#method1(lowered final main::A1* #this) → () →* main::A1*
- return () → main::A1* => main::_extension#0|method1(#this);
- static method _extension#0|get#getter1(lowered final main::A1* #this) → dart.core::String*
+ static method _extension#0|get#method1(lowered final main::A1 #this) → () → main::A1
+ return () → main::A1 => main::_extension#0|method1(#this);
+ static method _extension#0|get#getter1(lowered final main::A1 #this) → dart.core::String
return "42!";
- static method _extension#0|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
- static method _extension#0|method2() → main::A1* {
- return null;
+ static method _extension#0|set#setter1(lowered final main::A1 #this, dart.core::String s) → void {}
+ static method _extension#0|method2() → main::A1 {
+ throw "";
}
- static get _extension#0|getter2() → dart.core::String*
+ static get _extension#0|getter2() → dart.core::String
return "42!";
- static set _extension#0|setter2(dart.core::String* s) → void {}
+ static set _extension#0|setter2(dart.core::String s) → void {}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.2.expect
index c5238dd..46083ff 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_20.yaml.world.2.expect
@@ -2,21 +2,11 @@
library from "org-dartlang-test:///main.dart" as main {
class A1 extends dart.core::Object {
- synthetic constructor •() → main::A1*
+ synthetic constructor •() → main::A1
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension _extension#0 on main::A1* {
+ extension _extension#0 on main::A1 {
method method1 = main::_extension#0|method1;
tearoff method1 = main::_extension#0|get#method1;
get getter1 = main::_extension#0|get#getter1;
@@ -25,18 +15,18 @@
set setter1 = main::_extension#0|set#setter1;
static set setter2 = set main::_extension#0|setter2;
}
- static method _extension#0|method1(lowered final main::A1* #this) → main::A1* {
+ static method _extension#0|method1(lowered final main::A1 #this) → main::A1 {
return #this;
}
- static method _extension#0|get#method1(lowered final main::A1* #this) → () →* main::A1*
- return () → main::A1* => main::_extension#0|method1(#this);
- static method _extension#0|get#getter1(lowered final main::A1* #this) → dart.core::String*
+ static method _extension#0|get#method1(lowered final main::A1 #this) → () → main::A1
+ return () → main::A1 => main::_extension#0|method1(#this);
+ static method _extension#0|get#getter1(lowered final main::A1 #this) → dart.core::String
return "42!";
- static method _extension#0|set#setter1(lowered final main::A1* #this, dart.core::String* s) → void {}
- static method _extension#0|method2() → main::A1* {
- return null;
+ static method _extension#0|set#setter1(lowered final main::A1 #this, dart.core::String s) → void {}
+ static method _extension#0|method2() → main::A1 {
+ throw "";
}
- static get _extension#0|getter2() → dart.core::String*
+ static get _extension#0|getter2() → dart.core::String
return "42!";
- static set _extension#0|setter2(dart.core::String* s) → void {}
+ static set _extension#0|setter2(dart.core::String s) → void {}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_21.yaml b/pkg/front_end/testcases/incremental/no_outline_change_21.yaml
index e6f6805..23a30cf 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_21.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_21.yaml
@@ -13,7 +13,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class A1 {
A1.foo1(){}
A1.foo1(){}
@@ -32,7 +31,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class A1 {
A1.foo1(){}
A1.foo1(){}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.1.expect
index ae0225e..31c97e3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.1.expect
@@ -3,54 +3,34 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:3: Error: 'A1.foo1' is already declared in this scope.
+// org-dartlang-test:///main.dart:3:3: Error: 'A1.foo1' is already declared in this scope.
// A1.foo1(){}
// ^^^^^^^
-// org-dartlang-test:///main.dart:3:3: Context: Previous declaration of 'A1.foo1'.
+// org-dartlang-test:///main.dart:2:3: Context: Previous declaration of 'A1.foo1'.
// A1.foo1(){}
// ^^^^^^^
//
-// org-dartlang-test:///main.dart:6:7: Error: 'A1' is already declared in this scope.
+// org-dartlang-test:///main.dart:5:7: Error: 'A1' is already declared in this scope.
// class A1 {
// ^^
-// org-dartlang-test:///main.dart:2:7: Context: Previous declaration of 'A1'.
+// org-dartlang-test:///main.dart:1:7: Context: Previous declaration of 'A1'.
// class A1 {
// ^^
//
-// org-dartlang-test:///main.dart:8:3: Error: 'A1.foo2' is already declared in this scope.
+// org-dartlang-test:///main.dart:7:3: Error: 'A1.foo2' is already declared in this scope.
// A1.foo2(){}
// ^^^^^^^
-// org-dartlang-test:///main.dart:7:3: Context: Previous declaration of 'A1.foo2'.
+// org-dartlang-test:///main.dart:6:3: Context: Previous declaration of 'A1.foo2'.
// A1.foo2(){}
// ^^^^^^^
//
class A1#1 extends dart.core::Object {
- constructor foo2() → main::A1#1*
+ constructor foo2() → main::A1#1
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class A1 extends dart.core::Object {
- constructor foo1() → main::A1*
+ constructor foo1() → main::A1
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.2.expect
index ae0225e..31c97e3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_21.yaml.world.2.expect
@@ -3,54 +3,34 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:3: Error: 'A1.foo1' is already declared in this scope.
+// org-dartlang-test:///main.dart:3:3: Error: 'A1.foo1' is already declared in this scope.
// A1.foo1(){}
// ^^^^^^^
-// org-dartlang-test:///main.dart:3:3: Context: Previous declaration of 'A1.foo1'.
+// org-dartlang-test:///main.dart:2:3: Context: Previous declaration of 'A1.foo1'.
// A1.foo1(){}
// ^^^^^^^
//
-// org-dartlang-test:///main.dart:6:7: Error: 'A1' is already declared in this scope.
+// org-dartlang-test:///main.dart:5:7: Error: 'A1' is already declared in this scope.
// class A1 {
// ^^
-// org-dartlang-test:///main.dart:2:7: Context: Previous declaration of 'A1'.
+// org-dartlang-test:///main.dart:1:7: Context: Previous declaration of 'A1'.
// class A1 {
// ^^
//
-// org-dartlang-test:///main.dart:8:3: Error: 'A1.foo2' is already declared in this scope.
+// org-dartlang-test:///main.dart:7:3: Error: 'A1.foo2' is already declared in this scope.
// A1.foo2(){}
// ^^^^^^^
-// org-dartlang-test:///main.dart:7:3: Context: Previous declaration of 'A1.foo2'.
+// org-dartlang-test:///main.dart:6:3: Context: Previous declaration of 'A1.foo2'.
// A1.foo2(){}
// ^^^^^^^
//
class A1#1 extends dart.core::Object {
- constructor foo2() → main::A1#1*
+ constructor foo2() → main::A1#1
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class A1 extends dart.core::Object {
- constructor foo1() → main::A1*
+ constructor foo1() → main::A1
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml
index ff2b2b8..244a23c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'dart:collection' show ListMixin;
class WithListMixin extends Object with ListMixin<int> {
int length = 2;
@@ -27,7 +26,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'dart:collection' show ListMixin;
class WithListMixin extends Object with ListMixin<int> {
int length = 2;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect
index 985ec21..168470b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.1.expect
@@ -3,65 +3,61 @@
import "dart:collection" show ListMixin;
- abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListMixin<dart.core::int*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → main::_WithListMixin&Object&ListMixin*
+ abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListMixin<dart.core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
+ const synthetic constructor •() → main::_WithListMixin&Object&ListMixin
: super dart.core::Object::•()
;
- abstract member-signature get length() → dart.core::int*; -> dart.core::List::length
- abstract member-signature set length(dart.core::int* newLength) → void; -> dart.core::List::length
- abstract member-signature operator [](dart.core::int* index) → dart.core::int*; -> dart.core::List::[]
- abstract member-signature operator []=(dart.core::int* index, covariant-by-class dart.core::int* value) → void; -> dart.core::List::[]=
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int* {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
+ return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
}
- set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(covariant-by-class dart.core::int* value) → void {
+ set /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(covariant-by-class dart.core::int value) → void {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- this.{dart.core::List::[]=}(0, value){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(0, value){(dart.core::int, dart.core::int) → void};
}
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int* {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- return this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*};
+ return this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int};
}
- set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(covariant-by-class dart.core::int* value) → void {
+ set /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(covariant-by-class dart.core::int value) → void {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- this.{dart.core::List::[]=}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}, value){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}, value){(dart.core::int, dart.core::int) → void};
}
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ iterator() → dart.core::Iterator<dart.core::int*>
- return new dart._internal::ListIterator::•<dart.core::int*>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ elementAt(dart.core::int index) → dart.core::int*
- return this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int*};
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ followedBy(covariant-by-class dart.core::Iterable<dart.core::int*> other) → dart.core::Iterable<dart.core::int*>
- return dart._internal::FollowedByIterable::firstEfficient<dart.core::int*>(this, other);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ forEach((dart.core::int*) → void action) → void {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ iterator() → dart.core::Iterator<dart.core::int>
+ return new dart._internal::ListIterator::•<dart.core::int>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ elementAt(dart.core::int index) → dart.core::int
+ return this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ followedBy(covariant-by-class dart.core::Iterable<dart.core::int> other) → dart.core::Iterable<dart.core::int>
+ return dart._internal::FollowedByIterable::firstEfficient<dart.core::int>(this, other);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ forEach((dart.core::int) → void action) → void {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- action(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → void};
+ action(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
}
@#C3
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → dart.core::bool
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → dart.core::bool
return this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0;
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
return !this.{dart.collection::ListMixin::isEmpty}{dart.core::bool};
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int* {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
if(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::>}(1){(dart.core::num) → dart.core::bool})
throw dart._internal::IterableElementError::tooMany();
- return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
+ return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ contains(dart.core::Object? element) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ contains(dart.core::Object? element) → dart.core::bool {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
return true;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
@@ -69,10 +65,10 @@
}
return false;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ every((dart.core::int*) → dart.core::bool test) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ every((dart.core::int) → dart.core::bool test) → dart.core::bool {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(!test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(!test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return false;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
@@ -80,10 +76,10 @@
}
return true;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ any((dart.core::int*) → dart.core::bool test) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ any((dart.core::int) → dart.core::bool test) → dart.core::bool {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return true;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
@@ -91,41 +87,41 @@
}
return false;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ firstWhere((dart.core::int*) → dart.core::bool test, {covariant-by-class () →? dart.core::int* orElse = #C2}) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ firstWhere((dart.core::int) → dart.core::bool test, {covariant-by-class () →? dart.core::int orElse = #C2}) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool})
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool})
return element;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
if(!(orElse == null))
- return orElse{() → dart.core::int*}(){() → dart.core::int*};
+ return orElse{() → dart.core::int}(){() → dart.core::int};
throw dart._internal::IterableElementError::noElement();
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastWhere((dart.core::int*) → dart.core::bool test, {covariant-by-class () →? dart.core::int* orElse = #C2}) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastWhere((dart.core::int) → dart.core::bool test, {covariant-by-class () →? dart.core::int orElse = #C2}) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = length.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool})
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool})
return element;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
if(!(orElse == null))
- return orElse{() → dart.core::int*}(){() → dart.core::int*};
+ return orElse{() → dart.core::int}(){() → dart.core::int};
throw dart._internal::IterableElementError::noElement();
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ singleWhere((dart.core::int*) → dart.core::bool test, {covariant-by-class () →? dart.core::int* orElse = #C2}) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ singleWhere((dart.core::int) → dart.core::bool test, {covariant-by-class () →? dart.core::int orElse = #C2}) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
- late dart.core::int* match;
+ late dart.core::int match;
dart.core::bool matchFound = false;
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool}) {
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool}) {
if(matchFound) {
throw dart._internal::IterableElementError::tooMany();
}
@@ -139,10 +135,10 @@
if(matchFound)
return match;
if(!(orElse == null))
- return orElse{() → dart.core::int*}(){() → dart.core::int*};
+ return orElse{() → dart.core::int}(){() → dart.core::int};
throw dart._internal::IterableElementError::noElement();
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ join([dart.core::String separator = #C4]) → dart.core::String {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ join([dart.core::String separator = #C4]) → dart.core::String {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
return "";
dart.core::StringBuffer buffer = let final dart.core::StringBuffer #t1 = new dart.core::StringBuffer::•() in block {
@@ -150,142 +146,142 @@
} =>#t1;
return buffer.{dart.core::StringBuffer::toString}(){() → dart.core::String};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ where((dart.core::int*) → dart.core::bool test) → dart.core::Iterable<dart.core::int*>
- return new dart._internal::WhereIterable::•<dart.core::int*>(this, test);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ whereType<T extends dart.core::Object? = dynamic>() → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::whereType::T%>
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ where((dart.core::int) → dart.core::bool test) → dart.core::Iterable<dart.core::int>
+ return new dart._internal::WhereIterable::•<dart.core::int>(this, test);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ whereType<T extends dart.core::Object? = dynamic>() → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::whereType::T%>
return new dart._internal::WhereTypeIterable::•<main::_WithListMixin&Object&ListMixin::whereType::T%>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ map<T extends dart.core::Object? = dynamic>((dart.core::int*) → main::_WithListMixin&Object&ListMixin::map::T% f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::map::T%>
- return new dart._internal::MappedListIterable::•<dart.core::int*, main::_WithListMixin&Object&ListMixin::map::T%>(this, f);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ expand<T extends dart.core::Object? = dynamic>((dart.core::int*) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%> f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%>
- return new dart._internal::ExpandIterable::•<dart.core::int*, main::_WithListMixin&Object&ListMixin::expand::T%>(this, f);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reduce(covariant-by-class (dart.core::int*, dart.core::int*) → dart.core::int* combine) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ map<T extends dart.core::Object? = dynamic>((dart.core::int) → main::_WithListMixin&Object&ListMixin::map::T% f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::map::T%>
+ return new dart._internal::MappedListIterable::•<dart.core::int, main::_WithListMixin&Object&ListMixin::map::T%>(this, f);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ expand<T extends dart.core::Object? = dynamic>((dart.core::int) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%> f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%>
+ return new dart._internal::ExpandIterable::•<dart.core::int, main::_WithListMixin&Object&ListMixin::expand::T%>(this, f);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reduce(covariant-by-class (dart.core::int, dart.core::int) → dart.core::int combine) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
if(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- dart.core::int* value = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
+ dart.core::int value = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
for (dart.core::int i = 1; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*, dart.core::int*) → dart.core::int*};
+ value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → dart.core::int};
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
return value;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fold<T extends dart.core::Object? = dynamic>(main::_WithListMixin&Object&ListMixin::fold::T% initialValue, (main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int*) → main::_WithListMixin&Object&ListMixin::fold::T% combine) → main::_WithListMixin&Object&ListMixin::fold::T% {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fold<T extends dart.core::Object? = dynamic>(main::_WithListMixin&Object&ListMixin::fold::T% initialValue, (main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int) → main::_WithListMixin&Object&ListMixin::fold::T% combine) → main::_WithListMixin&Object&ListMixin::fold::T% {
main::_WithListMixin&Object&ListMixin::fold::T% value = initialValue;
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int*) → main::_WithListMixin&Object&ListMixin::fold::T%};
+ value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int) → main::_WithListMixin&Object&ListMixin::fold::T%};
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
return value;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skip(dart.core::int count) → dart.core::Iterable<dart.core::int*>
- return new dart._internal::SubListIterable::•<dart.core::int*>(this, count, null);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skipWhile((dart.core::int*) → dart.core::bool test) → dart.core::Iterable<dart.core::int*> {
- return new dart._internal::SkipWhileIterable::•<dart.core::int*>(this, test);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skip(dart.core::int count) → dart.core::Iterable<dart.core::int>
+ return new dart._internal::SubListIterable::•<dart.core::int>(this, count, null);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skipWhile((dart.core::int) → dart.core::bool test) → dart.core::Iterable<dart.core::int> {
+ return new dart._internal::SkipWhileIterable::•<dart.core::int>(this, test);
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ take(dart.core::int count) → dart.core::Iterable<dart.core::int*>
- return new dart._internal::SubListIterable::•<dart.core::int*>(this, 0, dart._internal::checkNotNullable<dart.core::int>(count, "count"));
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ takeWhile((dart.core::int*) → dart.core::bool test) → dart.core::Iterable<dart.core::int*> {
- return new dart._internal::TakeWhileIterable::•<dart.core::int*>(this, test);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ take(dart.core::int count) → dart.core::Iterable<dart.core::int>
+ return new dart._internal::SubListIterable::•<dart.core::int>(this, 0, dart._internal::checkNotNullable<dart.core::int>(count, "count"));
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ takeWhile((dart.core::int) → dart.core::bool test) → dart.core::Iterable<dart.core::int> {
+ return new dart._internal::TakeWhileIterable::•<dart.core::int>(this, test);
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({dart.core::bool growable = #C5}) → dart.core::List<dart.core::int*> {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({dart.core::bool growable = #C5}) → dart.core::List<dart.core::int> {
if(this.{dart.collection::ListMixin::isEmpty}{dart.core::bool})
- return dart.core::List::empty<dart.core::int*>(growable: growable);
- dart.core::int* first = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
- dart.core::List<dart.core::int*> result = dart.core::List::filled<dart.core::int*>(this.{dart.core::List::length}{dart.core::int}, first, growable: growable);
+ return dart.core::List::empty<dart.core::int>(growable: growable);
+ dart.core::int first = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
+ dart.core::List<dart.core::int> result = dart.core::List::filled<dart.core::int>(this.{dart.core::List::length}{dart.core::int}, first, growable: growable);
for (dart.core::int i = 1; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- result.{dart.core::List::[]=}(i, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ result.{dart.core::List::[]=}(i, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toSet() → dart.core::Set<dart.core::int*> {
- dart.core::Set<dart.core::int*> result = new dart.collection::_CompactLinkedHashSet::•<dart.core::int*>();
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toSet() → dart.core::Set<dart.core::int> {
+ dart.core::Set<dart.core::int> result = new dart.collection::_CompactLinkedHashSet::•<dart.core::int>();
for (dart.core::int i = 0; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- result.{dart.core::Set::add}(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool};
+ result.{dart.core::Set::add}(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool};
}
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(covariant-by-class dart.core::int* element) → void {
- this.{dart.core::List::[]=}(let final dart.core::int #t2 = this.{dart.core::List::length}{dart.core::int} in let final dart.core::int #t3 = this.{dart.core::List::length} = #t2.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t2, element){(dart.core::int, dart.core::int*) → void};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(covariant-by-class dart.core::int element) → void {
+ this.{dart.core::List::[]=}(let final dart.core::int #t2 = this.{dart.core::List::length}{dart.core::int} in let final dart.core::int #t3 = this.{dart.core::List::length} = #t2.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t2, element){(dart.core::int, dart.core::int) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ addAll(covariant-by-class dart.core::Iterable<dart.core::int*> iterable) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ addAll(covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
dart.core::int i = this.{dart.core::List::length}{dart.core::int};
{
- dart.core::Iterator<dart.core::int*> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int*>};
+ dart.core::Iterator<dart.core::int> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int>};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
- dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int*};
+ dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
assert(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} i || (throw new dart.core::ConcurrentModificationError::•(this)));
- this.{dart.collection::ListMixin::add}(element){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(dart.core::Object? element) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(dart.core::Object? element) → dart.core::bool {
for (dart.core::int i = 0; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element) {
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element) {
this.{dart.collection::ListMixin::_closeGap}(i, i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return true;
}
}
return false;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _closeGap(dart.core::int start, dart.core::int end) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _closeGap(dart.core::int start, dart.core::int end) → void {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
assert(0.{dart.core::num::<=}(start){(dart.core::num) → dart.core::bool});
assert(start.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool});
assert(end.{dart.core::num::<=}(length){(dart.core::num) → dart.core::bool});
dart.core::int size = end.{dart.core::num::-}(start){(dart.core::num) → dart.core::int};
for (dart.core::int i = end; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(i.{dart.core::num::-}(size){(dart.core::num) → dart.core::int}, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(i.{dart.core::num::-}(size){(dart.core::num) → dart.core::int}, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
this.{dart.core::List::length} = length.{dart.core::num::-}(size){(dart.core::num) → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((dart.core::int*) → dart.core::bool test) → void {
- this.{dart.collection::ListMixin::_filter}(test, false){((dart.core::int*) → dart.core::bool, dart.core::bool) → void};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((dart.core::int) → dart.core::bool test) → void {
+ this.{dart.collection::ListMixin::_filter}(test, false){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((dart.core::int*) → dart.core::bool test) → void {
- this.{dart.collection::ListMixin::_filter}(test, true){((dart.core::int*) → dart.core::bool, dart.core::bool) → void};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((dart.core::int) → dart.core::bool test) → void {
+ this.{dart.collection::ListMixin::_filter}(test, true){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int*) → dart.core::bool test, dart.core::bool retainMatching) → void {
- dart.core::List<dart.core::int*> retained = dart.core::_GrowableList::•<dart.core::int*>(0);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int) → dart.core::bool test, dart.core::bool retainMatching) → void {
+ dart.core::List<dart.core::int> retained = dart.core::_GrowableList::•<dart.core::int>(0);
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} retainMatching) {
- retained.{dart.core::List::add}(element){(dart.core::int*) → void};
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} retainMatching) {
+ retained.{dart.core::List::add}(element){(dart.core::int) → void};
}
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
if(!(retained.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
- this.{dart.collection::ListMixin::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.core::List::length} = retained.{dart.core::List::length}{dart.core::int};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
this.{dart.core::List::length} = 0;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ cast<R extends dart.core::Object? = dynamic>() → dart.core::List<main::_WithListMixin&Object&ListMixin::cast::R%>
- return dart.core::List::castFrom<dart.core::int*, main::_WithListMixin&Object&ListMixin::cast::R%>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ cast<R extends dart.core::Object? = dynamic>() → dart.core::List<main::_WithListMixin&Object&ListMixin::cast::R%>
+ return dart.core::List::castFrom<dart.core::int, main::_WithListMixin&Object&ListMixin::cast::R%>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0) {
throw dart._internal::IterableElementError::noElement();
}
- dart.core::int* result = this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*};
+ dart.core::int result = this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int};
this.{dart.core::List::length} = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sort([(dart.core::int*, dart.core::int*) →? dart.core::int compare = #C2]) → void {
- dart._internal::Sort::sort<dart.core::int*>(this, let final (dart.core::int*, dart.core::int*) →? dart.core::int #t4 = compare in #t4 == null ?{(dart.core::int*, dart.core::int*) → dart.core::int} #C6 : #t4{(dart.core::int*, dart.core::int*) → dart.core::int});
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sort([(dart.core::int, dart.core::int) →? dart.core::int compare = #C2]) → void {
+ dart._internal::Sort::sort<dart.core::int>(this, let final (dart.core::int, dart.core::int) →? dart.core::int #t4 = compare in #t4 == null ?{(dart.core::int, dart.core::int) → dart.core::int} #C6 : #t4{(dart.core::int, dart.core::int) → dart.core::int});
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ shuffle([dart.math::Random? random = #C2]) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ shuffle([dart.math::Random? random = #C2]) → void {
random == null ?{dart.math::Random} random = dart.math::Random::•() : null;
if(random{dart.math::Random} == null)
throw "!";
@@ -293,58 +289,58 @@
while (length.{dart.core::num::>}(1){(dart.core::num) → dart.core::bool}) {
dart.core::int pos = random{dart.math::Random}.{dart.math::Random::nextInt}(length){(dart.core::int) → dart.core::int};
length = length.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
- dart.core::int* tmp = this.{dart.core::List::[]}(length){(dart.core::int) → dart.core::int*};
- this.{dart.core::List::[]=}(length, this.{dart.core::List::[]}(pos){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
- this.{dart.core::List::[]=}(pos, tmp){(dart.core::int, dart.core::int*) → void};
+ dart.core::int tmp = this.{dart.core::List::[]}(length){(dart.core::int) → dart.core::int};
+ this.{dart.core::List::[]=}(length, this.{dart.core::List::[]}(pos){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
+ this.{dart.core::List::[]=}(pos, tmp){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ asMap() → dart.core::Map<dart.core::int, dart.core::int*> {
- return new dart._internal::ListMapView::•<dart.core::int*>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ asMap() → dart.core::Map<dart.core::int, dart.core::int> {
+ return new dart._internal::ListMapView::•<dart.core::int>(this);
}
- operator /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(covariant-by-class dart.core::List<dart.core::int*> other) → dart.core::List<dart.core::int*>
+ operator /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(covariant-by-class dart.core::List<dart.core::int> other) → dart.core::List<dart.core::int>
return block {
- final dart.core::List<dart.core::int*> #t5 = dart.core::List::of<dart.core::int*>(this);
- #t5.{dart.core::List::addAll}{Invariant}(other){(dart.core::Iterable<dart.core::int*>) → void};
+ final dart.core::List<dart.core::int> #t5 = dart.core::List::of<dart.core::int>(this);
+ #t5.{dart.core::List::addAll}{Invariant}(other){(dart.core::Iterable<dart.core::int>) → void};
} =>#t5;
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int*> {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int> {
dart.core::int listLength = this.{dart.core::List::length}{dart.core::int};
end == null ?{dart.core::int} end = listLength : null;
if(end{dart.core::int} == null)
throw "!";
dart.core::RangeError::checkValidRange(start, end{dart.core::int}, listLength);
- return dart.core::List::from<dart.core::int*>(this.{dart.collection::ListMixin::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int*>});
+ return dart.core::List::from<dart.core::int>(this.{dart.collection::ListMixin::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int>});
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable<dart.core::int*> {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable<dart.core::int> {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
- return new dart._internal::SubListIterable::•<dart.core::int*>(this, start, end);
+ return new dart._internal::SubListIterable::•<dart.core::int>(this, start, end);
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(dart.core::int start, dart.core::int end) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(dart.core::int start, dart.core::int end) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(end.{dart.core::num::>}(start){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(start, end){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
- dart.core::int* value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int*} #t6 : #t6{dart.core::int*};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
+ dart.core::int value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int} #t6 : #t6{dart.core::int};
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
for (dart.core::int i = start; i.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(i, value){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(i, value){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int*> iterable, [dart.core::int skipCount = #C7]) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int> iterable, [dart.core::int skipCount = #C7]) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
dart.core::int length = end.{dart.core::num::-}(start){(dart.core::num) → dart.core::int};
if(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
return;
dart.core::RangeError::checkNotNegative(skipCount, "skipCount");
- dart.core::List<dart.core::int*> otherList;
+ dart.core::List<dart.core::int> otherList;
dart.core::int otherStart;
- if(iterable is{ForNonNullableByDefault} dart.core::List<dart.core::int*>) {
- otherList = iterable{dart.core::List<dart.core::int*>};
+ if(iterable is{ForNonNullableByDefault} dart.core::List<dart.core::int>) {
+ otherList = iterable{dart.core::List<dart.core::int>};
otherStart = skipCount;
}
else {
- otherList = iterable.{dart.core::Iterable::skip}(skipCount){(dart.core::int) → dart.core::Iterable<dart.core::int*>}.{dart.core::Iterable::toList}(growable: false){({growable: dart.core::bool}) → dart.core::List<dart.core::int*>};
+ otherList = iterable.{dart.core::Iterable::skip}(skipCount){(dart.core::int) → dart.core::Iterable<dart.core::int>}.{dart.core::Iterable::toList}(growable: false){({growable: dart.core::bool}) → dart.core::List<dart.core::int>};
otherStart = 0;
}
if(otherStart.{dart.core::num::+}(length){(dart.core::num) → dart.core::int}.{dart.core::num::>}(otherList.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}) {
@@ -352,29 +348,29 @@
}
if(otherStart.{dart.core::num::<}(start){(dart.core::num) → dart.core::bool}) {
for (dart.core::int i = length.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
}
else {
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int*> newContents) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int> newContents) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(start =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
- this.{dart.collection::ListMixin::addAll}(newContents){(dart.core::Iterable<dart.core::int*>) → void};
+ this.{dart.collection::ListMixin::addAll}(newContents){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>)) {
- newContents = newContents.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int*>};
+ newContents = newContents.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int>};
}
dart.core::int removeLength = end.{dart.core::num::-}(start){(dart.core::num) → dart.core::int};
dart.core::int insertLength = newContents.{dart.core::Iterable::length}{dart.core::int};
if(removeLength.{dart.core::num::>=}(insertLength){(dart.core::num) → dart.core::bool}) {
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
- this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
if(removeLength.{dart.core::num::>}(insertLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(insertEnd, end){(dart.core::int, dart.core::int) → void};
}
@@ -383,15 +379,15 @@
if(end =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
dart.core::int i = start;
{
- dart.core::Iterator<dart.core::int*> :sync-for-iterator = newContents.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int*>};
+ dart.core::Iterator<dart.core::int> :sync-for-iterator = newContents.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int>};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
- dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int*};
+ dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
if(i.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool}) {
- this.{dart.core::List::[]=}(i, element){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(i, element){(dart.core::int, dart.core::int) → void};
}
else {
- this.{dart.collection::ListMixin::add}(element){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
}
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
@@ -403,77 +399,77 @@
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(delta){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int*}){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(insertEnd.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
- this.{dart.collection::ListMixin::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
- this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class dart.core::Object? element, [dart.core::int start = #C7]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class dart.core::Object? element, [dart.core::int start = #C7]) → dart.core::int {
if(start.{dart.core::num::<}(0){(dart.core::num) → dart.core::bool})
start = 0;
for (dart.core::int i = start; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexWhere((dart.core::int*) → dart.core::bool test, [dart.core::int start = #C7]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexWhere((dart.core::int) → dart.core::bool test, [dart.core::int start = #C7]) → dart.core::int {
if(start.{dart.core::num::<}(0){(dart.core::num) → dart.core::bool})
start = 0;
for (dart.core::int i = start; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexOf(covariant-by-class dart.core::Object? element, [dart.core::int? start = #C2]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexOf(covariant-by-class dart.core::Object? element, [dart.core::int? start = #C2]) → dart.core::int {
if(start == null || start{dart.core::int}.{dart.core::num::>=}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool})
start = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
if(start{dart.core::int} == null)
throw "!";
for (dart.core::int i = start{dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexWhere((dart.core::int*) → dart.core::bool test, [dart.core::int? start = #C2]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexWhere((dart.core::int) → dart.core::bool test, [dart.core::int? start = #C2]) → dart.core::int {
if(start == null || start{dart.core::int}.{dart.core::num::>=}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool})
start = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
if(start{dart.core::int} == null)
throw "!";
for (dart.core::int i = start{dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insert(dart.core::int index, covariant-by-class dart.core::int* element) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insert(dart.core::int index, covariant-by-class dart.core::int element) → void {
dart._internal::checkNotNullable<dart.core::int>(index, "index");
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
dart.core::RangeError::checkValueInInterval(index, 0, length, "index");
- this.{dart.collection::ListMixin::add}(element){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
if(!(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} length)) {
- this.{dart.collection::ListMixin::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
- this.{dart.core::List::[]=}(index, element){(dart.core::int, dart.core::int*) → void};
+ this.{dart.collection::ListMixin::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
+ this.{dart.core::List::[]=}(index, element){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(dart.core::int index) → dart.core::int* {
- dart.core::int* result = this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int*};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(dart.core::int index) → dart.core::int {
+ dart.core::int result = this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int};
this.{dart.collection::ListMixin::_closeGap}(index, index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int*> iterable) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
dart.core::RangeError::checkValueInInterval(index, 0, this.{dart.core::List::length}{dart.core::int}, "index");
if(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
- this.{dart.collection::ListMixin::addAll}(iterable){(dart.core::Iterable<dart.core::int*>) → void};
+ this.{dart.collection::ListMixin::addAll}(iterable){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>) || dart.core::identical(iterable, this)) {
- iterable = iterable.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int*>};
+ iterable = iterable.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int>};
}
dart.core::int insertionLength = iterable.{dart.core::Iterable::length}{dart.core::int};
if(insertionLength =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0) {
@@ -481,7 +477,7 @@
}
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int*}){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(!(iterable.{dart.core::Iterable::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} insertionLength)) {
this.{dart.core::List::length} = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int};
@@ -489,51 +485,42 @@
}
dart.core::int oldCopyStart = index.{dart.core::num::+}(insertionLength){(dart.core::num) → dart.core::int};
if(oldCopyStart.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
- this.{dart.collection::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
- this.{dart.collection::ListMixin::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int*>) → void};
+ this.{dart.collection::ListMixin::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int>) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int*> iterable) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
if(iterable is{ForNonNullableByDefault} dart.core::List<dynamic>) {
- this.{dart.collection::ListMixin::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
else {
{
- dart.core::Iterator<dart.core::int*> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int*>};
+ dart.core::Iterator<dart.core::int> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int>};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
- dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int*};
+ dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
- this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t7, element){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t7, element){(dart.core::int, dart.core::int) → void};
}
}
}
}
}
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int*>
- return new dart._internal::ReversedListIterable::•<dart.core::int*>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int>
+ return new dart._internal::ReversedListIterable::•<dart.core::int>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- static method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
+ static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
}
}
class WithListMixin extends main::_WithListMixin&Object&ListMixin {
- field dart.core::int* length = 2;
- synthetic constructor •() → main::WithListMixin*
+ field dart.core::int length = 2;
+ synthetic constructor •() → main::WithListMixin
: super main::_WithListMixin&Object&ListMixin::•()
;
- operator [](dart.core::int* index) → dart.core::int*
+ operator [](dart.core::int index) → dart.core::int
return index;
- operator []=(dart.core::int* index, covariant-by-class dart.core::int* value) → void
+ operator []=(dart.core::int index, covariant-by-class dart.core::int value) → void
return null;
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect
index 985ec21..168470b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_22.yaml.world.2.expect
@@ -3,65 +3,61 @@
import "dart:collection" show ListMixin;
- abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListMixin<dart.core::int*> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → main::_WithListMixin&Object&ListMixin*
+ abstract class _WithListMixin&Object&ListMixin extends dart.core::Object implements dart.collection::ListMixin<dart.core::int> /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
+ const synthetic constructor •() → main::_WithListMixin&Object&ListMixin
: super dart.core::Object::•()
;
- abstract member-signature get length() → dart.core::int*; -> dart.core::List::length
- abstract member-signature set length(dart.core::int* newLength) → void; -> dart.core::List::length
- abstract member-signature operator [](dart.core::int* index) → dart.core::int*; -> dart.core::List::[]
- abstract member-signature operator []=(dart.core::int* index, covariant-by-class dart.core::int* value) → void; -> dart.core::List::[]=
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int* {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
+ return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
}
- set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(covariant-by-class dart.core::int* value) → void {
+ set /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ first(covariant-by-class dart.core::int value) → void {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- this.{dart.core::List::[]=}(0, value){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(0, value){(dart.core::int, dart.core::int) → void};
}
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int* {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- return this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*};
+ return this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int};
}
- set /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(covariant-by-class dart.core::int* value) → void {
+ set /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ last(covariant-by-class dart.core::int value) → void {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- this.{dart.core::List::[]=}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}, value){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}, value){(dart.core::int, dart.core::int) → void};
}
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ iterator() → dart.core::Iterator<dart.core::int*>
- return new dart._internal::ListIterator::•<dart.core::int*>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ elementAt(dart.core::int index) → dart.core::int*
- return this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int*};
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ followedBy(covariant-by-class dart.core::Iterable<dart.core::int*> other) → dart.core::Iterable<dart.core::int*>
- return dart._internal::FollowedByIterable::firstEfficient<dart.core::int*>(this, other);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ forEach((dart.core::int*) → void action) → void {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ iterator() → dart.core::Iterator<dart.core::int>
+ return new dart._internal::ListIterator::•<dart.core::int>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ elementAt(dart.core::int index) → dart.core::int
+ return this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ followedBy(covariant-by-class dart.core::Iterable<dart.core::int> other) → dart.core::Iterable<dart.core::int>
+ return dart._internal::FollowedByIterable::firstEfficient<dart.core::int>(this, other);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ forEach((dart.core::int) → void action) → void {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- action(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → void};
+ action(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
}
@#C3
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → dart.core::bool
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isEmpty() → dart.core::bool
return this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0;
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ isNotEmpty() → dart.core::bool
return !this.{dart.collection::ListMixin::isEmpty}{dart.core::bool};
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int* {
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ single() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
if(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::>}(1){(dart.core::num) → dart.core::bool})
throw dart._internal::IterableElementError::tooMany();
- return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
+ return this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ contains(dart.core::Object? element) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ contains(dart.core::Object? element) → dart.core::bool {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
return true;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
@@ -69,10 +65,10 @@
}
return false;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ every((dart.core::int*) → dart.core::bool test) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ every((dart.core::int) → dart.core::bool test) → dart.core::bool {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(!test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(!test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return false;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
@@ -80,10 +76,10 @@
}
return true;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ any((dart.core::int*) → dart.core::bool test) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ any((dart.core::int) → dart.core::bool test) → dart.core::bool {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return true;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
@@ -91,41 +87,41 @@
}
return false;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ firstWhere((dart.core::int*) → dart.core::bool test, {covariant-by-class () →? dart.core::int* orElse = #C2}) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ firstWhere((dart.core::int) → dart.core::bool test, {covariant-by-class () →? dart.core::int orElse = #C2}) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool})
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool})
return element;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
if(!(orElse == null))
- return orElse{() → dart.core::int*}(){() → dart.core::int*};
+ return orElse{() → dart.core::int}(){() → dart.core::int};
throw dart._internal::IterableElementError::noElement();
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastWhere((dart.core::int*) → dart.core::bool test, {covariant-by-class () →? dart.core::int* orElse = #C2}) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastWhere((dart.core::int) → dart.core::bool test, {covariant-by-class () →? dart.core::int orElse = #C2}) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = length.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool})
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool})
return element;
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
if(!(orElse == null))
- return orElse{() → dart.core::int*}(){() → dart.core::int*};
+ return orElse{() → dart.core::int}(){() → dart.core::int};
throw dart._internal::IterableElementError::noElement();
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ singleWhere((dart.core::int*) → dart.core::bool test, {covariant-by-class () →? dart.core::int* orElse = #C2}) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ singleWhere((dart.core::int) → dart.core::bool test, {covariant-by-class () →? dart.core::int orElse = #C2}) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
- late dart.core::int* match;
+ late dart.core::int match;
dart.core::bool matchFound = false;
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool}) {
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool}) {
if(matchFound) {
throw dart._internal::IterableElementError::tooMany();
}
@@ -139,10 +135,10 @@
if(matchFound)
return match;
if(!(orElse == null))
- return orElse{() → dart.core::int*}(){() → dart.core::int*};
+ return orElse{() → dart.core::int}(){() → dart.core::int};
throw dart._internal::IterableElementError::noElement();
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ join([dart.core::String separator = #C4]) → dart.core::String {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ join([dart.core::String separator = #C4]) → dart.core::String {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
return "";
dart.core::StringBuffer buffer = let final dart.core::StringBuffer #t1 = new dart.core::StringBuffer::•() in block {
@@ -150,142 +146,142 @@
} =>#t1;
return buffer.{dart.core::StringBuffer::toString}(){() → dart.core::String};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ where((dart.core::int*) → dart.core::bool test) → dart.core::Iterable<dart.core::int*>
- return new dart._internal::WhereIterable::•<dart.core::int*>(this, test);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ whereType<T extends dart.core::Object? = dynamic>() → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::whereType::T%>
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ where((dart.core::int) → dart.core::bool test) → dart.core::Iterable<dart.core::int>
+ return new dart._internal::WhereIterable::•<dart.core::int>(this, test);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ whereType<T extends dart.core::Object? = dynamic>() → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::whereType::T%>
return new dart._internal::WhereTypeIterable::•<main::_WithListMixin&Object&ListMixin::whereType::T%>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ map<T extends dart.core::Object? = dynamic>((dart.core::int*) → main::_WithListMixin&Object&ListMixin::map::T% f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::map::T%>
- return new dart._internal::MappedListIterable::•<dart.core::int*, main::_WithListMixin&Object&ListMixin::map::T%>(this, f);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ expand<T extends dart.core::Object? = dynamic>((dart.core::int*) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%> f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%>
- return new dart._internal::ExpandIterable::•<dart.core::int*, main::_WithListMixin&Object&ListMixin::expand::T%>(this, f);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reduce(covariant-by-class (dart.core::int*, dart.core::int*) → dart.core::int* combine) → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ map<T extends dart.core::Object? = dynamic>((dart.core::int) → main::_WithListMixin&Object&ListMixin::map::T% f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::map::T%>
+ return new dart._internal::MappedListIterable::•<dart.core::int, main::_WithListMixin&Object&ListMixin::map::T%>(this, f);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ expand<T extends dart.core::Object? = dynamic>((dart.core::int) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%> f) → dart.core::Iterable<main::_WithListMixin&Object&ListMixin::expand::T%>
+ return new dart._internal::ExpandIterable::•<dart.core::int, main::_WithListMixin&Object&ListMixin::expand::T%>(this, f);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reduce(covariant-by-class (dart.core::int, dart.core::int) → dart.core::int combine) → dart.core::int {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
if(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
throw dart._internal::IterableElementError::noElement();
- dart.core::int* value = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
+ dart.core::int value = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
for (dart.core::int i = 1; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*, dart.core::int*) → dart.core::int*};
+ value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → dart.core::int};
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
return value;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fold<T extends dart.core::Object? = dynamic>(main::_WithListMixin&Object&ListMixin::fold::T% initialValue, (main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int*) → main::_WithListMixin&Object&ListMixin::fold::T% combine) → main::_WithListMixin&Object&ListMixin::fold::T% {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fold<T extends dart.core::Object? = dynamic>(main::_WithListMixin&Object&ListMixin::fold::T% initialValue, (main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int) → main::_WithListMixin&Object&ListMixin::fold::T% combine) → main::_WithListMixin&Object&ListMixin::fold::T% {
main::_WithListMixin&Object&ListMixin::fold::T% value = initialValue;
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int*) → main::_WithListMixin&Object&ListMixin::fold::T%};
+ value = combine(value, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(main::_WithListMixin&Object&ListMixin::fold::T%, dart.core::int) → main::_WithListMixin&Object&ListMixin::fold::T%};
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
return value;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skip(dart.core::int count) → dart.core::Iterable<dart.core::int*>
- return new dart._internal::SubListIterable::•<dart.core::int*>(this, count, null);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skipWhile((dart.core::int*) → dart.core::bool test) → dart.core::Iterable<dart.core::int*> {
- return new dart._internal::SkipWhileIterable::•<dart.core::int*>(this, test);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skip(dart.core::int count) → dart.core::Iterable<dart.core::int>
+ return new dart._internal::SubListIterable::•<dart.core::int>(this, count, null);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ skipWhile((dart.core::int) → dart.core::bool test) → dart.core::Iterable<dart.core::int> {
+ return new dart._internal::SkipWhileIterable::•<dart.core::int>(this, test);
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ take(dart.core::int count) → dart.core::Iterable<dart.core::int*>
- return new dart._internal::SubListIterable::•<dart.core::int*>(this, 0, dart._internal::checkNotNullable<dart.core::int>(count, "count"));
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ takeWhile((dart.core::int*) → dart.core::bool test) → dart.core::Iterable<dart.core::int*> {
- return new dart._internal::TakeWhileIterable::•<dart.core::int*>(this, test);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ take(dart.core::int count) → dart.core::Iterable<dart.core::int>
+ return new dart._internal::SubListIterable::•<dart.core::int>(this, 0, dart._internal::checkNotNullable<dart.core::int>(count, "count"));
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ takeWhile((dart.core::int) → dart.core::bool test) → dart.core::Iterable<dart.core::int> {
+ return new dart._internal::TakeWhileIterable::•<dart.core::int>(this, test);
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({dart.core::bool growable = #C5}) → dart.core::List<dart.core::int*> {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toList({dart.core::bool growable = #C5}) → dart.core::List<dart.core::int> {
if(this.{dart.collection::ListMixin::isEmpty}{dart.core::bool})
- return dart.core::List::empty<dart.core::int*>(growable: growable);
- dart.core::int* first = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int*};
- dart.core::List<dart.core::int*> result = dart.core::List::filled<dart.core::int*>(this.{dart.core::List::length}{dart.core::int}, first, growable: growable);
+ return dart.core::List::empty<dart.core::int>(growable: growable);
+ dart.core::int first = this.{dart.core::List::[]}(0){(dart.core::int) → dart.core::int};
+ dart.core::List<dart.core::int> result = dart.core::List::filled<dart.core::int>(this.{dart.core::List::length}{dart.core::int}, first, growable: growable);
for (dart.core::int i = 1; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- result.{dart.core::List::[]=}(i, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ result.{dart.core::List::[]=}(i, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toSet() → dart.core::Set<dart.core::int*> {
- dart.core::Set<dart.core::int*> result = new dart.collection::_CompactLinkedHashSet::•<dart.core::int*>();
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toSet() → dart.core::Set<dart.core::int> {
+ dart.core::Set<dart.core::int> result = new dart.collection::_CompactLinkedHashSet::•<dart.core::int>();
for (dart.core::int i = 0; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- result.{dart.core::Set::add}(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool};
+ result.{dart.core::Set::add}(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool};
}
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(covariant-by-class dart.core::int* element) → void {
- this.{dart.core::List::[]=}(let final dart.core::int #t2 = this.{dart.core::List::length}{dart.core::int} in let final dart.core::int #t3 = this.{dart.core::List::length} = #t2.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t2, element){(dart.core::int, dart.core::int*) → void};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ add(covariant-by-class dart.core::int element) → void {
+ this.{dart.core::List::[]=}(let final dart.core::int #t2 = this.{dart.core::List::length}{dart.core::int} in let final dart.core::int #t3 = this.{dart.core::List::length} = #t2.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t2, element){(dart.core::int, dart.core::int) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ addAll(covariant-by-class dart.core::Iterable<dart.core::int*> iterable) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ addAll(covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
dart.core::int i = this.{dart.core::List::length}{dart.core::int};
{
- dart.core::Iterator<dart.core::int*> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int*>};
+ dart.core::Iterator<dart.core::int> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int>};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
- dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int*};
+ dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
assert(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} i || (throw new dart.core::ConcurrentModificationError::•(this)));
- this.{dart.collection::ListMixin::add}(element){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(dart.core::Object? element) → dart.core::bool {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ remove(dart.core::Object? element) → dart.core::bool {
for (dart.core::int i = 0; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element) {
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element) {
this.{dart.collection::ListMixin::_closeGap}(i, i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return true;
}
}
return false;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _closeGap(dart.core::int start, dart.core::int end) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _closeGap(dart.core::int start, dart.core::int end) → void {
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
assert(0.{dart.core::num::<=}(start){(dart.core::num) → dart.core::bool});
assert(start.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool});
assert(end.{dart.core::num::<=}(length){(dart.core::num) → dart.core::bool});
dart.core::int size = end.{dart.core::num::-}(start){(dart.core::num) → dart.core::int};
for (dart.core::int i = end; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(i.{dart.core::num::-}(size){(dart.core::num) → dart.core::int}, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(i.{dart.core::num::-}(size){(dart.core::num) → dart.core::int}, this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
this.{dart.core::List::length} = length.{dart.core::num::-}(size){(dart.core::num) → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((dart.core::int*) → dart.core::bool test) → void {
- this.{dart.collection::ListMixin::_filter}(test, false){((dart.core::int*) → dart.core::bool, dart.core::bool) → void};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeWhere((dart.core::int) → dart.core::bool test) → void {
+ this.{dart.collection::ListMixin::_filter}(test, false){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((dart.core::int*) → dart.core::bool test) → void {
- this.{dart.collection::ListMixin::_filter}(test, true){((dart.core::int*) → dart.core::bool, dart.core::bool) → void};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ retainWhere((dart.core::int) → dart.core::bool test) → void {
+ this.{dart.collection::ListMixin::_filter}(test, true){((dart.core::int) → dart.core::bool, dart.core::bool) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int*) → dart.core::bool test, dart.core::bool retainMatching) → void {
- dart.core::List<dart.core::int*> retained = dart.core::_GrowableList::•<dart.core::int*>(0);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _filter((dart.core::int) → dart.core::bool test, dart.core::bool retainMatching) → void {
+ dart.core::List<dart.core::int> retained = dart.core::_GrowableList::•<dart.core::int>(0);
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- dart.core::int* element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*};
- if(test(element){(dart.core::int*) → dart.core::bool} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} retainMatching) {
- retained.{dart.core::List::add}(element){(dart.core::int*) → void};
+ dart.core::int element = this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int};
+ if(test(element){(dart.core::int) → dart.core::bool} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} retainMatching) {
+ retained.{dart.core::List::add}(element){(dart.core::int) → void};
}
if(!(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
throw new dart.core::ConcurrentModificationError::•(this);
}
}
if(!(retained.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int})) {
- this.{dart.collection::ListMixin::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(0, retained.{dart.core::List::length}{dart.core::int}, retained){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
this.{dart.core::List::length} = retained.{dart.core::List::length}{dart.core::int};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ clear() → void {
this.{dart.core::List::length} = 0;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ cast<R extends dart.core::Object? = dynamic>() → dart.core::List<main::_WithListMixin&Object&ListMixin::cast::R%>
- return dart.core::List::castFrom<dart.core::int*, main::_WithListMixin&Object&ListMixin::cast::R%>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int* {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ cast<R extends dart.core::Object? = dynamic>() → dart.core::List<main::_WithListMixin&Object&ListMixin::cast::R%>
+ return dart.core::List::castFrom<dart.core::int, main::_WithListMixin&Object&ListMixin::cast::R%>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeLast() → dart.core::int {
if(this.{dart.core::List::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0) {
throw dart._internal::IterableElementError::noElement();
}
- dart.core::int* result = this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*};
+ dart.core::int result = this.{dart.core::List::[]}(this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int};
this.{dart.core::List::length} = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sort([(dart.core::int*, dart.core::int*) →? dart.core::int compare = #C2]) → void {
- dart._internal::Sort::sort<dart.core::int*>(this, let final (dart.core::int*, dart.core::int*) →? dart.core::int #t4 = compare in #t4 == null ?{(dart.core::int*, dart.core::int*) → dart.core::int} #C6 : #t4{(dart.core::int*, dart.core::int*) → dart.core::int});
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sort([(dart.core::int, dart.core::int) →? dart.core::int compare = #C2]) → void {
+ dart._internal::Sort::sort<dart.core::int>(this, let final (dart.core::int, dart.core::int) →? dart.core::int #t4 = compare in #t4 == null ?{(dart.core::int, dart.core::int) → dart.core::int} #C6 : #t4{(dart.core::int, dart.core::int) → dart.core::int});
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ shuffle([dart.math::Random? random = #C2]) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ shuffle([dart.math::Random? random = #C2]) → void {
random == null ?{dart.math::Random} random = dart.math::Random::•() : null;
if(random{dart.math::Random} == null)
throw "!";
@@ -293,58 +289,58 @@
while (length.{dart.core::num::>}(1){(dart.core::num) → dart.core::bool}) {
dart.core::int pos = random{dart.math::Random}.{dart.math::Random::nextInt}(length){(dart.core::int) → dart.core::int};
length = length.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
- dart.core::int* tmp = this.{dart.core::List::[]}(length){(dart.core::int) → dart.core::int*};
- this.{dart.core::List::[]=}(length, this.{dart.core::List::[]}(pos){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
- this.{dart.core::List::[]=}(pos, tmp){(dart.core::int, dart.core::int*) → void};
+ dart.core::int tmp = this.{dart.core::List::[]}(length){(dart.core::int) → dart.core::int};
+ this.{dart.core::List::[]=}(length, this.{dart.core::List::[]}(pos){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
+ this.{dart.core::List::[]=}(pos, tmp){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ asMap() → dart.core::Map<dart.core::int, dart.core::int*> {
- return new dart._internal::ListMapView::•<dart.core::int*>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ asMap() → dart.core::Map<dart.core::int, dart.core::int> {
+ return new dart._internal::ListMapView::•<dart.core::int>(this);
}
- operator /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(covariant-by-class dart.core::List<dart.core::int*> other) → dart.core::List<dart.core::int*>
+ operator /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ +(covariant-by-class dart.core::List<dart.core::int> other) → dart.core::List<dart.core::int>
return block {
- final dart.core::List<dart.core::int*> #t5 = dart.core::List::of<dart.core::int*>(this);
- #t5.{dart.core::List::addAll}{Invariant}(other){(dart.core::Iterable<dart.core::int*>) → void};
+ final dart.core::List<dart.core::int> #t5 = dart.core::List::of<dart.core::int>(this);
+ #t5.{dart.core::List::addAll}{Invariant}(other){(dart.core::Iterable<dart.core::int>) → void};
} =>#t5;
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int*> {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ sublist(dart.core::int start, [dart.core::int? end = #C2]) → dart.core::List<dart.core::int> {
dart.core::int listLength = this.{dart.core::List::length}{dart.core::int};
end == null ?{dart.core::int} end = listLength : null;
if(end{dart.core::int} == null)
throw "!";
dart.core::RangeError::checkValidRange(start, end{dart.core::int}, listLength);
- return dart.core::List::from<dart.core::int*>(this.{dart.collection::ListMixin::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int*>});
+ return dart.core::List::from<dart.core::int>(this.{dart.collection::ListMixin::getRange}(start, end{dart.core::int}){(dart.core::int, dart.core::int) → dart.core::Iterable<dart.core::int>});
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable<dart.core::int*> {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ getRange(dart.core::int start, dart.core::int end) → dart.core::Iterable<dart.core::int> {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
- return new dart._internal::SubListIterable::•<dart.core::int*>(this, start, end);
+ return new dart._internal::SubListIterable::•<dart.core::int>(this, start, end);
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(dart.core::int start, dart.core::int end) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeRange(dart.core::int start, dart.core::int end) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(end.{dart.core::num::>}(start){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(start, end){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
- dart.core::int* value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int*} #t6 : #t6{dart.core::int*};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ fillRange(dart.core::int start, dart.core::int end, [covariant-by-class dart.core::int? fill = #C2]) → void {
+ dart.core::int value = let dart.core::int? #t6 = fill in #t6 == null ?{dart.core::int} #t6 : #t6{dart.core::int};
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
for (dart.core::int i = start; i.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(i, value){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(i, value){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int*> iterable, [dart.core::int skipCount = #C7]) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int> iterable, [dart.core::int skipCount = #C7]) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
dart.core::int length = end.{dart.core::num::-}(start){(dart.core::num) → dart.core::int};
if(length =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0)
return;
dart.core::RangeError::checkNotNegative(skipCount, "skipCount");
- dart.core::List<dart.core::int*> otherList;
+ dart.core::List<dart.core::int> otherList;
dart.core::int otherStart;
- if(iterable is{ForNonNullableByDefault} dart.core::List<dart.core::int*>) {
- otherList = iterable{dart.core::List<dart.core::int*>};
+ if(iterable is{ForNonNullableByDefault} dart.core::List<dart.core::int>) {
+ otherList = iterable{dart.core::List<dart.core::int>};
otherStart = skipCount;
}
else {
- otherList = iterable.{dart.core::Iterable::skip}(skipCount){(dart.core::int) → dart.core::Iterable<dart.core::int*>}.{dart.core::Iterable::toList}(growable: false){({growable: dart.core::bool}) → dart.core::List<dart.core::int*>};
+ otherList = iterable.{dart.core::Iterable::skip}(skipCount){(dart.core::int) → dart.core::Iterable<dart.core::int>}.{dart.core::Iterable::toList}(growable: false){({growable: dart.core::bool}) → dart.core::List<dart.core::int>};
otherStart = 0;
}
if(otherStart.{dart.core::num::+}(length){(dart.core::num) → dart.core::int}.{dart.core::num::>}(otherList.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}) {
@@ -352,29 +348,29 @@
}
if(otherStart.{dart.core::num::<}(start){(dart.core::num) → dart.core::bool}) {
for (dart.core::int i = length.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
}
else {
for (dart.core::int i = 0; i.{dart.core::num::<}(length){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int*}){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(start.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}, otherList.{dart.core::List::[]}(otherStart.{dart.core::num::+}(i){(dart.core::num) → dart.core::int}){(dart.core::int) → dart.core::int}){(dart.core::int, dart.core::int) → void};
}
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int*> newContents) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ replaceRange(dart.core::int start, dart.core::int end, covariant-by-class dart.core::Iterable<dart.core::int> newContents) → void {
dart.core::RangeError::checkValidRange(start, end, this.{dart.core::List::length}{dart.core::int});
if(start =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
- this.{dart.collection::ListMixin::addAll}(newContents){(dart.core::Iterable<dart.core::int*>) → void};
+ this.{dart.collection::ListMixin::addAll}(newContents){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(newContents is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>)) {
- newContents = newContents.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int*>};
+ newContents = newContents.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int>};
}
dart.core::int removeLength = end.{dart.core::num::-}(start){(dart.core::num) → dart.core::int};
dart.core::int insertLength = newContents.{dart.core::Iterable::length}{dart.core::int};
if(removeLength.{dart.core::num::>=}(insertLength){(dart.core::num) → dart.core::bool}) {
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
- this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
if(removeLength.{dart.core::num::>}(insertLength){(dart.core::num) → dart.core::bool}) {
this.{dart.collection::ListMixin::_closeGap}(insertEnd, end){(dart.core::int, dart.core::int) → void};
}
@@ -383,15 +379,15 @@
if(end =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
dart.core::int i = start;
{
- dart.core::Iterator<dart.core::int*> :sync-for-iterator = newContents.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int*>};
+ dart.core::Iterator<dart.core::int> :sync-for-iterator = newContents.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int>};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
- dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int*};
+ dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
if(i.{dart.core::num::<}(end){(dart.core::num) → dart.core::bool}) {
- this.{dart.core::List::[]=}(i, element){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(i, element){(dart.core::int, dart.core::int) → void};
}
else {
- this.{dart.collection::ListMixin::add}(element){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
}
i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
@@ -403,77 +399,77 @@
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
dart.core::int insertEnd = start.{dart.core::num::+}(insertLength){(dart.core::num) → dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(delta){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int*}){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(insertEnd.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
- this.{dart.collection::ListMixin::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(insertEnd, oldLength, this, end){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
- this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(start, insertEnd, newContents){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class dart.core::Object? element, [dart.core::int start = #C7]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexOf(covariant-by-class dart.core::Object? element, [dart.core::int start = #C7]) → dart.core::int {
if(start.{dart.core::num::<}(0){(dart.core::num) → dart.core::bool})
start = 0;
for (dart.core::int i = start; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexWhere((dart.core::int*) → dart.core::bool test, [dart.core::int start = #C7]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ indexWhere((dart.core::int) → dart.core::bool test, [dart.core::int start = #C7]) → dart.core::int {
if(start.{dart.core::num::<}(0){(dart.core::num) → dart.core::bool})
start = 0;
for (dart.core::int i = start; i.{dart.core::num::<}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexOf(covariant-by-class dart.core::Object? element, [dart.core::int? start = #C2]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexOf(covariant-by-class dart.core::Object? element, [dart.core::int? start = #C2]) → dart.core::int {
if(start == null || start{dart.core::int}.{dart.core::num::>=}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool})
start = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
if(start{dart.core::int} == null)
throw "!";
for (dart.core::int i = start{dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
+ if(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int} =={dart.core::Object::==}{(dart.core::Object) → dart.core::bool} element)
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexWhere((dart.core::int*) → dart.core::bool test, [dart.core::int? start = #C2]) → dart.core::int {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ lastIndexWhere((dart.core::int) → dart.core::bool test, [dart.core::int? start = #C2]) → dart.core::int {
if(start == null || start{dart.core::int}.{dart.core::num::>=}(this.{dart.core::List::length}{dart.core::int}){(dart.core::num) → dart.core::bool})
start = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(1){(dart.core::num) → dart.core::int};
if(start{dart.core::int} == null)
throw "!";
for (dart.core::int i = start{dart.core::int}; i.{dart.core::num::>=}(0){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::-}(1){(dart.core::num) → dart.core::int}) {
- if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int*}){(dart.core::int*) → dart.core::bool})
+ if(test(this.{dart.core::List::[]}(i){(dart.core::int) → dart.core::int}){(dart.core::int) → dart.core::bool})
return i;
}
return 1.{dart.core::int::unary-}(){() → dart.core::int};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insert(dart.core::int index, covariant-by-class dart.core::int* element) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insert(dart.core::int index, covariant-by-class dart.core::int element) → void {
dart._internal::checkNotNullable<dart.core::int>(index, "index");
dart.core::int length = this.{dart.core::List::length}{dart.core::int};
dart.core::RangeError::checkValueInInterval(index, 0, length, "index");
- this.{dart.collection::ListMixin::add}(element){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(element){(dart.core::int) → void};
if(!(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} length)) {
- this.{dart.collection::ListMixin::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
- this.{dart.core::List::[]=}(index, element){(dart.core::int, dart.core::int*) → void};
+ this.{dart.collection::ListMixin::setRange}(index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, length.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
+ this.{dart.core::List::[]=}(index, element){(dart.core::int, dart.core::int) → void};
}
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(dart.core::int index) → dart.core::int* {
- dart.core::int* result = this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int*};
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ removeAt(dart.core::int index) → dart.core::int {
+ dart.core::int result = this.{dart.core::List::[]}(index){(dart.core::int) → dart.core::int};
this.{dart.collection::ListMixin::_closeGap}(index, index.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}){(dart.core::int, dart.core::int) → void};
return result;
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int*> iterable) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ insertAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
dart.core::RangeError::checkValueInInterval(index, 0, this.{dart.core::List::length}{dart.core::int}, "index");
if(index =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} this.{dart.core::List::length}{dart.core::int}) {
- this.{dart.collection::ListMixin::addAll}(iterable){(dart.core::Iterable<dart.core::int*>) → void};
+ this.{dart.collection::ListMixin::addAll}(iterable){(dart.core::Iterable<dart.core::int>) → void};
return;
}
if(!(iterable is{ForNonNullableByDefault} dart._internal::EfficientLengthIterable<dynamic>) || dart.core::identical(iterable, this)) {
- iterable = iterable.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int*>};
+ iterable = iterable.{dart.core::Iterable::toList}(){({growable: dart.core::bool}) → dart.core::List<dart.core::int>};
}
dart.core::int insertionLength = iterable.{dart.core::Iterable::length}{dart.core::int};
if(insertionLength =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} 0) {
@@ -481,7 +477,7 @@
}
dart.core::int oldLength = this.{dart.core::List::length}{dart.core::int};
for (dart.core::int i = oldLength.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int}; i.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}; i = i.{dart.core::num::+}(1){(dart.core::num) → dart.core::int}) {
- this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int*}){(dart.core::int*) → void};
+ this.{dart.collection::ListMixin::add}(this.{dart.core::List::[]}(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool} ?{dart.core::int} i : 0){(dart.core::int) → dart.core::int}){(dart.core::int) → void};
}
if(!(iterable.{dart.core::Iterable::length}{dart.core::int} =={dart.core::num::==}{(dart.core::Object) → dart.core::bool} insertionLength)) {
this.{dart.core::List::length} = this.{dart.core::List::length}{dart.core::int}.{dart.core::num::-}(insertionLength){(dart.core::num) → dart.core::int};
@@ -489,51 +485,42 @@
}
dart.core::int oldCopyStart = index.{dart.core::num::+}(insertionLength){(dart.core::num) → dart.core::int};
if(oldCopyStart.{dart.core::num::<}(oldLength){(dart.core::num) → dart.core::bool}) {
- this.{dart.collection::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(oldCopyStart, oldLength, this, index){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
- this.{dart.collection::ListMixin::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int*>) → void};
+ this.{dart.collection::ListMixin::setAll}(index, iterable){(dart.core::int, dart.core::Iterable<dart.core::int>) → void};
}
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int*> iterable) → void {
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ setAll(dart.core::int index, covariant-by-class dart.core::Iterable<dart.core::int> iterable) → void {
if(iterable is{ForNonNullableByDefault} dart.core::List<dynamic>) {
- this.{dart.collection::ListMixin::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int*>, [dart.core::int]) → void};
+ this.{dart.collection::ListMixin::setRange}(index, index.{dart.core::num::+}(iterable.{dart.core::Iterable::length}{dart.core::int}){(dart.core::num) → dart.core::int}, iterable){(dart.core::int, dart.core::int, dart.core::Iterable<dart.core::int>, [dart.core::int]) → void};
}
else {
{
- dart.core::Iterator<dart.core::int*> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int*>};
+ dart.core::Iterator<dart.core::int> :sync-for-iterator = iterable.{dart.core::Iterable::iterator}{dart.core::Iterator<dart.core::int>};
for (; :sync-for-iterator.{dart.core::Iterator::moveNext}(){() → dart.core::bool}; ) {
- dart.core::int* element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int*};
+ dart.core::int element = :sync-for-iterator.{dart.core::Iterator::current}{dart.core::int};
{
- this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t7, element){(dart.core::int, dart.core::int*) → void};
+ this.{dart.core::List::[]=}(let final dart.core::int #t7 = index in let final dart.core::int #t8 = index = #t7.{dart.core::num::+}(1){(dart.core::num) → dart.core::int} in #t7, element){(dart.core::int, dart.core::int) → void};
}
}
}
}
}
- get /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int*>
- return new dart._internal::ReversedListIterable::•<dart.core::int*>(this);
- method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
+ get /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ reversed() → dart.core::Iterable<dart.core::int>
+ return new dart._internal::ReversedListIterable::•<dart.core::int>(this);
+ method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ toString() → dart.core::String
return dart.collection::IterableBase::iterableToFullString(this, "[", "]");
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
- static method /*isNonNullableByDefault, from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
+ static method /* from org-dartlang-sdk:///sdk/lib/collection/list.dart */ _compareAny(dynamic a, dynamic b) → dart.core::int {
return dart.core::Comparable::compare(a as{ForNonNullableByDefault} dart.core::Comparable<dynamic>, b as{ForNonNullableByDefault} dart.core::Comparable<dynamic>);
}
}
class WithListMixin extends main::_WithListMixin&Object&ListMixin {
- field dart.core::int* length = 2;
- synthetic constructor •() → main::WithListMixin*
+ field dart.core::int length = 2;
+ synthetic constructor •() → main::WithListMixin
: super main::_WithListMixin&Object&ListMixin::•()
;
- operator [](dart.core::int* index) → dart.core::int*
+ operator [](dart.core::int index) → dart.core::int
return index;
- operator []=(dart.core::int* index, covariant-by-class dart.core::int* value) → void
+ operator []=(dart.core::int index, covariant-by-class dart.core::int value) → void
return null;
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml
index 17f8538..30b121e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class A extends Object with B {
foo() {}
}
@@ -27,7 +26,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class A extends Object with B {
foo() {}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect
index 5d03f68..b7af66b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.1.expect
@@ -2,41 +2,21 @@
library from "org-dartlang-test:///main.dart" as main {
abstract class _A&Object&B extends dart.core::Object implements main::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → main::_A&Object&B*
+ const synthetic constructor •() → main::_A&Object&B
: super dart.core::Object::•()
;
method bar() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class A extends main::_A&Object&B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super main::_A&Object&B::•()
;
method foo() → dynamic {}
}
class B extends dart.core::Object {
- synthetic constructor •() → main::B*
+ synthetic constructor •() → main::B
: super dart.core::Object::•()
;
method bar() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect
index 5d03f68..b7af66b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_23.yaml.world.2.expect
@@ -2,41 +2,21 @@
library from "org-dartlang-test:///main.dart" as main {
abstract class _A&Object&B extends dart.core::Object implements main::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → main::_A&Object&B*
+ const synthetic constructor •() → main::_A&Object&B
: super dart.core::Object::•()
;
method bar() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class A extends main::_A&Object&B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super main::_A&Object&B::•()
;
method foo() → dynamic {}
}
class B extends dart.core::Object {
- synthetic constructor •() → main::B*
+ synthetic constructor •() → main::B
: super dart.core::Object::•()
;
method bar() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_24.yaml b/pkg/front_end/testcases/incremental/no_outline_change_24.yaml
index 3ddee3f..a68ba95 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_24.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_24.yaml
@@ -13,7 +13,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
void foo() {}
void foo() {}
expectedLibraryCount: 1
@@ -26,7 +25,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
void foo() {}
void foo() {}
expectedLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.1.expect
index 69cda08..c62e3af 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.1.expect
@@ -3,10 +3,10 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:6: Error: 'foo' is already declared in this scope.
+// org-dartlang-test:///main.dart:2:6: Error: 'foo' is already declared in this scope.
// void foo() {}
// ^^^
-// org-dartlang-test:///main.dart:2:6: Context: Previous declaration of 'foo'.
+// org-dartlang-test:///main.dart:1:6: Context: Previous declaration of 'foo'.
// void foo() {}
// ^^^
//
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.2.expect
index 69cda08..c62e3af 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_24.yaml.world.2.expect
@@ -3,10 +3,10 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:3:6: Error: 'foo' is already declared in this scope.
+// org-dartlang-test:///main.dart:2:6: Error: 'foo' is already declared in this scope.
// void foo() {}
// ^^^
-// org-dartlang-test:///main.dart:2:6: Context: Previous declaration of 'foo'.
+// org-dartlang-test:///main.dart:1:6: Context: Previous declaration of 'foo'.
// void foo() {}
// ^^^
//
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_25.yaml b/pkg/front_end/testcases/incremental/no_outline_change_25.yaml
index 8db1940..e364005 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_25.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_25.yaml
@@ -15,7 +15,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class Foo {
void bar() {
print("bar 1");
@@ -37,7 +36,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class Foo {
void bar() {
print("bar 1");
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.1.expect
index 3d25246..b454911 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.1.expect
@@ -3,37 +3,27 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:10:5: Error: Can't use 'bar' because it is declared more than once.
+// org-dartlang-test:///main.dart:5:8: Error: 'bar' is already declared in this scope.
+// void bar() {
+// ^^^
+// org-dartlang-test:///main.dart:2:8: Context: Previous declaration of 'bar'.
+// void bar() {
+// ^^^
+//
+// org-dartlang-test:///main.dart:9:5: Error: Can't use 'bar' because it is declared more than once.
// bar();
// ^
//
-// org-dartlang-test:///main.dart:6:8: Error: 'bar' is already declared in this scope.
-// void bar() {
-// ^^^
-// org-dartlang-test:///main.dart:3:8: Context: Previous declaration of 'bar'.
-// void bar() {
-// ^^^
-//
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
method bar() → void {
dart.core::print("bar 1");
}
method callBar() → void {
- invalid-expression "org-dartlang-test:///main.dart:10:5: Error: Can't use 'bar' because it is declared more than once.\n bar();\n ^"{dynamic}.call();
+ invalid-expression "org-dartlang-test:///main.dart:9:5: Error: Can't use 'bar' because it is declared more than once.\n bar();\n ^"{dynamic}.call();
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.2.expect
index 3d25246..b454911 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_25.yaml.world.2.expect
@@ -3,37 +3,27 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:10:5: Error: Can't use 'bar' because it is declared more than once.
+// org-dartlang-test:///main.dart:5:8: Error: 'bar' is already declared in this scope.
+// void bar() {
+// ^^^
+// org-dartlang-test:///main.dart:2:8: Context: Previous declaration of 'bar'.
+// void bar() {
+// ^^^
+//
+// org-dartlang-test:///main.dart:9:5: Error: Can't use 'bar' because it is declared more than once.
// bar();
// ^
//
-// org-dartlang-test:///main.dart:6:8: Error: 'bar' is already declared in this scope.
-// void bar() {
-// ^^^
-// org-dartlang-test:///main.dart:3:8: Context: Previous declaration of 'bar'.
-// void bar() {
-// ^^^
-//
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
method bar() → void {
dart.core::print("bar 1");
}
method callBar() → void {
- invalid-expression "org-dartlang-test:///main.dart:10:5: Error: Can't use 'bar' because it is declared more than once.\n bar();\n ^"{dynamic}.call();
+ invalid-expression "org-dartlang-test:///main.dart:9:5: Error: Can't use 'bar' because it is declared more than once.\n bar();\n ^"{dynamic}.call();
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_26.yaml b/pkg/front_end/testcases/incremental/no_outline_change_26.yaml
index cbfff15..6fe95fa 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_26.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_26.yaml
@@ -15,7 +15,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class A1 {
A1.foo(){}
A1.foo(){}
@@ -33,7 +32,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class A1 {
A1.foo(){}
A1.foo(){}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.1.expect
index df38521..f527185 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.1.expect
@@ -3,33 +3,23 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:3: Error: 'A1.foo' is already declared in this scope.
+// org-dartlang-test:///main.dart:3:3: Error: 'A1.foo' is already declared in this scope.
// A1.foo(){}
// ^^^^^^
-// org-dartlang-test:///main.dart:3:3: Context: Previous declaration of 'A1.foo'.
+// org-dartlang-test:///main.dart:2:3: Context: Previous declaration of 'A1.foo'.
// A1.foo(){}
// ^^^^^^
//
-// org-dartlang-test:///main.dart:7:7: Error: Can't use 'foo' because it is declared more than once.
+// org-dartlang-test:///main.dart:6:7: Error: Can't use 'foo' because it is declared more than once.
// new A1.foo();
// ^
//
class A1 extends dart.core::Object {
- constructor foo() → main::A1*
+ constructor foo() → main::A1
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- invalid-expression "org-dartlang-test:///main.dart:7:7: Error: Can't use 'foo' because it is declared more than once.\n new A1.foo();\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:6:7: Error: Can't use 'foo' because it is declared more than once.\n new A1.foo();\n ^";
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.2.expect
index df38521..f527185 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_26.yaml.world.2.expect
@@ -3,33 +3,23 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:3: Error: 'A1.foo' is already declared in this scope.
+// org-dartlang-test:///main.dart:3:3: Error: 'A1.foo' is already declared in this scope.
// A1.foo(){}
// ^^^^^^
-// org-dartlang-test:///main.dart:3:3: Context: Previous declaration of 'A1.foo'.
+// org-dartlang-test:///main.dart:2:3: Context: Previous declaration of 'A1.foo'.
// A1.foo(){}
// ^^^^^^
//
-// org-dartlang-test:///main.dart:7:7: Error: Can't use 'foo' because it is declared more than once.
+// org-dartlang-test:///main.dart:6:7: Error: Can't use 'foo' because it is declared more than once.
// new A1.foo();
// ^
//
class A1 extends dart.core::Object {
- constructor foo() → main::A1*
+ constructor foo() → main::A1
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- invalid-expression "org-dartlang-test:///main.dart:7:7: Error: Can't use 'foo' because it is declared more than once.\n new A1.foo();\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:6:7: Error: Can't use 'foo' because it is declared more than once.\n new A1.foo();\n ^";
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_27.yaml b/pkg/front_end/testcases/incremental/no_outline_change_27.yaml
index 380c552..2b679d0 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_27.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_27.yaml
@@ -12,13 +12,11 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
libMethod();
}
lib.dart: |
- // @dart=2.9
libMethod() {
print("Hello from lib!");
}
@@ -42,7 +40,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
libMethod();
@@ -59,7 +56,6 @@
- lib.dart
sources:
lib.dart: |
- // @dart=2.9
libMethod() {
print("Hello from lib!!");
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_28.yaml b/pkg/front_end/testcases/incremental/no_outline_change_28.yaml
index ead8930..091f7c5 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_28.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_28.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
abstract class A {
a() {
print("Class A method a");
@@ -53,7 +52,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
abstract class A {
a() {
print("Class A method a!");
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.1.expect
index ce393c8..a4f41ea 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.1.expect
@@ -2,22 +2,12 @@
library from "org-dartlang-test:///main.dart" as main {
abstract class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
method a() → dynamic {
dart.core::print("Class A method a");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class B extends main::A /*isMixinDeclaration*/ {
method b() → dynamic {
@@ -25,19 +15,9 @@
}
}
abstract class _C&A&B extends dart.core::Object implements main::A, main::B /*isAnonymousMixin*/ {
- synthetic constructor •() → main::_C&A&B*
+ synthetic constructor •() → main::_C&A&B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class C extends main::_C&A&B /*isMixinDeclaration*/ {
method c() → dynamic {
@@ -45,7 +25,7 @@
}
}
abstract class _D&A&B extends main::A implements main::B /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → main::_D&A&B*
+ synthetic constructor •() → main::_D&A&B
: super main::A::•()
;
method b() → dynamic {
@@ -53,7 +33,7 @@
}
}
abstract class _D&A&B&C extends main::_D&A&B implements main::C /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → main::_D&A&B&C*
+ synthetic constructor •() → main::_D&A&B&C
: super main::_D&A&B::•()
;
method c() → dynamic {
@@ -61,7 +41,7 @@
}
}
class D extends main::_D&A&B&C {
- synthetic constructor •() → main::D*
+ synthetic constructor •() → main::D
: super main::_D&A&B&C::•()
;
method d() → dynamic {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.2.expect
index b0d2f22..eaed6d4 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_28.yaml.world.2.expect
@@ -2,22 +2,12 @@
library from "org-dartlang-test:///main.dart" as main {
abstract class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
method a() → dynamic {
dart.core::print("Class A method a!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class B extends main::A /*isMixinDeclaration*/ {
method b() → dynamic {
@@ -25,19 +15,9 @@
}
}
abstract class _C&A&B extends dart.core::Object implements main::A, main::B /*isAnonymousMixin*/ {
- synthetic constructor •() → main::_C&A&B*
+ synthetic constructor •() → main::_C&A&B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class C extends main::_C&A&B /*isMixinDeclaration*/ {
method c() → dynamic {
@@ -45,7 +25,7 @@
}
}
abstract class _D&A&B extends main::A implements main::B /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → main::_D&A&B*
+ synthetic constructor •() → main::_D&A&B
: super main::A::•()
;
method b() → dynamic {
@@ -53,7 +33,7 @@
}
}
abstract class _D&A&B&C extends main::_D&A&B implements main::C /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → main::_D&A&B&C*
+ synthetic constructor •() → main::_D&A&B&C
: super main::_D&A&B::•()
;
method c() → dynamic {
@@ -61,7 +41,7 @@
}
}
class D extends main::_D&A&B&C {
- synthetic constructor •() → main::D*
+ synthetic constructor •() → main::D
: super main::_D&A&B&C::•()
;
method d() → dynamic {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml
index 7e1bfa9..278e445 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml
@@ -10,7 +10,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
@@ -24,7 +23,6 @@
print(const Foo());
}
libA.dart: |
- // @dart=2.9
whatever() async {
await null;
return "hello";
@@ -38,7 +36,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect
index fa9019c..b512f86 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.1.expect
@@ -11,21 +11,12 @@
import "org-dartlang-test:///libA.dart";
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → main::Foo*
+ const constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "Foo!";
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic async /* futureValueType= dynamic */ {
await libA::whatever();
@@ -40,6 +31,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Foo. (from org-dartlang-test:///main.dart:4:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect
index e0d18ed..7d4f754 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_3.yaml.world.2.expect
@@ -11,21 +11,12 @@
import "org-dartlang-test:///libA.dart";
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → main::Foo*
+ const constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "Foo!";
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic async /* futureValueType= dynamic */ {
await libA::whatever();
@@ -41,6 +32,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Foo. (from org-dartlang-test:///main.dart:4:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml
index 1f532f7..c8fa4c6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib2.dart" show getter, setter, method, Bar;
import "lib1.dart" show getter, setter, method, Bar;
main() {
@@ -21,7 +20,6 @@
setter = 42;
}
lib1.dart: |
- // @dart=2.9
export "lib2.dart";
class Foo {
Foo() {
@@ -29,7 +27,6 @@
}
}
lib2.dart: |
- // @dart=2.9
String get getter => "hello";
void set setter(int i) {}
void method() {}
@@ -47,7 +44,6 @@
- lib1.dart
sources:
lib1.dart: |
- // @dart=2.9
export "lib2.dart";
class Foo {
Foo() {
@@ -64,7 +60,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
String get getter => "hello";
void set setter(int i) {}
void method() {}
@@ -83,7 +78,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib2.dart" show getter, setter, method, Bar;
import "lib1.dart" show getter, setter, method, Bar;
main() {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.1.expect
index d1a27b8..dd25ba4 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.1.expect
@@ -8,39 +8,19 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static get getter() → dart.core::String*
+ static get getter() → dart.core::String
return "hello";
- static set setter(dart.core::int* i) → void {}
+ static set setter(dart.core::int i) → void {}
static method method() → void {}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -49,7 +29,7 @@
import "org-dartlang-test:///lib1.dart" show getter, setter, method, Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
lib2::method();
lib2::getter;
lib2::setter = 42;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.2.expect
index c983226..605792f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.2.expect
@@ -8,41 +8,21 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static get getter() → dart.core::String*
+ static get getter() → dart.core::String
return "hello";
- static set setter(dart.core::int* i) → void {}
+ static set setter(dart.core::int i) → void {}
static method method() → void {}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -51,7 +31,7 @@
import "org-dartlang-test:///lib1.dart" show getter, setter, method, Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
lib2::method();
lib2::getter;
lib2::setter = 42;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.3.expect
index d408f4d..3d2b62b 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.3.expect
@@ -8,43 +8,23 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {
dart.core::print("hello!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static get getter() → dart.core::String*
+ static get getter() → dart.core::String
return "hello";
- static set setter(dart.core::int* i) → void {}
+ static set setter(dart.core::int i) → void {}
static method method() → void {}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -53,7 +33,7 @@
import "org-dartlang-test:///lib1.dart" show getter, setter, method, Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
lib2::method();
lib2::getter;
lib2::setter = 42;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.4.expect b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.4.expect
index 49eb8f41..d74683f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_33.yaml.world.4.expect
@@ -8,43 +8,23 @@
export "org-dartlang-test:///lib2.dart";
class Foo extends dart.core::Object {
- constructor •() → lib1::Foo*
+ constructor •() → lib1::Foo
: super dart.core::Object::•() {
dart.core::print("Foo!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
class Bar extends dart.core::Object {
- constructor •() → lib2::Bar*
+ constructor •() → lib2::Bar
: super dart.core::Object::•() {
dart.core::print("hello!");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static get getter() → dart.core::String*
+ static get getter() → dart.core::String
return "hello";
- static set setter(dart.core::int* i) → void {}
+ static set setter(dart.core::int i) → void {}
static method method() → void {}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -53,7 +33,7 @@
import "org-dartlang-test:///lib1.dart" show getter, setter, method, Bar;
static method main() → dynamic {
- lib2::Bar* bar = new lib2::Bar::•();
+ lib2::Bar bar = new lib2::Bar::•();
lib2::method();
lib2::getter;
lib2::setter = 42;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml
index 7bca389..2f11a3e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib1.dart" as l1;
import "lib2.dart";
@@ -27,7 +26,6 @@
lib1();
}
lib1.dart: |
- // @dart=2.9
export "main.dart";
import "main.dart";
import "main.dart" as m;
@@ -40,7 +38,6 @@
a.method2();
}
lib2.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib1.dart" as l1;
extension Extension3 on Class {
@@ -60,7 +57,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib1.dart" as l1;
import "lib2.dart";
@@ -86,7 +82,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
import "lib1.dart";
import "lib1.dart" as l1;
extension Extension3 on Class {
@@ -108,7 +103,6 @@
- lib1.dart
sources:
lib1.dart: |
- // @dart=2.9
export "main.dart";
import "main.dart";
import "main.dart" as m;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.1.expect
index c1889db..fe03bc9 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.1.expect
@@ -8,15 +8,15 @@
import "org-dartlang-test:///main.dart";
import "org-dartlang-test:///main.dart" as m;
- extension Extension2 on main::Class* {
+ extension Extension2 on main::Class {
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(lowered final main::Class* #this) → void {}
- static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class #this) → () → void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
}
@@ -26,15 +26,15 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib1.dart" as l1;
- extension Extension3 on main::Class* {
+ extension Extension3 on main::Class {
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(lowered final main::Class* #this) → void {}
- static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class #this) → () → void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
}
@@ -47,29 +47,19 @@
import "org-dartlang-test:///lib2.dart" as l2;
class Class extends dart.core::Object {
- synthetic constructor •() → main::Class*
+ synthetic constructor •() → main::Class
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension on main::Class* {
+ extension Extension on main::Class {
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(lowered final main::Class* #this) → void {}
- static method Extension|get#method(lowered final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class #this) → void {}
+ static method Extension|get#method(lowered final main::Class #this) → () → void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
lib1::lib1();
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.2.expect
index 7d35940..530efd6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.2.expect
@@ -8,15 +8,15 @@
import "org-dartlang-test:///main.dart";
import "org-dartlang-test:///main.dart" as m;
- extension Extension2 on main::Class* {
+ extension Extension2 on main::Class {
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(lowered final main::Class* #this) → void {}
- static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class #this) → () → void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
}
@@ -26,15 +26,15 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib1.dart" as l1;
- extension Extension3 on main::Class* {
+ extension Extension3 on main::Class {
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(lowered final main::Class* #this) → void {}
- static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class #this) → () → void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
}
@@ -47,29 +47,19 @@
import "org-dartlang-test:///lib2.dart" as l2;
class Class extends dart.core::Object {
- synthetic constructor •() → main::Class*
+ synthetic constructor •() → main::Class
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension on main::Class* {
+ extension Extension on main::Class {
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(lowered final main::Class* #this) → void {}
- static method Extension|get#method(lowered final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class #this) → void {}
+ static method Extension|get#method(lowered final main::Class #this) → () → void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
lib1::lib1();
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.3.expect
index f07ce1c..ad21410 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.3.expect
@@ -8,15 +8,15 @@
import "org-dartlang-test:///main.dart";
import "org-dartlang-test:///main.dart" as m;
- extension Extension2 on main::Class* {
+ extension Extension2 on main::Class {
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(lowered final main::Class* #this) → void {}
- static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class #this) → () → void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
}
@@ -26,15 +26,15 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib1.dart" as l1;
- extension Extension3 on main::Class* {
+ extension Extension3 on main::Class {
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(lowered final main::Class* #this) → void {}
- static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class #this) → () → void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
dart.core::print("done");
@@ -48,29 +48,19 @@
import "org-dartlang-test:///lib2.dart" as l2;
class Class extends dart.core::Object {
- synthetic constructor •() → main::Class*
+ synthetic constructor •() → main::Class
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension on main::Class* {
+ extension Extension on main::Class {
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(lowered final main::Class* #this) → void {}
- static method Extension|get#method(lowered final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class #this) → void {}
+ static method Extension|get#method(lowered final main::Class #this) → () → void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
lib1::lib1();
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.4.expect b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.4.expect
index 72bb927..908cbff 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_34.yaml.world.4.expect
@@ -8,15 +8,15 @@
import "org-dartlang-test:///main.dart";
import "org-dartlang-test:///main.dart" as m;
- extension Extension2 on main::Class* {
+ extension Extension2 on main::Class {
method method2 = lib1::Extension2|method2;
tearoff method2 = lib1::Extension2|get#method2;
}
- static method Extension2|method2(lowered final main::Class* #this) → void {}
- static method Extension2|get#method2(lowered final main::Class* #this) → () →* void
+ static method Extension2|method2(lowered final main::Class #this) → void {}
+ static method Extension2|get#method2(lowered final main::Class #this) → () → void
return () → void => lib1::Extension2|method2(#this);
static method lib1() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
dart.core::print("done");
@@ -27,15 +27,15 @@
import "org-dartlang-test:///lib1.dart";
import "org-dartlang-test:///lib1.dart" as l1;
- extension Extension3 on main::Class* {
+ extension Extension3 on main::Class {
method method3 = lib2::Extension3|method3;
tearoff method3 = lib2::Extension3|get#method3;
}
- static method Extension3|method3(lowered final main::Class* #this) → void {}
- static method Extension3|get#method3(lowered final main::Class* #this) → () →* void
+ static method Extension3|method3(lowered final main::Class #this) → void {}
+ static method Extension3|get#method3(lowered final main::Class #this) → () → void
return () → void => lib2::Extension3|method3(#this);
static method lib2() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
dart.core::print("done");
@@ -49,29 +49,19 @@
import "org-dartlang-test:///lib2.dart" as l2;
class Class extends dart.core::Object {
- synthetic constructor •() → main::Class*
+ synthetic constructor •() → main::Class
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension on main::Class* {
+ extension Extension on main::Class {
method method = main::Extension|method;
tearoff method = main::Extension|get#method;
}
- static method Extension|method(lowered final main::Class* #this) → void {}
- static method Extension|get#method(lowered final main::Class* #this) → () →* void
+ static method Extension|method(lowered final main::Class #this) → void {}
+ static method Extension|get#method(lowered final main::Class #this) → () → void
return () → void => main::Extension|method(#this);
static method main() → dynamic {
- main::Class* a = new main::Class::•();
+ main::Class a = new main::Class::•();
main::Extension|method(a);
lib1::Extension2|method2(a);
lib1::lib1();
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml
index 41c5896..d481b5f7 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml
@@ -12,7 +12,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
@@ -22,19 +21,18 @@
print(coordinate.next);
}
lib.dart: |
- // @dart=2.9
import 'dart:ffi';
class Coordinate extends Struct {
@Double()
- double x;
+ external double x;
@Double()
- double y;
+ external double y;
- Pointer<Coordinate> next;
+ Pointer<Coordinate>? next;
- factory Coordinate.allocate(double x, double y, Pointer<Coordinate> next) {
- return null;
+ factory Coordinate.allocate(double x, double y, Pointer<Coordinate>? next) {
+ throw '';
}
}
expectedLibraryCount: 2
@@ -46,7 +44,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
@@ -66,20 +63,19 @@
- lib.dart
sources:
lib.dart: |
- // @dart=2.9
import 'dart:ffi';
class Coordinate extends Struct {
@Double()
- double x;
+ external double x;
@Double()
- double y;
+ external double y;
- Pointer<Coordinate> next;
+ Pointer<Coordinate>? next;
- factory Coordinate.allocate(double x, double y, Pointer<Coordinate> next) {
+ factory Coordinate.allocate(double x, double y, Pointer<Coordinate>? next) {
print("hello");
- return null;
+ throw '';
}
}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
index b7e1762..1cde8e9 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.1.expect
@@ -8,36 +8,27 @@
constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
: super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
;
- static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
- return null;
- }
- abstract member-signature get _typedDataBase() → dart.core::Object*; -> dart.ffi::_Compound::_typedDataBase
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
@#C8
- get x() → dart.core::double*
+ get x() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set x(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
@#C8
- get y() → dart.core::double*
+ set x(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ @#C8
+ get y() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set y(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
- get next() → dart.ffi::Pointer<lib::Coordinate*>*
- return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
- set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
+ @#C8
+ set y(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ static factory allocate(dart.core::double x, dart.core::double y, dart.ffi::Pointer<lib::Coordinate>? next) → lib::Coordinate {
+ throw "";
+ }
+ get next() → dart.ffi::Pointer<lib::Coordinate>?
+ return dart.ffi::_fromAddress<lib::Coordinate>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
+ set next(dart.ffi::Pointer<lib::Coordinate>? #v) → void
return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v.{dart.ffi::Pointer::address}{dart.core::int});
@#C16
- static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+ static get #sizeOf() → dart.core::int*
return #C19.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*};
}
}
@@ -46,10 +37,10 @@
import "org-dartlang-test:///lib.dart";
static method main() → dynamic {
- lib::Coordinate* coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
- dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate*>*});
+ lib::Coordinate coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
+ dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate>?});
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
index ff06ff1..7d35a3d 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.2.expect
@@ -8,36 +8,27 @@
constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
: super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
;
- static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
- return null;
- }
- abstract member-signature get _typedDataBase() → dart.core::Object*; -> dart.ffi::_Compound::_typedDataBase
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
@#C8
- get x() → dart.core::double*
+ get x() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set x(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
@#C8
- get y() → dart.core::double*
+ set x(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ @#C8
+ get y() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set y(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
- get next() → dart.ffi::Pointer<lib::Coordinate*>*
- return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
- set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
+ @#C8
+ set y(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ static factory allocate(dart.core::double x, dart.core::double y, dart.ffi::Pointer<lib::Coordinate>? next) → lib::Coordinate {
+ throw "";
+ }
+ get next() → dart.ffi::Pointer<lib::Coordinate>?
+ return dart.ffi::_fromAddress<lib::Coordinate>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
+ set next(dart.ffi::Pointer<lib::Coordinate>? #v) → void
return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v.{dart.ffi::Pointer::address}{dart.core::int});
@#C16
- static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+ static get #sizeOf() → dart.core::int*
return #C19.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*};
}
}
@@ -46,10 +37,10 @@
import "org-dartlang-test:///lib.dart";
static method main() → dynamic {
- lib::Coordinate* coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
- dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate*>*});
+ lib::Coordinate coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
+ dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate>?});
dart.core::print("Done!");
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
index 9f42aec..41ed258 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_35.yaml.world.3.expect
@@ -8,37 +8,28 @@
constructor #fromTypedDataBase(dart.core::Object #typedDataBase) → lib::Coordinate
: super dart.ffi::Struct::_fromTypedDataBase(#typedDataBase)
;
- static factory allocate(dart.core::double* x, dart.core::double* y, dart.ffi::Pointer<lib::Coordinate*>* next) → lib::Coordinate* {
- dart.core::print("hello");
- return null;
- }
- abstract member-signature get _typedDataBase() → dart.core::Object*; -> dart.ffi::_Compound::_typedDataBase
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
@#C8
- get x() → dart.core::double*
+ get x() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set x(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
@#C8
- get y() → dart.core::double*
+ set x(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C10.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ @#C8
+ get y() → dart.core::double
return dart.ffi::_loadDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*});
- set y(dart.core::double* #v) → void
- return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v);
- get next() → dart.ffi::Pointer<lib::Coordinate*>*
- return dart.ffi::_fromAddress<lib::Coordinate*>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
- set next(dart.ffi::Pointer<lib::Coordinate*>* #v) → void
+ @#C8
+ set y(dart.core::double #externalFieldValue) → void
+ return dart.ffi::_storeDouble(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C12.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #externalFieldValue);
+ static factory allocate(dart.core::double x, dart.core::double y, dart.ffi::Pointer<lib::Coordinate>? next) → lib::Coordinate {
+ dart.core::print("hello");
+ throw "";
+ }
+ get next() → dart.ffi::Pointer<lib::Coordinate>?
+ return dart.ffi::_fromAddress<lib::Coordinate>(dart.ffi::_loadAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}));
+ set next(dart.ffi::Pointer<lib::Coordinate>? #v) → void
return dart.ffi::_storeAbiSpecificInt<dart.ffi::IntPtr>(this.{dart.ffi::_Compound::_typedDataBase}{dart.core::Object}, #C14.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*}, #v.{dart.ffi::Pointer::address}{dart.core::int});
@#C16
- static get /*isNonNullableByDefault*/ #sizeOf() → dart.core::int*
+ static get #sizeOf() → dart.core::int*
return #C19.{dart.core::List::[]}(dart.ffi::_abi()){(dart.core::int) → dart.core::int*};
}
}
@@ -47,10 +38,10 @@
import "org-dartlang-test:///lib.dart";
static method main() → dynamic {
- lib::Coordinate* coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
- dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double*});
- dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate*>*});
+ lib::Coordinate coordinate = lib::Coordinate::allocate(42.0, 42.0, null);
+ dart.core::print(coordinate.{lib::Coordinate::x}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::y}{dart.core::double});
+ dart.core::print(coordinate.{lib::Coordinate::next}{dart.ffi::Pointer<lib::Coordinate>?});
dart.core::print("Done!");
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml
index 3b6cb72..dcb057e 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml
@@ -10,21 +10,18 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'file1.dart';
class Class1 extends Class2 {}
file1.dart: |
- // @dart=2.9
import 'file2.dart';
class Class2 extends Class3 {
- Class3 foo;
+ Class3? foo;
}
file2.dart: |
- // @dart=2.9
abstract class Class3 {
- Class3 foo;
+ Class3? foo;
}
expectedLibraryCount: 3
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.1.expect
index f6d778ea..fd58749 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.1.expect
@@ -4,8 +4,8 @@
import "org-dartlang-test:///file2.dart";
class Class2 extends fil2::Class3 {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil::Class2*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil::Class2
: super fil2::Class3::•()
;
}
@@ -13,20 +13,10 @@
library from "org-dartlang-test:///file2.dart" as fil2 {
abstract class Class3 extends dart.core::Object {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil2::Class3*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil2::Class3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -34,7 +24,7 @@
import "org-dartlang-test:///file1.dart";
class Class1 extends fil::Class2 {
- synthetic constructor •() → main::Class1*
+ synthetic constructor •() → main::Class1
: super fil::Class2::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.2.expect
index f6d778ea..fd58749 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.2.expect
@@ -4,8 +4,8 @@
import "org-dartlang-test:///file2.dart";
class Class2 extends fil2::Class3 {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil::Class2*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil::Class2
: super fil2::Class3::•()
;
}
@@ -13,20 +13,10 @@
library from "org-dartlang-test:///file2.dart" as fil2 {
abstract class Class3 extends dart.core::Object {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil2::Class3*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil2::Class3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -34,7 +24,7 @@
import "org-dartlang-test:///file1.dart";
class Class1 extends fil::Class2 {
- synthetic constructor •() → main::Class1*
+ synthetic constructor •() → main::Class1
: super fil::Class2::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.3.expect
index f6d778ea..fd58749 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.3.expect
@@ -4,8 +4,8 @@
import "org-dartlang-test:///file2.dart";
class Class2 extends fil2::Class3 {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil::Class2*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil::Class2
: super fil2::Class3::•()
;
}
@@ -13,20 +13,10 @@
library from "org-dartlang-test:///file2.dart" as fil2 {
abstract class Class3 extends dart.core::Object {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil2::Class3*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil2::Class3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -34,7 +24,7 @@
import "org-dartlang-test:///file1.dart";
class Class1 extends fil::Class2 {
- synthetic constructor •() → main::Class1*
+ synthetic constructor •() → main::Class1
: super fil::Class2::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.4.expect b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.4.expect
index f6d778ea..fd58749 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_36.yaml.world.4.expect
@@ -4,8 +4,8 @@
import "org-dartlang-test:///file2.dart";
class Class2 extends fil2::Class3 {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil::Class2*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil::Class2
: super fil2::Class3::•()
;
}
@@ -13,20 +13,10 @@
library from "org-dartlang-test:///file2.dart" as fil2 {
abstract class Class3 extends dart.core::Object {
- field fil2::Class3* foo = null;
- synthetic constructor •() → fil2::Class3*
+ field fil2::Class3? foo = null;
+ synthetic constructor •() → fil2::Class3
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -34,7 +24,7 @@
import "org-dartlang-test:///file1.dart";
class Class1 extends fil::Class2 {
- synthetic constructor •() → main::Class1*
+ synthetic constructor •() → main::Class1
: super fil::Class2::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml
index 359626d..a156137 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml
@@ -10,20 +10,17 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'file2.dart';
class A extends B implements C {}
file1.dart: |
- // @dart=2.9
class D {
- D parent;
+ D? parent;
}
file2.dart: |
- // @dart=2.9
import 'file1.dart';
abstract class C implements D {}
class B extends D {
- D parent;
+ D? parent;
}
expectedLibraryCount: 3
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.1.expect
index 91ec42a..9e155b6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.1.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///file1.dart" as fil {
class D extends dart.core::Object {
- field fil::D* parent = null;
- synthetic constructor •() → fil::D*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil::D
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///file2.dart" as fil2 {
@@ -23,23 +13,13 @@
import "org-dartlang-test:///file1.dart";
abstract class C extends dart.core::Object implements fil::D {
- synthetic constructor •() → fil2::C*
+ synthetic constructor •() → fil2::C
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends fil::D {
- field fil::D* parent = null;
- synthetic constructor •() → fil2::B*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil2::B
: super fil::D::•()
;
}
@@ -49,7 +29,7 @@
import "org-dartlang-test:///file2.dart";
class A extends fil2::B implements fil2::C {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super fil2::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.2.expect
index 91ec42a..9e155b6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.2.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///file1.dart" as fil {
class D extends dart.core::Object {
- field fil::D* parent = null;
- synthetic constructor •() → fil::D*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil::D
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///file2.dart" as fil2 {
@@ -23,23 +13,13 @@
import "org-dartlang-test:///file1.dart";
abstract class C extends dart.core::Object implements fil::D {
- synthetic constructor •() → fil2::C*
+ synthetic constructor •() → fil2::C
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends fil::D {
- field fil::D* parent = null;
- synthetic constructor •() → fil2::B*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil2::B
: super fil::D::•()
;
}
@@ -49,7 +29,7 @@
import "org-dartlang-test:///file2.dart";
class A extends fil2::B implements fil2::C {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super fil2::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.3.expect
index 91ec42a..9e155b6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.3.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///file1.dart" as fil {
class D extends dart.core::Object {
- field fil::D* parent = null;
- synthetic constructor •() → fil::D*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil::D
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///file2.dart" as fil2 {
@@ -23,23 +13,13 @@
import "org-dartlang-test:///file1.dart";
abstract class C extends dart.core::Object implements fil::D {
- synthetic constructor •() → fil2::C*
+ synthetic constructor •() → fil2::C
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends fil::D {
- field fil::D* parent = null;
- synthetic constructor •() → fil2::B*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil2::B
: super fil::D::•()
;
}
@@ -49,7 +29,7 @@
import "org-dartlang-test:///file2.dart";
class A extends fil2::B implements fil2::C {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super fil2::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.4.expect b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.4.expect
index 91ec42a..9e155b6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_37.yaml.world.4.expect
@@ -2,20 +2,10 @@
library from "org-dartlang-test:///file1.dart" as fil {
class D extends dart.core::Object {
- field fil::D* parent = null;
- synthetic constructor •() → fil::D*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil::D
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///file2.dart" as fil2 {
@@ -23,23 +13,13 @@
import "org-dartlang-test:///file1.dart";
abstract class C extends dart.core::Object implements fil::D {
- synthetic constructor •() → fil2::C*
+ synthetic constructor •() → fil2::C
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends fil::D {
- field fil::D* parent = null;
- synthetic constructor •() → fil2::B*
+ field fil::D? parent = null;
+ synthetic constructor •() → fil2::B
: super fil::D::•()
;
}
@@ -49,7 +29,7 @@
import "org-dartlang-test:///file2.dart";
class A extends fil2::B implements fil2::C {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super fil2::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml
index 4c85485..f586e5f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml
@@ -10,14 +10,12 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class X {}
- int foo(X x) {
+ int? foo(X x) {
return x is Y ? x.foo : null;
}
lib.dart: |
- // @dart=2.9
import 'main.dart';
class Y implements X {
int get foo => 42;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.1.expect
index f8fa7652b..16a7d27 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.1.expect
@@ -4,21 +4,11 @@
import "org-dartlang-test:///main.dart";
class Y extends dart.core::Object implements main::X {
- synthetic constructor •() → lib::Y*
+ synthetic constructor •() → lib::Y
: super dart.core::Object::•()
;
- get foo() → dart.core::int*
+ get foo() → dart.core::int
return 42;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -26,21 +16,11 @@
import "org-dartlang-test:///lib.dart";
class X extends dart.core::Object {
- synthetic constructor •() → main::X*
+ synthetic constructor •() → main::X
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static method foo(main::X* x) → dart.core::int* {
- return x is lib::Y* ?{dart.core::int*} x{lib::Y*}.{lib::Y::foo}{dart.core::int*} : null;
+ static method foo(main::X x) → dart.core::int? {
+ return x is{ForNonNullableByDefault} lib::Y ?{dart.core::int?} x{lib::Y}.{lib::Y::foo}{dart.core::int} : null;
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.2.expect
index f8fa7652b..16a7d27 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.2.expect
@@ -4,21 +4,11 @@
import "org-dartlang-test:///main.dart";
class Y extends dart.core::Object implements main::X {
- synthetic constructor •() → lib::Y*
+ synthetic constructor •() → lib::Y
: super dart.core::Object::•()
;
- get foo() → dart.core::int*
+ get foo() → dart.core::int
return 42;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -26,21 +16,11 @@
import "org-dartlang-test:///lib.dart";
class X extends dart.core::Object {
- synthetic constructor •() → main::X*
+ synthetic constructor •() → main::X
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static method foo(main::X* x) → dart.core::int* {
- return x is lib::Y* ?{dart.core::int*} x{lib::Y*}.{lib::Y::foo}{dart.core::int*} : null;
+ static method foo(main::X x) → dart.core::int? {
+ return x is{ForNonNullableByDefault} lib::Y ?{dart.core::int?} x{lib::Y}.{lib::Y::foo}{dart.core::int} : null;
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.3.expect
index f8fa7652b..16a7d27 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_38.yaml.world.3.expect
@@ -4,21 +4,11 @@
import "org-dartlang-test:///main.dart";
class Y extends dart.core::Object implements main::X {
- synthetic constructor •() → lib::Y*
+ synthetic constructor •() → lib::Y
: super dart.core::Object::•()
;
- get foo() → dart.core::int*
+ get foo() → dart.core::int
return 42;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -26,21 +16,11 @@
import "org-dartlang-test:///lib.dart";
class X extends dart.core::Object {
- synthetic constructor •() → main::X*
+ synthetic constructor •() → main::X
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static method foo(main::X* x) → dart.core::int* {
- return x is lib::Y* ?{dart.core::int*} x{lib::Y*}.{lib::Y::foo}{dart.core::int*} : null;
+ static method foo(main::X x) → dart.core::int? {
+ return x is{ForNonNullableByDefault} lib::Y ?{dart.core::int?} x{lib::Y}.{lib::Y::foo}{dart.core::int} : null;
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml
index ebaefa2..0a99343 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml
@@ -10,7 +10,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class A {
int a() {
@@ -21,7 +20,6 @@
}
}
lib.dart: |
- // @dart=2.9
class B {
int a() {
return 42;
@@ -48,7 +46,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class A {
int b() {
@@ -69,7 +66,6 @@
- lib.dart
sources:
lib.dart: |
- // @dart=2.9
class C {
int b() {
return 1;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.1.expect
index 1a0bc10..a35a2ef 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.1.expect
@@ -2,46 +2,26 @@
library from "org-dartlang-test:///lib.dart" as lib {
class B extends dart.core::Object {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super dart.core::Object::•()
;
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 42;
}
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends dart.core::Object {
- synthetic constructor •() → lib::C*
+ synthetic constructor •() → lib::C
: super dart.core::Object::•()
;
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 42;
}
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -49,24 +29,14 @@
import "org-dartlang-test:///lib.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 42;
}
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.2.expect
index 89512bc..e7f91c7 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.2.expect
@@ -2,46 +2,26 @@
library from "org-dartlang-test:///lib.dart" as lib {
class B extends dart.core::Object {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super dart.core::Object::•()
;
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 42;
}
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends dart.core::Object {
- synthetic constructor •() → lib::C*
+ synthetic constructor •() → lib::C
: super dart.core::Object::•()
;
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 42;
}
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -49,24 +29,14 @@
import "org-dartlang-test:///lib.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 42;
}
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.3.expect
index fb95995..280d6fb 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_39.yaml.world.3.expect
@@ -2,46 +2,26 @@
library from "org-dartlang-test:///lib.dart" as lib {
class C extends dart.core::Object {
- synthetic constructor •() → lib::C*
+ synthetic constructor •() → lib::C
: super dart.core::Object::•()
;
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 1;
}
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class B extends dart.core::Object {
- synthetic constructor •() → lib::B*
+ synthetic constructor •() → lib::B
: super dart.core::Object::•()
;
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 3;
}
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 4;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -49,24 +29,14 @@
import "org-dartlang-test:///lib.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
- method b() → dart.core::int* {
+ method b() → dart.core::int {
return 42;
}
- method a() → dart.core::int* {
+ method a() → dart.core::int {
return 2;
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml
index 5aaff13..fbab308 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
@@ -20,7 +19,6 @@
}
}
libA.dart: |
- // @dart=2.9
import 'main.dart';
class Bar extends Object with Foo {
@@ -37,7 +35,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect
index a91314f..39a5dbb 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.1.expect
@@ -4,29 +4,19 @@
import "org-dartlang-test:///main.dart";
abstract class _Bar&Object&Foo extends dart.core::Object implements main::Foo /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → libA::_Bar&Object&Foo*
+ const synthetic constructor •() → libA::_Bar&Object&Foo
: super dart.core::Object::•()
;
method /* from org-dartlang-test:///main.dart */ method() → dynamic {
dart.core::print("A");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class Bar extends libA::_Bar&Object&Foo {
- synthetic constructor •() → libA::Bar*
+ synthetic constructor •() → libA::Bar
: super libA::_Bar&Object&Foo::•()
;
method method2() → dynamic {
- this.{libA::_Bar&Object&Foo::method}(){() →* dynamic};
+ this.{libA::_Bar&Object&Foo::method}(){() → dynamic};
}
}
}
@@ -35,21 +25,11 @@
import "org-dartlang-test:///libA.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
method method() → dynamic {
dart.core::print("A");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect
index 82880e2..d7d471a 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_4.yaml.world.2.expect
@@ -4,29 +4,19 @@
import "org-dartlang-test:///main.dart";
abstract class _Bar&Object&Foo extends dart.core::Object implements main::Foo /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → libA::_Bar&Object&Foo*
+ const synthetic constructor •() → libA::_Bar&Object&Foo
: super dart.core::Object::•()
;
method /* from org-dartlang-test:///main.dart */ method() → dynamic {
dart.core::print("B");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class Bar extends libA::_Bar&Object&Foo {
- synthetic constructor •() → libA::Bar*
+ synthetic constructor •() → libA::Bar
: super libA::_Bar&Object&Foo::•()
;
method method2() → dynamic {
- this.{libA::_Bar&Object&Foo::method}(){() →* dynamic};
+ this.{libA::_Bar&Object&Foo::method}(){() → dynamic};
}
}
}
@@ -35,21 +25,11 @@
import "org-dartlang-test:///libA.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
method method() → dynamic {
dart.core::print("B");
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml
index 6033b0e..3d630a8 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml
@@ -11,13 +11,11 @@
experiments: alternative-invalidation-strategy
sources:
lib1.dart: |
- // @dart=2.9
import 'main.dart';
extension Extension1 on A {
baz() => 42;
}
lib2.dart: |
- // @dart=2.9
import 'main.dart';
import 'lib1.dart';
export 'main.dart';
@@ -27,7 +25,6 @@
a.boz();
}
main.dart: |
- // @dart=2.9
import 'lib1.dart';
import 'lib2.dart';
class A {
@@ -48,7 +45,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
import 'main.dart';
import 'lib1.dart';
export 'main.dart';
@@ -68,7 +64,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib1.dart';
import 'lib2.dart';
class A {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.1.expect
index eae0d04..5b3c74f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.1.expect
@@ -3,13 +3,13 @@
import "org-dartlang-test:///main.dart";
- extension Extension1 on main::A* {
+ extension Extension1 on main::A {
method baz = lib1::Extension1|baz;
tearoff baz = lib1::Extension1|get#baz;
}
- static method Extension1|baz(lowered final main::A* #this) → dynamic
+ static method Extension1|baz(lowered final main::A #this) → dynamic
return 42;
- static method Extension1|get#baz(lowered final main::A* #this) → () →* dynamic
+ static method Extension1|get#baz(lowered final main::A #this) → () → dynamic
return () → dynamic => lib1::Extension1|baz(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -23,7 +23,7 @@
export "org-dartlang-test:///main.dart";
export "org-dartlang-test:///lib1.dart";
- static method method(main::A* a) → dynamic {
+ static method method(main::A a) → dynamic {
lib1::Extension1|baz(a);
main::Extension2|boz(a);
}
@@ -34,31 +34,21 @@
import "org-dartlang-test:///lib2.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
method foo() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension2 on main::A* {
+ extension Extension2 on main::A {
method boz = main::Extension2|boz;
tearoff boz = main::Extension2|get#boz;
}
static method main() → dynamic {
lib2::method(new main::A::•());
}
- static method Extension2|boz(lowered final main::A* #this) → dynamic {
+ static method Extension2|boz(lowered final main::A #this) → dynamic {
return 87;
}
- static method Extension2|get#boz(lowered final main::A* #this) → () →* dynamic
+ static method Extension2|get#boz(lowered final main::A #this) → () → dynamic
return () → dynamic => main::Extension2|boz(#this);
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.2.expect
index d4f85de..ce2d9af 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.2.expect
@@ -3,13 +3,13 @@
import "org-dartlang-test:///main.dart";
- extension Extension1 on main::A* {
+ extension Extension1 on main::A {
method baz = lib1::Extension1|baz;
tearoff baz = lib1::Extension1|get#baz;
}
- static method Extension1|baz(lowered final main::A* #this) → dynamic
+ static method Extension1|baz(lowered final main::A #this) → dynamic
return 42;
- static method Extension1|get#baz(lowered final main::A* #this) → () →* dynamic
+ static method Extension1|get#baz(lowered final main::A #this) → () → dynamic
return () → dynamic => lib1::Extension1|baz(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -23,7 +23,7 @@
export "org-dartlang-test:///main.dart";
export "org-dartlang-test:///lib1.dart";
- static method method(main::A* a) → dynamic {
+ static method method(main::A a) → dynamic {
lib1::Extension1|baz(a);
main::Extension2|boz(a);
lib1::Extension1|baz(a);
@@ -35,31 +35,21 @@
import "org-dartlang-test:///lib2.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
method foo() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension2 on main::A* {
+ extension Extension2 on main::A {
method boz = main::Extension2|boz;
tearoff boz = main::Extension2|get#boz;
}
static method main() → dynamic {
lib2::method(new main::A::•());
}
- static method Extension2|boz(lowered final main::A* #this) → dynamic {
+ static method Extension2|boz(lowered final main::A #this) → dynamic {
return 87;
}
- static method Extension2|get#boz(lowered final main::A* #this) → () →* dynamic
+ static method Extension2|get#boz(lowered final main::A #this) → () → dynamic
return () → dynamic => main::Extension2|boz(#this);
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.3.expect
index 8108d22..e66dc79 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_40.yaml.world.3.expect
@@ -3,13 +3,13 @@
import "org-dartlang-test:///main.dart";
- extension Extension1 on main::A* {
+ extension Extension1 on main::A {
method baz = lib1::Extension1|baz;
tearoff baz = lib1::Extension1|get#baz;
}
- static method Extension1|baz(lowered final main::A* #this) → dynamic
+ static method Extension1|baz(lowered final main::A #this) → dynamic
return 42;
- static method Extension1|get#baz(lowered final main::A* #this) → () →* dynamic
+ static method Extension1|get#baz(lowered final main::A #this) → () → dynamic
return () → dynamic => lib1::Extension1|baz(#this);
}
library from "org-dartlang-test:///lib2.dart" as lib2 {
@@ -23,7 +23,7 @@
export "org-dartlang-test:///main.dart";
export "org-dartlang-test:///lib1.dart";
- static method method(main::A* a) → dynamic {
+ static method method(main::A a) → dynamic {
lib1::Extension1|baz(a);
main::Extension2|boz(a);
lib1::Extension1|baz(a);
@@ -35,31 +35,21 @@
import "org-dartlang-test:///lib2.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
method foo() → dynamic {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- extension Extension2 on main::A* {
+ extension Extension2 on main::A {
method boz = main::Extension2|boz;
tearoff boz = main::Extension2|get#boz;
}
static method main() → dynamic {
lib2::method(new main::A::•());
}
- static method Extension2|boz(lowered final main::A* #this) → dynamic {
+ static method Extension2|boz(lowered final main::A #this) → dynamic {
return 123;
}
- static method Extension2|get#boz(lowered final main::A* #this) → () →* dynamic
+ static method Extension2|get#boz(lowered final main::A #this) → () → dynamic
return () → dynamic => main::Extension2|boz(#this);
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml
index a8ddc64..8fb3d4f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml
@@ -14,18 +14,15 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'libExporter.dart';
void foo() {
int value = libField;
libField = value+1;
}
libExporter.dart: |
- // @dart=2.9
export "lib.dart";
String fromLibExporter = "hello";
lib.dart: |
- // @dart=2.9
import "libExporter.dart";
int libField = 42;
void requireStuffFromLibExporter() {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.1.expect
index 3fa4b88..7aa25b3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.1.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///libExporter.dart";
- static field dart.core::int* libField = 42;
+ static field dart.core::int libField = 42;
static method requireStuffFromLibExporter() → void {
dart.core::print(lib2::fromLibExporter);
}
@@ -15,14 +15,14 @@
export "org-dartlang-test:///lib.dart";
- static field dart.core::String* fromLibExporter = "hello";
+ static field dart.core::String fromLibExporter = "hello";
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///libExporter.dart";
static method foo() → void {
- dart.core::int* value = lib::libField;
- lib::libField = value.{dart.core::num::+}(1){(dart.core::num*) →* dart.core::int*};
+ dart.core::int value = lib::libField;
+ lib::libField = value.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.2.expect
index 3fa4b88..7aa25b3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.2.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///libExporter.dart";
- static field dart.core::int* libField = 42;
+ static field dart.core::int libField = 42;
static method requireStuffFromLibExporter() → void {
dart.core::print(lib2::fromLibExporter);
}
@@ -15,14 +15,14 @@
export "org-dartlang-test:///lib.dart";
- static field dart.core::String* fromLibExporter = "hello";
+ static field dart.core::String fromLibExporter = "hello";
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///libExporter.dart";
static method foo() → void {
- dart.core::int* value = lib::libField;
- lib::libField = value.{dart.core::num::+}(1){(dart.core::num*) →* dart.core::int*};
+ dart.core::int value = lib::libField;
+ lib::libField = value.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.3.expect
index 3fa4b88..7aa25b3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.3.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///libExporter.dart";
- static field dart.core::int* libField = 42;
+ static field dart.core::int libField = 42;
static method requireStuffFromLibExporter() → void {
dart.core::print(lib2::fromLibExporter);
}
@@ -15,14 +15,14 @@
export "org-dartlang-test:///lib.dart";
- static field dart.core::String* fromLibExporter = "hello";
+ static field dart.core::String fromLibExporter = "hello";
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///libExporter.dart";
static method foo() → void {
- dart.core::int* value = lib::libField;
- lib::libField = value.{dart.core::num::+}(1){(dart.core::num*) →* dart.core::int*};
+ dart.core::int value = lib::libField;
+ lib::libField = value.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.4.expect b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.4.expect
index 3fa4b88..7aa25b3 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_43.yaml.world.4.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///libExporter.dart";
- static field dart.core::int* libField = 42;
+ static field dart.core::int libField = 42;
static method requireStuffFromLibExporter() → void {
dart.core::print(lib2::fromLibExporter);
}
@@ -15,14 +15,14 @@
export "org-dartlang-test:///lib.dart";
- static field dart.core::String* fromLibExporter = "hello";
+ static field dart.core::String fromLibExporter = "hello";
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///libExporter.dart";
static method foo() → void {
- dart.core::int* value = lib::libField;
- lib::libField = value.{dart.core::num::+}(1){(dart.core::num*) →* dart.core::int*};
+ dart.core::int value = lib::libField;
+ lib::libField = value.{dart.core::num::+}(1){(dart.core::num) → dart.core::int};
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml
index d1aab0e..1ce5db6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml
@@ -12,10 +12,9 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class Foo {
factory Foo.bar() {
- return null;
+ throw '';
}
void bar() {}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.1.expect
index 3416529..166d855 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.1.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- static factory bar() → main::Foo* {
- return null;
+ static factory bar() → main::Foo {
+ throw "";
}
method bar() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.2.expect
index 3416529..166d855 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter.yaml.world.2.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- static factory bar() → main::Foo* {
- return null;
+ static factory bar() → main::Foo {
+ throw "";
}
method bar() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml
index 6569ace..8b31333 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml
@@ -12,7 +12,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class Foo {
Foo();
factory Foo.bar() = Baz;
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect
index 7aa880b..aafa001 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.1.expect
@@ -2,26 +2,16 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- constructor •() → main::Foo*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ constructor •() → main::Foo
: super dart.core::Object::•()
;
- static factory bar() → main::Foo*
+ static factory bar() → main::Foo
return new main::Baz::•();
method bar() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class Baz extends main::Foo {
- synthetic constructor •() → main::Baz*
+ synthetic constructor •() → main::Baz
: super main::Foo::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect
index 7aa880b..aafa001 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_45_flutter_prime_1.yaml.world.2.expect
@@ -2,26 +2,16 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- constructor •() → main::Foo*
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ constructor •() → main::Foo
: super dart.core::Object::•()
;
- static factory bar() → main::Foo*
+ static factory bar() → main::Foo
return new main::Baz::•();
method bar() → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class Baz extends main::Foo {
- synthetic constructor •() → main::Baz*
+ synthetic constructor •() → main::Baz
: super main::Foo::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml
index b75e11c..d7d7a6a 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
part 'myPart.dart';
class Foo {
@@ -25,7 +24,6 @@
print(const Foo());
}
myPart.dart: |
- // @dart=2.9
part of 'main.dart';
whatever() async {
await null;
@@ -40,7 +38,6 @@
- myPart.dart
sources:
myPart.dart: |
- // @dart=2.9
part of 'main.dart';
whatever() async {
await null;
@@ -56,7 +53,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
part 'myPart.dart';
class Foo {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect
index e65d991..219336f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.1.expect
@@ -3,21 +3,12 @@
part myPart.dart;
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → main::Foo*
+ const constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "Foo!";
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic async /* futureValueType= dynamic */ {
await main::whatever();
@@ -36,6 +27,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Foo. (from org-dartlang-test:///main.dart:4:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect
index 5267571..0b6947c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.2.expect
@@ -3,21 +3,12 @@
part myPart.dart;
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → main::Foo*
+ const constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "Foo!";
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic async /* futureValueType= dynamic */ {
await main::whatever();
@@ -36,6 +27,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Foo. (from org-dartlang-test:///main.dart:4:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect
index e291aa1..dca8b6c 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_5.yaml.world.3.expect
@@ -3,21 +3,12 @@
part myPart.dart;
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •() → main::Foo*
+ const constructor •() → main::Foo
: super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "Foo!";
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic async /* futureValueType= dynamic */ {
await main::whatever();
@@ -37,6 +28,6 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- Foo. (from org-dartlang-test:///main.dart:5:9)
+- Foo. (from org-dartlang-test:///main.dart:4:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml
index b6497de..4e74fed 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml
@@ -11,7 +11,6 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
@@ -30,7 +29,6 @@
enum CompilationStrategy { direct, toKernel, toData, fromData }
libA.dart: |
- // @dart=2.9
import 'main.dart';
whatever(Foo foo) {
print(foo);
@@ -45,7 +43,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
@@ -73,7 +70,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
class Foo {
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect
index 2cc160f..c4930d6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.1.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -11,7 +11,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:8:32: Error: Expected ';' after this.
+// org-dartlang-test:///main.dart:7:32: Error: Expected ';' after this.
// toString() { return '$message' } // missing ;
// ^
//
@@ -20,50 +20,30 @@
class Foo extends dart.core::Object {
final field dynamic message;
- constructor •(dynamic message) → main::Foo*
+ constructor •(dynamic message) → main::Foo
: main::Foo::message = message, super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}";
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C14;
- static const field main::CompilationStrategy* direct = #C4;
- static const field main::CompilationStrategy* toKernel = #C7;
- static const field main::CompilationStrategy* toData = #C10;
- static const field main::CompilationStrategy* fromData = #C13;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field dart.core::List<main::CompilationStrategy> values = #C14;
+ static const field main::CompilationStrategy direct = #C4;
+ static const field main::CompilationStrategy toKernel = #C7;
+ static const field main::CompilationStrategy toData = #C10;
+ static const field main::CompilationStrategy fromData = #C13;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•("hello");
+ main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- main::CompilationStrategy* compilationStrategy = #C4;
+ main::CompilationStrategy compilationStrategy = #C4;
dart.core::print(compilationStrategy);
}
}
@@ -87,7 +67,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:17:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect
index f4b7e7b..82b26f6 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.2.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -11,7 +11,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:8:32: Error: Expected ';' after this.
+// org-dartlang-test:///main.dart:7:32: Error: Expected ';' after this.
// toString() { return '$message!!!' } // missing ; still
// ^^^^
//
@@ -20,50 +20,30 @@
class Foo extends dart.core::Object {
final field dynamic message;
- constructor •(dynamic message) → main::Foo*
+ constructor •(dynamic message) → main::Foo
: main::Foo::message = message, super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}!!!";
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C14;
- static const field main::CompilationStrategy* direct = #C4;
- static const field main::CompilationStrategy* toKernel = #C7;
- static const field main::CompilationStrategy* toData = #C10;
- static const field main::CompilationStrategy* fromData = #C13;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field dart.core::List<main::CompilationStrategy> values = #C14;
+ static const field main::CompilationStrategy direct = #C4;
+ static const field main::CompilationStrategy toKernel = #C7;
+ static const field main::CompilationStrategy toData = #C10;
+ static const field main::CompilationStrategy fromData = #C13;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•("hello");
+ main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- main::CompilationStrategy* compilationStrategy = #C4;
+ main::CompilationStrategy compilationStrategy = #C4;
dart.core::print(compilationStrategy);
}
}
@@ -87,7 +67,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:17:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect
index f45163f..0e56202 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_6.yaml.world.3.expect
@@ -3,7 +3,7 @@
import "org-dartlang-test:///main.dart";
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -13,50 +13,30 @@
class Foo extends dart.core::Object {
final field dynamic message;
- constructor •(dynamic message) → main::Foo*
+ constructor •(dynamic message) → main::Foo
: main::Foo::message = message, super dart.core::Object::•()
;
@#C1
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}?!?";
}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C14;
- static const field main::CompilationStrategy* direct = #C4;
- static const field main::CompilationStrategy* toKernel = #C7;
- static const field main::CompilationStrategy* toData = #C10;
- static const field main::CompilationStrategy* fromData = #C13;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field dart.core::List<main::CompilationStrategy> values = #C14;
+ static const field main::CompilationStrategy direct = #C4;
+ static const field main::CompilationStrategy toKernel = #C7;
+ static const field main::CompilationStrategy toData = #C10;
+ static const field main::CompilationStrategy fromData = #C13;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•("hello");
+ main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- main::CompilationStrategy* compilationStrategy = #C4;
+ main::CompilationStrategy compilationStrategy = #C4;
dart.core::print(compilationStrategy);
}
}
@@ -80,7 +60,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:18:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:17:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml
index 91c67e4..3dd8187 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml
@@ -10,7 +10,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
const String useMeAsAnnotation = "hello";
@@ -44,7 +43,6 @@
@useMeAsAnnotation
enum CompilationStrategy { @useMeAsAnnotation direct, @useMeAsAnnotation toKernel, @useMeAsAnnotation toData, @useMeAsAnnotation fromData }
libA.dart: |
- // @dart=2.9
import 'main.dart';
@useMeAsAnnotation
whatever(Foo foo) {
@@ -59,7 +57,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'libA.dart';
const String useMeAsAnnotation = "hello";
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect
index 0b471c1..94a4917 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.1.expect
@@ -4,7 +4,7 @@
import "org-dartlang-test:///main.dart";
@#C1
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -15,66 +15,45 @@
@#C1
class Bar extends dart.core::Object {
@#C1
- constructor •(@#C1 dart.core::int* x) → main::Bar*
+ constructor •(@#C1 dart.core::int x) → main::Bar
: super dart.core::Object::•() {}
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
@#C1
class Foo extends main::Bar {
@#C1
final field dynamic message;
@#C1
- constructor •(@#C1 dynamic message) → main::Foo*
+ constructor •(@#C1 dynamic message) → main::Foo
: main::Foo::message = message, super main::Bar::•(42)
;
@#C2
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}";
}
}
@#C1
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C15;
+ static const field dart.core::List<main::CompilationStrategy> values = #C15;
@#C1
- static const field main::CompilationStrategy* direct = #C5;
+ static const field main::CompilationStrategy direct = #C5;
@#C1
- static const field main::CompilationStrategy* toKernel = #C8;
+ static const field main::CompilationStrategy toKernel = #C8;
@#C1
- static const field main::CompilationStrategy* toData = #C11;
+ static const field main::CompilationStrategy toData = #C11;
@#C1
- static const field main::CompilationStrategy* fromData = #C14;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field main::CompilationStrategy fromData = #C14;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static const field dart.core::String* useMeAsAnnotation = #C1;
+ static const field dart.core::String useMeAsAnnotation = #C1;
@#C1
static method main() → dynamic {
- @#C1 main::Foo* foo = new main::Foo::•("hello");
+ @#C1 main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- @#C1 main::CompilationStrategy* compilationStrategy = #C5;
+ @#C1 main::CompilationStrategy compilationStrategy = #C5;
dart.core::print(compilationStrategy);
}
}
@@ -99,7 +78,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:33:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:32:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect
index 0b471c1..94a4917 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_7.yaml.world.2.expect
@@ -4,7 +4,7 @@
import "org-dartlang-test:///main.dart";
@#C1
- static method whatever(main::Foo* foo) → dynamic {
+ static method whatever(main::Foo foo) → dynamic {
dart.core::print(foo);
}
}
@@ -15,66 +15,45 @@
@#C1
class Bar extends dart.core::Object {
@#C1
- constructor •(@#C1 dart.core::int* x) → main::Bar*
+ constructor •(@#C1 dart.core::int x) → main::Bar
: super dart.core::Object::•() {}
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
@#C1
class Foo extends main::Bar {
@#C1
final field dynamic message;
@#C1
- constructor •(@#C1 dynamic message) → main::Foo*
+ constructor •(@#C1 dynamic message) → main::Foo
: main::Foo::message = message, super main::Bar::•(42)
;
@#C2
- method toString() → dart.core::String* {
+ method toString() → dart.core::String {
return "${this.{main::Foo::message}{dynamic}}";
}
}
@#C1
class CompilationStrategy extends dart.core::_Enum /*isEnum*/ {
- static const field dart.core::List<main::CompilationStrategy*>* values = #C15;
+ static const field dart.core::List<main::CompilationStrategy> values = #C15;
@#C1
- static const field main::CompilationStrategy* direct = #C5;
+ static const field main::CompilationStrategy direct = #C5;
@#C1
- static const field main::CompilationStrategy* toKernel = #C8;
+ static const field main::CompilationStrategy toKernel = #C8;
@#C1
- static const field main::CompilationStrategy* toData = #C11;
+ static const field main::CompilationStrategy toData = #C11;
@#C1
- static const field main::CompilationStrategy* fromData = #C14;
- const constructor •(dart.core::int* #index, dart.core::String* #name) → main::CompilationStrategy*
+ static const field main::CompilationStrategy fromData = #C14;
+ const constructor •(dart.core::int #index, dart.core::String #name) → main::CompilationStrategy
: super dart.core::_Enum::•(#index, #name)
;
- method toString() → dart.core::String*
+ method toString() → dart.core::String
return "CompilationStrategy.${this.{dart.core::_Enum::_name}{dart.core::String}}";
- abstract member-signature get index() → dart.core::int*; -> dart.core::_Enum::index
- abstract member-signature get _name() → dart.core::String*; -> dart.core::_Enum::_name
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- static const field dart.core::String* useMeAsAnnotation = #C1;
+ static const field dart.core::String useMeAsAnnotation = #C1;
@#C1
static method main() → dynamic {
- @#C1 main::Foo* foo = new main::Foo::•("hello");
+ @#C1 main::Foo foo = new main::Foo::•("hello");
libA::whatever(foo);
- @#C1 main::CompilationStrategy* compilationStrategy = #C5;
+ @#C1 main::CompilationStrategy compilationStrategy = #C5;
dart.core::print(compilationStrategy);
}
}
@@ -99,7 +78,7 @@
Constructor coverage from constants:
org-dartlang-test:///main.dart:
-- CompilationStrategy. (from org-dartlang-test:///main.dart:33:6)
+- CompilationStrategy. (from org-dartlang-test:///main.dart:32:6)
- _Enum. (from org-dartlang-sdk:///sdk/lib/core/enum.dart:103:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_8.yaml b/pkg/front_end/testcases/incremental/no_outline_change_8.yaml
index fc35f07..5cbb862 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_8.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_8.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
class Foo {
String get x { return "x #1"; }
void set x(String x) {}
@@ -31,7 +30,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
class Foo {
String get x { return "x #2"; }
void set x(String x) {}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.1.expect b/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.1.expect
index e12f28a..4dac49f 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.1.expect
@@ -2,27 +2,17 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
- get x() → dart.core::String* {
+ get x() → dart.core::String {
return "x #1";
}
- set x(dart.core::String* x) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ set x(dart.core::String x) → void {}
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•();
- dart.core::print(foo.{main::Foo::x}{dart.core::String*});
+ main::Foo foo = new main::Foo::•();
+ dart.core::print(foo.{main::Foo::x}{dart.core::String});
foo.{main::Foo::x} = "hello";
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.2.expect b/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.2.expect
index bc1e6cb..aa93cfc 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/no_outline_change_8.yaml.world.2.expect
@@ -2,27 +2,17 @@
library from "org-dartlang-test:///main.dart" as main {
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
- get x() → dart.core::String* {
+ get x() → dart.core::String {
return "x #2";
}
- set x(dart.core::String* x) → void {}
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ set x(dart.core::String x) → void {}
}
static method main() → dynamic {
- main::Foo* foo = new main::Foo::•();
- dart.core::print(foo.{main::Foo::x}{dart.core::String*});
+ main::Foo foo = new main::Foo::•();
+ dart.core::print(foo.{main::Foo::x}{dart.core::String});
foo.{main::Foo::x} = "hello";
}
}
diff --git a/pkg/front_end/testcases/incremental/no_outline_change_9.yaml b/pkg/front_end/testcases/incremental/no_outline_change_9.yaml
index 37edf3e..7310cd4 100644
--- a/pkg/front_end/testcases/incremental/no_outline_change_9.yaml
+++ b/pkg/front_end/testcases/incremental/no_outline_change_9.yaml
@@ -11,7 +11,6 @@
experiments: alternative-invalidation-strategy
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
@@ -19,14 +18,12 @@
libPartMethod();
}
lib.dart: |
- // @dart=2.9
part "libpart.dart";
libMethod() {
print("libMethod");
}
libpart.dart: |
- // @dart=2.9
part of "lib.dart";
libPartMethod() {
@@ -41,7 +38,6 @@
- lib.dart
sources:
lib.dart: |
- // @dart=2.9
part "libpart.dart";
libMethod() {
diff --git a/pkg/front_end/testcases/incremental/omit_platform_works_1.yaml b/pkg/front_end/testcases/incremental/omit_platform_works_1.yaml
index ad799bd..8d884a3 100644
--- a/pkg/front_end/testcases/incremental/omit_platform_works_1.yaml
+++ b/pkg/front_end/testcases/incremental/omit_platform_works_1.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("Hello world");
}
@@ -21,7 +20,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("Hello world!");
}
diff --git a/pkg/front_end/testcases/incremental/omit_platform_works_2.yaml b/pkg/front_end/testcases/incremental/omit_platform_works_2.yaml
index 88e85bd..071eacd 100644
--- a/pkg/front_end/testcases/incremental/omit_platform_works_2.yaml
+++ b/pkg/front_end/testcases/incremental/omit_platform_works_2.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("Hello world");
}
@@ -21,7 +20,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("Hello world!");
}
diff --git a/pkg/front_end/testcases/incremental/omit_platform_works_3.yaml b/pkg/front_end/testcases/incremental/omit_platform_works_3.yaml
index c0f25a0..2a6583b 100644
--- a/pkg/front_end/testcases/incremental/omit_platform_works_3.yaml
+++ b/pkg/front_end/testcases/incremental/omit_platform_works_3.yaml
@@ -12,7 +12,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("Hello world");
}
@@ -26,13 +25,11 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
print(lib());
}
lib.dart: |
- // @dart=2.9
lib() {
return "hello";
}
@@ -46,7 +43,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
print(lib() + "!");
@@ -61,7 +57,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
print(lib());
@@ -75,13 +70,11 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
main() {
print(lib() + "!!");
}
lib.dart: |
- // @dart=2.9
lib() {
return "hello";
}
diff --git a/pkg/front_end/testcases/incremental/outline_only.yaml b/pkg/front_end/testcases/incremental/outline_only.yaml
index bb3d5af..59a9e45 100644
--- a/pkg/front_end/testcases/incremental/outline_only.yaml
+++ b/pkg/front_end/testcases/incremental/outline_only.yaml
@@ -9,7 +9,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("hello");
b();
diff --git a/pkg/front_end/testcases/incremental/outline_only_2.yaml b/pkg/front_end/testcases/incremental/outline_only_2.yaml
index 2ec0997..94b1a83 100644
--- a/pkg/front_end/testcases/incremental/outline_only_2.yaml
+++ b/pkg/front_end/testcases/incremental/outline_only_2.yaml
@@ -10,7 +10,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
abstract class Foo {
int get foo;
}
diff --git a/pkg/front_end/testcases/incremental/outline_only_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/outline_only_2.yaml.world.1.expect
index 3309ce1..f386ec2 100644
--- a/pkg/front_end/testcases/incremental/outline_only_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/outline_only_2.yaml.world.1.expect
@@ -2,34 +2,14 @@
library from "org-dartlang-test:///main.dart" as main {
abstract class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
;
- abstract get foo() → dart.core::int*;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
+ abstract get foo() → dart.core::int;
}
class Bar extends dart.core::Object implements main::Foo {
- static field dart.core::int* _foo;
- final field dart.core::int* foo;
- synthetic constructor •() → main::Bar*
+ static field dart.core::int _foo;
+ final field dart.core::int foo;
+ synthetic constructor •() → main::Bar
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/part_as_entry.yaml b/pkg/front_end/testcases/incremental/part_as_entry.yaml
index 266e687..aba97dff 100644
--- a/pkg/front_end/testcases/incremental/part_as_entry.yaml
+++ b/pkg/front_end/testcases/incremental/part_as_entry.yaml
@@ -8,11 +8,9 @@
checkEntries: false
sources:
main.dart: |
- // @dart=2.9
part of 'lib.dart';
partMethod() {}
lib.dart: |
- // @dart=2.9
part 'main.dart';
main() {}
expectedLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/part_as_package_entry.yaml b/pkg/front_end/testcases/incremental/part_as_package_entry.yaml
index 9810036..676254f 100644
--- a/pkg/front_end/testcases/incremental/part_as_package_entry.yaml
+++ b/pkg/front_end/testcases/incremental/part_as_package_entry.yaml
@@ -18,11 +18,9 @@
]
}
main.dart: |
- // @dart=2.9
part of 'lib.dart';
partMethod() {}
lib.dart: |
- // @dart=2.9
part 'main.dart';
main() {}
expectedLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/part_as_package_entry_2.yaml b/pkg/front_end/testcases/incremental/part_as_package_entry_2.yaml
index 2ac3ec6..35b4737 100644
--- a/pkg/front_end/testcases/incremental/part_as_package_entry_2.yaml
+++ b/pkg/front_end/testcases/incremental/part_as_package_entry_2.yaml
@@ -19,11 +19,9 @@
]
}
main.dart: |
- // @dart=2.9
part of 'lib.dart';
partMethod() {}
lib.dart: |
- // @dart=2.9
part 'main.dart';
main() {}
expectedLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of.yaml b/pkg/front_end/testcases/incremental/part_not_part_of.yaml
index 83a3567..4343977 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of.yaml
+++ b/pkg/front_end/testcases/incremental/part_not_part_of.yaml
@@ -8,11 +8,9 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
part 'lib.dart';
main() {}
lib.dart: |
- // @dart=2.9
methodFromLib() {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.1.expect b/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.1.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.1.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.2.expect b/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.2.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.2.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.3.expect b/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.3.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of.yaml.world.3.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml
index a3c62ed..4f7c23b 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml
@@ -18,11 +18,9 @@
]
}
main.dart: |
- // @dart=2.9
part 'lib.dart';
main() {}
lib.dart: |
- // @dart=2.9
methodFromLib() {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.1.expect b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.1.expect
index 5d581c7..fc6881c 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.1.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.2.expect b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.2.expect
index 5d581c7..fc6881c 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.2.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.3.expect b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.3.expect
index 5d581c7..fc6881c 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_as_package.yaml.world.3.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml
index 0a6eab0..a5edd21 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml
@@ -9,11 +9,9 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
part 'lib.dart';
main() {}
lib.dart: |
- // @dart=2.9
methodFromLib() {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.1.expect b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.1.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.1.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.2.expect b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.2.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.2.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.3.expect b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.3.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_experimental_invalidation.yaml.world.3.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml
index e0d7502..e9c5703 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml
@@ -8,11 +8,9 @@
errors: true
sources:
main.dart: |
- // @dart=2.9
part 'lib.dart';
main() {}
lib.dart: |
- // @dart=2.9
methodFromLib() {}
expectedLibraryCount: 2
@@ -22,11 +20,9 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
part 'lib.dart';
main() {}
lib.dart: |
- // @dart=2.9
methodFromLib() {}
expectedLibraryCount: 2
@@ -36,10 +32,8 @@
- lib.dart
sources:
main.dart: |
- // @dart=2.9
part 'lib.dart';
main() {}
lib.dart: |
- // @dart=2.9
methodFromLib() {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.1.expect b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.1.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.1.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.2.expect b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.2.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.2.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.3.expect b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.3.expect
index 63f6134..bf0e799 100644
--- a/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/part_not_part_of_initialized_from_dill.yaml.world.3.expect
@@ -7,7 +7,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-test:///lib.dart' as a part, because it has no 'part of' declaration.
// part 'lib.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/regress_35215.yaml b/pkg/front_end/testcases/incremental/regress_35215.yaml
index 05e0f1a..92e35f0 100644
--- a/pkg/front_end/testcases/incremental/regress_35215.yaml
+++ b/pkg/front_end/testcases/incremental/regress_35215.yaml
@@ -11,14 +11,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
b(42);
}
b.dart: |
- // @dart=2.9
- b({int named}) {
+ b({int? named}) {
print("b");
}
expectedLibraryCount: 2
@@ -29,18 +27,16 @@
- b.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
b(42);
}
b.dart: |
- // @dart=2.9
// lots of comments
// forcing offsets down
// and also adding more lines
// and whatnot
- b({int named}) {
+ b({int? named}) {
print("b");
}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/regress_35215.yaml.world.1.expect b/pkg/front_end/testcases/incremental/regress_35215.yaml.world.1.expect
index 8e1d7f3..ceb1348 100644
--- a/pkg/front_end/testcases/incremental/regress_35215.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/regress_35215.yaml.world.1.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "org-dartlang-test:///b.dart" as b {
- static method b({dart.core::int* named = #C1}) → dynamic {
+ static method b({dart.core::int? named = #C1}) → dynamic {
dart.core::print("b");
}
}
@@ -9,19 +9,19 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:4: Error: Too many positional arguments: 0 allowed, but 1 found.
+// org-dartlang-test:///main.dart:3:4: Error: Too many positional arguments: 0 allowed, but 1 found.
// Try removing the extra positional arguments.
// b(42);
// ^
-// org-dartlang-test:///b.dart:2:1: Context: Found this candidate, but the arguments don't match.
-// b({int named}) {
+// org-dartlang-test:///b.dart:1:1: Context: Found this candidate, but the arguments don't match.
+// b({int? named}) {
// ^
//
import "org-dartlang-test:///b.dart";
static method main() → dynamic {
- invalid-expression "org-dartlang-test:///main.dart:4:4: Error: Too many positional arguments: 0 allowed, but 1 found.\nTry removing the extra positional arguments.\n b(42);\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:3:4: Error: Too many positional arguments: 0 allowed, but 1 found.\nTry removing the extra positional arguments.\n b(42);\n ^";
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/regress_35215.yaml.world.2.expect b/pkg/front_end/testcases/incremental/regress_35215.yaml.world.2.expect
index 21bd097..7a3401e 100644
--- a/pkg/front_end/testcases/incremental/regress_35215.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/regress_35215.yaml.world.2.expect
@@ -1,7 +1,7 @@
main = main::main;
library from "org-dartlang-test:///b.dart" as b {
- static method b({dart.core::int* named = #C1}) → dynamic {
+ static method b({dart.core::int? named = #C1}) → dynamic {
dart.core::print("b");
}
}
@@ -9,19 +9,19 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:4: Error: Too many positional arguments: 0 allowed, but 1 found.
+// org-dartlang-test:///main.dart:3:4: Error: Too many positional arguments: 0 allowed, but 1 found.
// Try removing the extra positional arguments.
// b(42);
// ^
-// org-dartlang-test:///b.dart:6:1: Context: Found this candidate, but the arguments don't match.
-// b({int named}) {
+// org-dartlang-test:///b.dart:5:1: Context: Found this candidate, but the arguments don't match.
+// b({int? named}) {
// ^
//
import "org-dartlang-test:///b.dart";
static method main() → dynamic {
- invalid-expression "org-dartlang-test:///main.dart:4:4: Error: Too many positional arguments: 0 allowed, but 1 found.\nTry removing the extra positional arguments.\n b(42);\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:3:4: Error: Too many positional arguments: 0 allowed, but 1 found.\nTry removing the extra positional arguments.\n b(42);\n ^";
}
}
constants {
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml
index 0ab8b96..fb57969 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml
@@ -11,10 +11,8 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
b.dart: |
- // @dart=2.9
asdf
expectedLibraryCount: 2
errors: true
@@ -26,10 +24,8 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
b.dart: |
- // @dart=2.9
asdf
expectedLibraryCount: 2
errors: true
@@ -46,7 +42,6 @@
- b.dart
sources:
b.dart: |
- // @dart=2.9
asdf;
expectedLibraryCount: 2
- entry: main.dart
@@ -56,6 +51,5 @@
- b.dart
sources:
b.dart: |
- // @dart=2.9
asdf() {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.1.expect
index 089797b..0c74f50 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.1.expect
@@ -3,11 +3,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:1: Error: Expected ';' after this.
+// org-dartlang-test:///b.dart:1:1: Error: Expected ';' after this.
// asdf
// ^^^^
//
-// org-dartlang-test:///b.dart:2:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// org-dartlang-test:///b.dart:1:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// asdf
// ^^^^
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.2.expect
index 089797b..0c74f50 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.2.expect
@@ -3,11 +3,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:1: Error: Expected ';' after this.
+// org-dartlang-test:///b.dart:1:1: Error: Expected ';' after this.
// asdf
// ^^^^
//
-// org-dartlang-test:///b.dart:2:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// org-dartlang-test:///b.dart:1:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// asdf
// ^^^^
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.3.expect
index 089797b..0c74f50 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.3.expect
@@ -3,11 +3,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:1: Error: Expected ';' after this.
+// org-dartlang-test:///b.dart:1:1: Error: Expected ';' after this.
// asdf
// ^^^^
//
-// org-dartlang-test:///b.dart:2:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// org-dartlang-test:///b.dart:1:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// asdf
// ^^^^
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.4.expect
index 089797b..0c74f50 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.4.expect
@@ -3,11 +3,11 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:1: Error: Expected ';' after this.
+// org-dartlang-test:///b.dart:1:1: Error: Expected ';' after this.
// asdf
// ^^^^
//
-// org-dartlang-test:///b.dart:2:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// org-dartlang-test:///b.dart:1:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// asdf
// ^^^^
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.5.expect b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.5.expect
index 1771593..a44b5dc 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.5.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_1.yaml.world.5.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
+// org-dartlang-test:///b.dart:1:1: Error: Variables must be declared using the keywords 'const', 'final', 'var' or a type name.
// Try adding the name of the type of the variable or the keyword 'var'.
// asdf;
// ^^^^
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml
index 7230d12..3a869c5 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml
@@ -14,13 +14,11 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
}
lib.dart: |
- // @dart=2.9
class Foo {
const Foo(int i) : assert(i > 0);
}
@@ -36,7 +34,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
import 'lib2.dart';
import 'lib3.dart';
@@ -45,11 +42,9 @@
print(fooField2);
}
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField = const Foo(0);
lib3.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField2 = const Foo(0);
expectInitializeFromDill: false
@@ -61,7 +56,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField = const Foo(1);
expectInitializeFromDill: false
@@ -74,11 +68,9 @@
- lib3.dart
sources:
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField = const Foo(0);
lib3.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField2 = const Foo(1);
expectInitializeFromDill: false
@@ -91,11 +83,9 @@
- lib3.dart
sources:
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField = const Foo(1);
lib3.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField2 = const Foo(1);
expectInitializeFromDill: false
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.1.expect
index a45e928..06dcf28 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.1.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect
index 88a3567..17e6fbe 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.2.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,39 +14,39 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib2.dart:3:24: Error: Constant evaluation error:
+// org-dartlang-test:///lib2.dart:2:24: Error: Constant evaluation error:
// const fooField = const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
-// org-dartlang-test:///lib2.dart:3:7: Context: While analyzing:
+// org-dartlang-test:///lib2.dart:2:7: Context: While analyzing:
// const fooField = const Foo(0);
// ^
//
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField = invalid-expression "This assertion failed.";
+ static const field lib::Foo fooField = invalid-expression "This assertion failed.";
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
//
// Problems in library:
//
-// org-dartlang-test:///lib3.dart:3:25: Error: Constant evaluation error:
+// org-dartlang-test:///lib3.dart:2:25: Error: Constant evaluation error:
// const fooField2 = const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
-// org-dartlang-test:///lib3.dart:3:7: Context: While analyzing:
+// org-dartlang-test:///lib3.dart:2:7: Context: While analyzing:
// const fooField2 = const Foo(0);
// ^
//
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField2 = invalid-expression "This assertion failed.";
+ static const field lib::Foo fooField2 = invalid-expression "This assertion failed.";
}
library from "org-dartlang-test:///main.dart" as main {
@@ -73,8 +63,8 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
org-dartlang-test:///lib3.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect
index 8f13ae6..633f67f 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.3.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,26 +14,26 @@
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField = #C1;
+ static const field lib::Foo fooField = #C1;
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
//
// Problems in library:
//
-// org-dartlang-test:///lib3.dart:3:25: Error: Constant evaluation error:
+// org-dartlang-test:///lib3.dart:2:25: Error: Constant evaluation error:
// const fooField2 = const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
-// org-dartlang-test:///lib3.dart:3:7: Context: While analyzing:
+// org-dartlang-test:///lib3.dart:2:7: Context: While analyzing:
// const fooField2 = const Foo(0);
// ^
//
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField2 = invalid-expression "This assertion failed.";
+ static const field lib::Foo fooField2 = invalid-expression "This assertion failed.";
}
library from "org-dartlang-test:///main.dart" as main {
@@ -63,9 +53,9 @@
Constructor coverage from constants:
org-dartlang-test:///lib3.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect
index f0e49e5..5f792dc 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.4.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,26 +14,26 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib2.dart:3:24: Error: Constant evaluation error:
+// org-dartlang-test:///lib2.dart:2:24: Error: Constant evaluation error:
// const fooField = const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
-// org-dartlang-test:///lib2.dart:3:7: Context: While analyzing:
+// org-dartlang-test:///lib2.dart:2:7: Context: While analyzing:
// const fooField = const Foo(0);
// ^
//
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField = invalid-expression "This assertion failed.";
+ static const field lib::Foo fooField = invalid-expression "This assertion failed.";
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField2 = #C1;
+ static const field lib::Foo fooField2 = #C1;
}
library from "org-dartlang-test:///main.dart" as main {
@@ -63,9 +53,9 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
org-dartlang-test:///lib3.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect
index 2268375..828d380 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_10.yaml.world.5.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,13 +14,13 @@
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField = #C1;
+ static const field lib::Foo fooField = #C1;
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField2 = #C1;
+ static const field lib::Foo fooField2 = #C1;
}
library from "org-dartlang-test:///main.dart" as main {
@@ -50,10 +40,10 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
org-dartlang-test:///lib3.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml
index e481eaa..76e71de 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml
@@ -12,13 +12,11 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
}
lib.dart: |
- // @dart=2.9
class Foo {
const Foo(int i) : assert(i > 0);
}
@@ -34,7 +32,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
import 'lib2.dart';
main() {
@@ -42,7 +39,6 @@
bar();
}
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
class Bar {
final Foo x;
@@ -58,7 +54,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
class Bar {
final Foo x;
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.1.expect
index a45e928..06dcf28 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.1.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect
index ad41429..89af6473 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.2.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,10 +14,10 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib2.dart:5:27: Error: Constant evaluation error:
+// org-dartlang-test:///lib2.dart:4:27: Error: Constant evaluation error:
// const Bar() : x = const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
//
@@ -35,20 +25,10 @@
import "org-dartlang-test:///lib.dart";
class Bar extends dart.core::Object /*hasConstConstructor*/ {
- final field lib::Foo* x;
- const constructor •() → lib2::Bar*
+ final field lib::Foo x;
+ const constructor •() → lib2::Bar
: lib2::Bar::x = invalid-expression "This assertion failed.", super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method bar() → dynamic {}
}
@@ -66,5 +46,5 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect
index 0c12219..f913229 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_11.yaml.world.3.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -25,20 +15,10 @@
import "org-dartlang-test:///lib.dart";
class Bar extends dart.core::Object /*hasConstConstructor*/ {
- final field lib::Foo* x;
- const constructor •() → lib2::Bar*
+ final field lib::Foo x;
+ const constructor •() → lib2::Bar
: lib2::Bar::x = #C1, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method bar() → dynamic {}
}
@@ -59,6 +39,6 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml
index b3e673f..91ce7a3 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml
@@ -11,12 +11,10 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
class A extends B {}
b.dart: |
- // @dart=2.9
import "nonexisting.dart";
class B extends A {}
@@ -30,12 +28,10 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
class A extends B {}
b.dart: |
- // @dart=2.9
import "nonexisting.dart";
class B extends A {}
@@ -54,7 +50,6 @@
- b.dart
sources:
b.dart: |
- // @dart=2.9
import "main.dart";
class B extends A {}
@@ -66,6 +61,5 @@
- b.dart
sources:
b.dart: |
- // @dart=2.9
class B extends Object {}
expectedLibraryCount: 2
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.1.expect
index 9137423..9f49272 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.1.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:4:17: Error: Type 'A' not found.
+// org-dartlang-test:///b.dart:3:17: Error: Type 'A' not found.
// class B extends A {}
// ^
//
@@ -11,19 +11,9 @@
import "org-dartlang-test:///nonexisting.dart";
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -31,7 +21,7 @@
import "org-dartlang-test:///b.dart";
class A extends b::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super b::B::•()
;
}
@@ -40,7 +30,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///b.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.2.expect
index 9137423..9f49272 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.2.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:4:17: Error: Type 'A' not found.
+// org-dartlang-test:///b.dart:3:17: Error: Type 'A' not found.
// class B extends A {}
// ^
//
@@ -11,19 +11,9 @@
import "org-dartlang-test:///nonexisting.dart";
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -31,7 +21,7 @@
import "org-dartlang-test:///b.dart";
class A extends b::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super b::B::•()
;
}
@@ -40,7 +30,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///b.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.3.expect
index 9137423..9f49272 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.3.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:4:17: Error: Type 'A' not found.
+// org-dartlang-test:///b.dart:3:17: Error: Type 'A' not found.
// class B extends A {}
// ^
//
@@ -11,19 +11,9 @@
import "org-dartlang-test:///nonexisting.dart";
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -31,7 +21,7 @@
import "org-dartlang-test:///b.dart";
class A extends b::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super b::B::•()
;
}
@@ -40,7 +30,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///b.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.4.expect
index 9137423..9f49272 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.4.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:4:17: Error: Type 'A' not found.
+// org-dartlang-test:///b.dart:3:17: Error: Type 'A' not found.
// class B extends A {}
// ^
//
@@ -11,19 +11,9 @@
import "org-dartlang-test:///nonexisting.dart";
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -31,7 +21,7 @@
import "org-dartlang-test:///b.dart";
class A extends b::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super b::B::•()
;
}
@@ -40,7 +30,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///b.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.5.expect b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.5.expect
index 0b8a54d..663ba1c 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.5.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.5.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:4:7: Error: 'B' is a supertype of itself.
+// org-dartlang-test:///b.dart:3:7: Error: 'B' is a supertype of itself.
// class B extends A {}
// ^
//
@@ -11,26 +11,16 @@
import "org-dartlang-test:///main.dart";
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:4:7: Error: 'A' is a supertype of itself.
+// org-dartlang-test:///main.dart:3:7: Error: 'A' is a supertype of itself.
// class A extends B {}
// ^
//
@@ -38,18 +28,8 @@
import "org-dartlang-test:///b.dart";
class A extends dart.core::Object {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.6.expect b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.6.expect
index bbee82b..969d17c 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.6.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_2.yaml.world.6.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///b.dart" as b {
class B extends dart.core::Object {
- synthetic constructor •() → b::B*
+ synthetic constructor •() → b::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -22,7 +12,7 @@
import "org-dartlang-test:///b.dart";
class A extends b::B {
- synthetic constructor •() → main::A*
+ synthetic constructor •() → main::A
: super b::B::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml
index fc0ac60..50ce0fc 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml
@@ -21,16 +21,13 @@
]
}
main.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
mypackage/a.dart: |
- // @dart=2.9
import "package:mypackage/b.dart";
class Foo<T> {}
class Bar<T> extends Foo<T> {}
mypackage/b.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
class Baz extends Bar<int> implements Foo<String> {}
@@ -54,16 +51,13 @@
]
}
main.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
mypackage/a.dart: |
- // @dart=2.9
import "package:mypackage/b.dart";
class Foo<T> {}
class Bar<T> extends Foo<T> {}
mypackage/b.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
class Baz extends Bar<int> implements Foo<String> {}
@@ -82,7 +76,6 @@
- mypackage/b.dart
sources:
mypackage/b.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
class Baz extends Bar<int> {}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.1.expect
index 4c3a08d..4f73a26 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.1.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/b.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/b.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -41,8 +31,8 @@
import "package:mypackage/a.dart";
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> {
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> {
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.2.expect
index 4c3a08d..4f73a26 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.2.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/b.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/b.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -41,8 +31,8 @@
import "package:mypackage/a.dart";
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> {
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> {
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.3.expect
index 4c3a08d..4f73a26 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.3.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/b.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/b.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -41,8 +31,8 @@
import "package:mypackage/a.dart";
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> {
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> {
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.4.expect
index 4c3a08d..4f73a26 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.4.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/b.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/b.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -41,8 +31,8 @@
import "package:mypackage/a.dart";
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> {
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> {
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.5.expect b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.5.expect
index a820383..130d056 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.5.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_3.yaml.world.5.expect
@@ -8,23 +8,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -33,8 +23,8 @@
import "package:mypackage/a.dart";
- class Baz extends a::Bar<dart.core::int*> {
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> {
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml
index b53906c..b8e6d6a 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml
@@ -21,20 +21,16 @@
]
}
main.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
mypackage/a.dart: |
- // @dart=2.9
import "package:mypackage/b.dart";
class Foo<T> {}
class Bar<T> extends Foo<T> {}
mypackage/b.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
part "package:mypackage/c.dart";
mypackage/c.dart: |
- // @dart=2.9
part of "package:mypackage/b.dart";
class Baz extends Bar<int> implements Foo<String> {}
@@ -58,20 +54,16 @@
]
}
main.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
mypackage/a.dart: |
- // @dart=2.9
import "package:mypackage/b.dart";
class Foo<T> {}
class Bar<T> extends Foo<T> {}
mypackage/b.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
part "package:mypackage/c.dart";
mypackage/c.dart: |
- // @dart=2.9
part of "package:mypackage/b.dart";
class Baz extends Bar<int> implements Foo<String> {}
@@ -90,11 +82,9 @@
- mypackage/c.dart
sources:
mypackage/b.dart: |
- // @dart=2.9
import "package:mypackage/a.dart";
part "package:mypackage/c.dart";
mypackage/c.dart: |
- // @dart=2.9
part of "package:mypackage/b.dart";
class Baz extends Bar<int> {}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.1.expect
index 5a7c122..cd3c874 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.1.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/c.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/c.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -42,8 +32,8 @@
import "package:mypackage/a.dart";
part package:mypackage/c.dart;
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> { // from org-dartlang-test:///mypackage/c.dart
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> { // from org-dartlang-test:///mypackage/c.dart
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.2.expect
index 5a7c122..cd3c874 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.2.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/c.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/c.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -42,8 +32,8 @@
import "package:mypackage/a.dart";
part package:mypackage/c.dart;
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> { // from org-dartlang-test:///mypackage/c.dart
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> { // from org-dartlang-test:///mypackage/c.dart
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.3.expect
index 5a7c122..cd3c874 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.3.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/c.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/c.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -42,8 +32,8 @@
import "package:mypackage/a.dart";
part package:mypackage/c.dart;
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> { // from org-dartlang-test:///mypackage/c.dart
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> { // from org-dartlang-test:///mypackage/c.dart
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.4.expect
index 5a7c122..cd3c874 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.4.expect
@@ -2,7 +2,7 @@
//
// Problems in component:
//
-// org-dartlang-test:///mypackage/c.dart:4:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
+// org-dartlang-test:///mypackage/c.dart:3:7: Error: 'Baz' can't implement both 'Foo<int>' and 'Foo<String>'
// - 'Foo' is from 'package:mypackage/a.dart' ('org-dartlang-test:///mypackage/a.dart').
// class Baz extends Bar<int> implements Foo<String> {}
// ^
@@ -16,23 +16,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -42,8 +32,8 @@
import "package:mypackage/a.dart";
part package:mypackage/c.dart;
- class Baz extends a::Bar<dart.core::int*> implements a::Foo<dart.core::String*> { // from org-dartlang-test:///mypackage/c.dart
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> implements a::Foo<dart.core::String> { // from org-dartlang-test:///mypackage/c.dart
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.5.expect b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.5.expect
index 1979776..dce0301 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.5.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_4.yaml.world.5.expect
@@ -8,23 +8,13 @@
import "package:mypackage/b.dart";
- class Foo<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → a::Foo<a::Foo::T*>*
+ class Foo<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → a::Foo<a::Foo::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class Bar<T extends dart.core::Object* = dynamic> extends a::Foo<a::Bar::T*> {
- synthetic constructor •() → a::Bar<a::Bar::T*>*
+ class Bar<T extends dart.core::Object? = dynamic> extends a::Foo<a::Bar::T%> {
+ synthetic constructor •() → a::Bar<a::Bar::T%>
: super a::Foo::•()
;
}
@@ -34,8 +24,8 @@
import "package:mypackage/a.dart";
part package:mypackage/c.dart;
- class Baz extends a::Bar<dart.core::int*> { // from org-dartlang-test:///mypackage/c.dart
- synthetic constructor •() → b::Baz*
+ class Baz extends a::Bar<dart.core::int> { // from org-dartlang-test:///mypackage/c.dart
+ synthetic constructor •() → b::Baz
: super a::Bar::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml
index 861b204..ce15d09 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml
@@ -21,21 +21,18 @@
]
}
main.dart: |
- // @dart=2.9
import "package:mypackage/a.dart" as a;
main() {
a.main();
}
mypackage/a.dart: |
- // @dart=2.9
import "package:mypackage/b.dart";
main() {
foo();
}
mypackage/b.dart: |
- // @dart=2.9
foo() {
bar();
}
@@ -53,7 +50,6 @@
- package:mypackage/a.dart
sources:
mypackage/a.dart: |
- // @dart=2.9
import "package:mypackage/b.dart";
main() {
@@ -69,7 +65,6 @@
- package:mypackage/a.dart
sources:
mypackage/a.dart: |
- // @dart=2.9
main() {
foo();
foo();
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.1.expect
index 4aad801..8c28bf9 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.1.expect
@@ -19,12 +19,12 @@
//
// Problems in library:
//
-// org-dartlang-test:///mypackage/b.dart:3:3: Error: Method not found: 'bar'.
+// org-dartlang-test:///mypackage/b.dart:2:3: Error: Method not found: 'bar'.
// bar();
// ^^^
//
static method foo() → dynamic {
- invalid-expression "org-dartlang-test:///mypackage/b.dart:3:3: Error: Method not found: 'bar'.\n bar();\n ^^^";
+ invalid-expression "org-dartlang-test:///mypackage/b.dart:2:3: Error: Method not found: 'bar'.\n bar();\n ^^^";
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.2.expect
index 4aad801..8c28bf9 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.2.expect
@@ -19,12 +19,12 @@
//
// Problems in library:
//
-// org-dartlang-test:///mypackage/b.dart:3:3: Error: Method not found: 'bar'.
+// org-dartlang-test:///mypackage/b.dart:2:3: Error: Method not found: 'bar'.
// bar();
// ^^^
//
static method foo() → dynamic {
- invalid-expression "org-dartlang-test:///mypackage/b.dart:3:3: Error: Method not found: 'bar'.\n bar();\n ^^^";
+ invalid-expression "org-dartlang-test:///mypackage/b.dart:2:3: Error: Method not found: 'bar'.\n bar();\n ^^^";
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.3.expect
index 38fff53..3cd7e09 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_5.yaml.world.3.expect
@@ -20,12 +20,12 @@
//
// Problems in library:
//
-// org-dartlang-test:///mypackage/b.dart:3:3: Error: Method not found: 'bar'.
+// org-dartlang-test:///mypackage/b.dart:2:3: Error: Method not found: 'bar'.
// bar();
// ^^^
//
static method foo() → dynamic {
- invalid-expression "org-dartlang-test:///mypackage/b.dart:3:3: Error: Method not found: 'bar'.\n bar();\n ^^^";
+ invalid-expression "org-dartlang-test:///mypackage/b.dart:2:3: Error: Method not found: 'bar'.\n bar();\n ^^^";
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml
index 65569db..17a3a02 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml
@@ -11,14 +11,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class Foo<X extends Bar> {}
lib.dart: |
- // @dart=2.9
// The error is here: Foo is unknown
// (although it might give some other error instead)
- class Bar<X extends Foo<Null>> {}
+ class Bar<X extends Foo<Never>> {}
expectedLibraryCount: 2
errors: true
- entry: main.dart
@@ -28,7 +26,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class Foo {}
expectInitializeFromDill: false
@@ -41,13 +38,11 @@
- lib.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class Foo<X extends Bar> {}
lib.dart: |
- // @dart=2.9
import 'main.dart';
- class Bar<X extends Foo<Null>> {}
+ class Bar<X extends Foo<Never>> {}
expectInitializeFromDill: false
expectedLibraryCount: 2
\ No newline at end of file
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect
index 3ca4123..f24e0ee 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.1.expect
@@ -3,44 +3,24 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:4:21: Error: Type 'Foo' not found.
-// class Bar<X extends Foo<Null>> {}
+// org-dartlang-test:///lib.dart:3:21: Error: Type 'Foo' not found.
+// class Bar<X extends Foo<Never>> {}
// ^^^
//
class Bar<X extends invalid-type> extends dart.core::Object {
- synthetic constructor •() → lib::Bar<lib::Bar::X*>*
+ synthetic constructor •() → lib::Bar<lib::Bar::X%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib.dart";
- class Foo<X extends lib::Bar<invalid-type>*> extends dart.core::Object {
- synthetic constructor •() → main::Foo<main::Foo::X*>*
+ class Foo<X extends lib::Bar<invalid-type>> extends dart.core::Object {
+ synthetic constructor •() → main::Foo<main::Foo::X>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect
index 6e6264d..8561aaf 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.2.expect
@@ -3,25 +3,15 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:4:21: Error: Type 'Foo' not found.
-// class Bar<X extends Foo<Null>> {}
+// org-dartlang-test:///lib.dart:3:21: Error: Type 'Foo' not found.
+// class Bar<X extends Foo<Never>> {}
// ^^^
//
class Bar<X extends invalid-type> extends dart.core::Object {
- synthetic constructor •() → lib::Bar<lib::Bar::X*>*
+ synthetic constructor •() → lib::Bar<lib::Bar::X%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -29,18 +19,8 @@
import "org-dartlang-test:///lib.dart";
class Foo extends dart.core::Object {
- synthetic constructor •() → main::Foo*
+ synthetic constructor •() → main::Foo
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect
index 3c1d034..cd073e1 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_6.yaml.world.3.expect
@@ -3,39 +3,19 @@
import "org-dartlang-test:///main.dart";
- class Bar<X extends main::Foo<Null>*> extends dart.core::Object {
- synthetic constructor •() → lib::Bar<lib::Bar::X*>*
+ class Bar<X extends main::Foo<Never>> extends dart.core::Object {
+ synthetic constructor •() → lib::Bar<lib::Bar::X>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib.dart";
- class Foo<X extends lib::Bar<main::Foo<Null>*>*> extends dart.core::Object {
- synthetic constructor •() → main::Foo<main::Foo::X*>*
+ class Foo<X extends lib::Bar<main::Foo<Never>>> extends dart.core::Object {
+ synthetic constructor •() → main::Foo<main::Foo::X>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml
index c316a64..20ae3a1 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml
@@ -11,13 +11,11 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
}
lib.dart: |
- // @dart=2.9
import 'nonexisting.dart';
foo() {}
expectedLibraryCount: 2
@@ -29,7 +27,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
@@ -44,7 +41,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
import 'lib2.dart';
main() {
@@ -52,7 +48,6 @@
bar();
}
lib2.dart: |
- // @dart=2.9
bar() {
print("hello");
}
@@ -65,7 +60,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
bar() {
print("hello2");
}
@@ -79,7 +73,6 @@
- lib.dart
sources:
lib.dart: |
- // @dart=2.9
foo() {}
expectInitializeFromDill: false
expectedLibraryCount: 3
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.1.expect
index 4639701..2e97886 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.1.expect
@@ -17,7 +17,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///lib.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import 'nonexisting.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.2.expect
index 912f55c..65648e6 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.2.expect
@@ -18,7 +18,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///lib.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import 'nonexisting.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.3.expect
index 4066f1b..061945a 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.3.expect
@@ -25,7 +25,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///lib.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import 'nonexisting.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.4.expect b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.4.expect
index c9821f8..48606d6 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.4.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_7.yaml.world.4.expect
@@ -25,7 +25,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///lib.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import 'nonexisting.dart';
// ^
//
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml
index 0835d55..3eb0124 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml
@@ -12,13 +12,11 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
}
lib.dart: |
- // @dart=2.9
class Foo {
const Foo(int i) : assert(i > 0);
}
@@ -34,14 +32,12 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
import 'lib2.dart';
main() {
foo();
}
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
bar() {
const Foo(0);
@@ -55,7 +51,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.1.expect
index a45e928..06dcf28 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.1.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect
index 0c6d913..9b6093c 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.2.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,10 +14,10 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib2.dart:4:9: Error: Constant evaluation error:
+// org-dartlang-test:///lib2.dart:3:9: Error: Constant evaluation error:
// const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
//
@@ -51,5 +41,5 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.3.expect
index a45e928..06dcf28 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_8.yaml.world.3.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml
index ca1a5f1..308cc60 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml
+++ b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml
@@ -13,13 +13,11 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
main() {
foo();
}
lib.dart: |
- // @dart=2.9
class Foo {
const Foo(int i) : assert(i > 0);
}
@@ -35,7 +33,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
import 'lib2.dart';
import 'lib3.dart';
@@ -44,11 +41,9 @@
print(fooField2);
}
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField = const Foo(0);
lib3.dart: |
- // @dart=2.9
import 'lib2.dart';
const fooField2 = fooField;
expectInitializeFromDill: false
@@ -60,7 +55,6 @@
- lib2.dart
sources:
lib2.dart: |
- // @dart=2.9
import 'lib.dart';
const fooField = const Foo(1);
expectInitializeFromDill: false
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.1.expect b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.1.expect
index a45e928..06dcf28 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.1.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect
index bad435a..4fc3a38 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.2.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,39 +14,39 @@
//
// Problems in library:
//
-// org-dartlang-test:///lib2.dart:3:24: Error: Constant evaluation error:
+// org-dartlang-test:///lib2.dart:2:24: Error: Constant evaluation error:
// const fooField = const Foo(0);
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
-// org-dartlang-test:///lib2.dart:3:7: Context: While analyzing:
+// org-dartlang-test:///lib2.dart:2:7: Context: While analyzing:
// const fooField = const Foo(0);
// ^
//
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField = invalid-expression "This assertion failed.";
+ static const field lib::Foo fooField = invalid-expression "This assertion failed.";
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
//
// Problems in library:
//
-// org-dartlang-test:///lib3.dart:3:19: Error: Constant evaluation error:
+// org-dartlang-test:///lib3.dart:2:19: Error: Constant evaluation error:
// const fooField2 = fooField;
// ^
-// org-dartlang-test:///lib.dart:3:31: Context: This assertion failed.
+// org-dartlang-test:///lib.dart:2:31: Context: This assertion failed.
// const Foo(int i) : assert(i > 0);
// ^
-// org-dartlang-test:///lib3.dart:3:7: Context: While analyzing:
+// org-dartlang-test:///lib3.dart:2:7: Context: While analyzing:
// const fooField2 = fooField;
// ^
//
import "org-dartlang-test:///lib2.dart";
- static const field lib::Foo* fooField2 = invalid-expression "This assertion failed.";
+ static const field lib::Foo fooField2 = invalid-expression "This assertion failed.";
}
library from "org-dartlang-test:///main.dart" as main {
@@ -73,5 +63,5 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
diff --git a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect
index c5b8118..32b7c54 100644
--- a/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/reissue_errors_9.yaml.world.3.expect
@@ -2,19 +2,9 @@
library from "org-dartlang-test:///lib.dart" as lib {
class Foo extends dart.core::Object /*hasConstConstructor*/ {
- const constructor •(dart.core::int* i) → lib::Foo*
- : assert(i.{dart.core::num::>}(0){(dart.core::num*) →* dart.core::bool*}), super dart.core::Object::•()
+ const constructor •(dart.core::int i) → lib::Foo
+ : assert(i.{dart.core::num::>}(0){(dart.core::num) → dart.core::bool}), super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
static method foo() → dynamic {
new lib::Foo::•(0);
@@ -24,13 +14,13 @@
import "org-dartlang-test:///lib.dart";
- static const field lib::Foo* fooField = #C1;
+ static const field lib::Foo fooField = #C1;
}
library from "org-dartlang-test:///lib3.dart" as lib3 {
import "org-dartlang-test:///lib2.dart";
- static const field lib::Foo* fooField2 = #C1;
+ static const field lib::Foo fooField2 = #C1;
}
library from "org-dartlang-test:///main.dart" as main {
@@ -50,6 +40,6 @@
Constructor coverage from constants:
org-dartlang-test:///lib2.dart:
-- Foo. (from org-dartlang-test:///lib.dart:3:9)
+- Foo. (from org-dartlang-test:///lib.dart:2:9)
- Object. (from org-dartlang-sdk:///sdk/lib/core/object.dart:25:9)
diff --git a/pkg/front_end/testcases/incremental/remove_import_with_error.yaml b/pkg/front_end/testcases/incremental/remove_import_with_error.yaml
index 2451af9..5965f18 100644
--- a/pkg/front_end/testcases/incremental/remove_import_with_error.yaml
+++ b/pkg/front_end/testcases/incremental/remove_import_with_error.yaml
@@ -13,7 +13,6 @@
warnings: false
sources:
main.dart: |
- // @dart=2.9
library mainLibrary;
import "b.dart" as b;
@@ -21,7 +20,6 @@
b.foo();
}
b.dart: |
- // @dart=2.9
library bLibrary;
foo() {
@@ -45,14 +43,12 @@
warnings: false
sources:
main.dart: |
- // @dart=2.9
library mainLibrary;
main() {
print("hello");
}
b.dart: |
- // @dart=2.9
library bLibrary;
foo() {
diff --git a/pkg/front_end/testcases/incremental/remove_import_with_error.yaml.world.1.expect b/pkg/front_end/testcases/incremental/remove_import_with_error.yaml.world.1.expect
index 542be09..8627975 100644
--- a/pkg/front_end/testcases/incremental/remove_import_with_error.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/remove_import_with_error.yaml.world.1.expect
@@ -2,60 +2,30 @@
//
// Problems in component:
//
-// org-dartlang-test:///b.dart:15:7: Error: 'C' can't implement both 'I<int>' and 'I<String>'
+// org-dartlang-test:///b.dart:14:7: Error: 'C' can't implement both 'I<int>' and 'I<String>'
// - 'I' is from 'org-dartlang-test:///b.dart'.
// class C extends A implements B {}
// ^
//
library bLibrary from "org-dartlang-test:///b.dart" as bLi {
- class I<T extends dart.core::Object* = dynamic> extends dart.core::Object {
- synthetic constructor •() → bLi::I<bLi::I::T*>*
+ class I<T extends dart.core::Object? = dynamic> extends dart.core::Object {
+ synthetic constructor •() → bLi::I<bLi::I::T%>
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class A extends dart.core::Object implements bLi::I<dart.core::int*> {
- synthetic constructor •() → bLi::A*
+ class A extends dart.core::Object implements bLi::I<dart.core::int> {
+ synthetic constructor •() → bLi::A
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
- class B extends dart.core::Object implements bLi::I<dart.core::String*> {
- synthetic constructor •() → bLi::B*
+ class B extends dart.core::Object implements bLi::I<dart.core::String> {
+ synthetic constructor •() → bLi::B
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
class C extends bLi::A implements bLi::B {
- synthetic constructor •() → bLi::C*
+ synthetic constructor •() → bLi::C
: super bLi::A::•()
;
}
diff --git a/pkg/front_end/testcases/incremental/strongmode_mixins.yaml b/pkg/front_end/testcases/incremental/strongmode_mixins.yaml
index d55612e..fbfb5bd 100644
--- a/pkg/front_end/testcases/incremental/strongmode_mixins.yaml
+++ b/pkg/front_end/testcases/incremental/strongmode_mixins.yaml
@@ -12,10 +12,8 @@
- a.dart
sources:
a.dart: |
- // @dart=2.9
import 'b.dart';
class A extends Object with B<Object>, C {}
b.dart: |
- // @dart=2.9
mixin C<T extends Object> on B<T> {}
abstract class B<ChildType extends Object> extends Object {}
\ No newline at end of file
diff --git a/pkg/front_end/testcases/incremental/strongmode_mixins_2.yaml b/pkg/front_end/testcases/incremental/strongmode_mixins_2.yaml
index 19f8ea2..cb60ad7 100644
--- a/pkg/front_end/testcases/incremental/strongmode_mixins_2.yaml
+++ b/pkg/front_end/testcases/incremental/strongmode_mixins_2.yaml
@@ -10,13 +10,11 @@
- a.dart
sources:
a.dart: |
- // @dart=2.9
import 'b.dart';
class A extends Object with B<C>, D {}
b.dart: |
- // @dart=2.9
mixin B<ChildType extends Object> {
- ChildType get child => null;
+ ChildType get child => throw '';
set child(ChildType value) {}
}
diff --git a/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml b/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml
index c41e41a..40aae93 100644
--- a/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml
+++ b/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml
@@ -25,7 +25,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import 'lib.dart';
class A extends B with C, D {
A(E parameter) : super.named(parameter);
@@ -33,7 +32,6 @@
mixin C { }
mixin D { }
lib.dart: |
- // @dart=2.9
class E {}
abstract class B {
final E _field;
diff --git a/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.1.expect b/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.1.expect
index 38493c4..266c1c0 100644
--- a/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.1.expect
@@ -2,35 +2,15 @@
library from "org-dartlang-test:///lib.dart" as lib {
class E extends dart.core::Object {
- synthetic constructor •() → lib::E*
+ synthetic constructor •() → lib::E
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class B extends dart.core::Object {
- final field lib::E* _field;
- constructor named(lib::E* _field) → lib::B*
+ final field lib::E _field;
+ constructor named(lib::E _field) → lib::B
: lib::B::_field = _field, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -38,42 +18,22 @@
import "org-dartlang-test:///lib.dart";
abstract class _A&B&C extends lib::B implements main::C /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor named(lib::E* _field) → main::_A&B&C*
+ synthetic constructor named(lib::E _field) → main::_A&B&C
: super lib::B::named(_field)
;
}
abstract class _A&B&C&D extends main::_A&B&C implements main::D /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor named(lib::E* _field) → main::_A&B&C&D*
+ synthetic constructor named(lib::E _field) → main::_A&B&C&D
: super main::_A&B&C::named(_field)
;
}
class A extends main::_A&B&C&D {
- constructor •(lib::E* parameter) → main::A*
+ constructor •(lib::E parameter) → main::A
: super main::_A&B&C&D::named(parameter)
;
}
abstract class C extends dart.core::Object /*isMixinDeclaration*/ {
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class D extends dart.core::Object /*isMixinDeclaration*/ {
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.2.expect b/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.2.expect
index 38493c4..266c1c0 100644
--- a/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/type_change_on_recompile.yaml.world.2.expect
@@ -2,35 +2,15 @@
library from "org-dartlang-test:///lib.dart" as lib {
class E extends dart.core::Object {
- synthetic constructor •() → lib::E*
+ synthetic constructor •() → lib::E
: super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class B extends dart.core::Object {
- final field lib::E* _field;
- constructor named(lib::E* _field) → lib::B*
+ final field lib::E _field;
+ constructor named(lib::E _field) → lib::B
: lib::B::_field = _field, super dart.core::Object::•()
;
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
library from "org-dartlang-test:///main.dart" as main {
@@ -38,42 +18,22 @@
import "org-dartlang-test:///lib.dart";
abstract class _A&B&C extends lib::B implements main::C /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor named(lib::E* _field) → main::_A&B&C*
+ synthetic constructor named(lib::E _field) → main::_A&B&C
: super lib::B::named(_field)
;
}
abstract class _A&B&C&D extends main::_A&B&C implements main::D /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor named(lib::E* _field) → main::_A&B&C&D*
+ synthetic constructor named(lib::E _field) → main::_A&B&C&D
: super main::_A&B&C::named(_field)
;
}
class A extends main::_A&B&C&D {
- constructor •(lib::E* parameter) → main::A*
+ constructor •(lib::E parameter) → main::A
: super main::_A&B&C&D::named(parameter)
;
}
abstract class C extends dart.core::Object /*isMixinDeclaration*/ {
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
abstract class D extends dart.core::Object /*isMixinDeclaration*/ {
- abstract member-signature get _identityHashCode() → dart.core::int*; -> dart.core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → dart.core::bool*; -> dart.core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → dart.core::bool*; -> dart.core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → dart.core::bool*; -> dart.core::Object::==
- abstract member-signature get hashCode() → dart.core::int*; -> dart.core::Object::hashCode
- abstract member-signature method toString() → dart.core::String*; -> dart.core::Object::toString
- abstract member-signature method noSuchMethod(dart.core::Invocation* invocation) → dynamic; -> dart.core::Object::noSuchMethod
- abstract member-signature get runtimeType() → dart.core::Type*; -> dart.core::Object::runtimeType
}
}
diff --git a/pkg/front_end/testcases/incremental/typedef_crash_01.yaml b/pkg/front_end/testcases/incremental/typedef_crash_01.yaml
index 44cbeeb..ca9f7f1 100644
--- a/pkg/front_end/testcases/incremental/typedef_crash_01.yaml
+++ b/pkg/front_end/testcases/incremental/typedef_crash_01.yaml
@@ -10,11 +10,9 @@
errors: false
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
typedef G<T> = Function(F<T>);
lib.dart: |
- // @dart=2.9
typedef F<T> = Function();
expectedLibraryCount: 2
- entry: main.dart
@@ -24,7 +22,6 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "lib.dart";
typedef G<T> = Function(F<T>);
main() {
diff --git a/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.1.expect b/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.1.expect
index 6b0429d..3f1ae77 100644
--- a/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.1.expect
@@ -1,11 +1,11 @@
main = <No Member>;
library from "org-dartlang-test:///lib.dart" as lib {
- typedef F<unrelated T extends dart.core::Object* = dynamic> = () →* dynamic;
+ typedef F<unrelated T extends dart.core::Object? = dynamic> = () → dynamic;
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib.dart";
- typedef G<unrelated T extends dart.core::Object* = dynamic> = (() →* dynamic) →* dynamic;
+ typedef G<unrelated T extends dart.core::Object? = dynamic> = (() → dynamic) → dynamic;
}
diff --git a/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.2.expect b/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.2.expect
index d7c037a..9c9a9ca 100644
--- a/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/typedef_crash_01.yaml.world.2.expect
@@ -1,13 +1,13 @@
main = main::main;
library from "org-dartlang-test:///lib.dart" as lib {
- typedef F<unrelated T extends dart.core::Object* = dynamic> = () →* dynamic;
+ typedef F<unrelated T extends dart.core::Object? = dynamic> = () → dynamic;
}
library from "org-dartlang-test:///main.dart" as main {
import "org-dartlang-test:///lib.dart";
- typedef G<unrelated T extends dart.core::Object* = dynamic> = (() →* dynamic) →* dynamic;
+ typedef G<unrelated T extends dart.core::Object? = dynamic> = (() → dynamic) → dynamic;
static method main() → dynamic {
dart.core::print("Hello");
}
diff --git a/pkg/front_end/testcases/incremental/unused_file.yaml b/pkg/front_end/testcases/incremental/unused_file.yaml
index c2569c1..1282d0d 100644
--- a/pkg/front_end/testcases/incremental/unused_file.yaml
+++ b/pkg/front_end/testcases/incremental/unused_file.yaml
@@ -12,14 +12,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
main() {
print("hello");
b();
}
b.dart: |
- // @dart=2.9
b() {
print("b");
}
@@ -29,12 +27,10 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
main() {
print("hello");
}
b.dart: |
- // @dart=2.9
b() {
print("b");
}
diff --git a/pkg/front_end/testcases/incremental/updated_package_1.yaml b/pkg/front_end/testcases/incremental/updated_package_1.yaml
index 67c83b0..bbb22c3 100644
--- a/pkg/front_end/testcases/incremental/updated_package_1.yaml
+++ b/pkg/front_end/testcases/incremental/updated_package_1.yaml
@@ -12,14 +12,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -27,7 +25,6 @@
print("v0.1.0");
}
package_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
@@ -51,14 +48,12 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -66,13 +61,11 @@
print("v0.1.0");
}
package_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
}
package_0.1.1/b.dart: |
- // @dart=2.9
b() {
print("hello from v0.1.1");
}
diff --git a/pkg/front_end/testcases/incremental/updated_package_2.yaml b/pkg/front_end/testcases/incremental/updated_package_2.yaml
index 6e7ae11..50d7eb3 100644
--- a/pkg/front_end/testcases/incremental/updated_package_2.yaml
+++ b/pkg/front_end/testcases/incremental/updated_package_2.yaml
@@ -12,14 +12,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -27,7 +25,6 @@
print("v0.1.0");
}
package_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
@@ -50,14 +47,12 @@
expectInitializeFromDill: false
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -65,13 +60,11 @@
print("v0.1.0");
}
package_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
}
package_0.1.1/b.dart: |
- // @dart=2.9
b() {
print("hello from v0.1.1");
}
diff --git a/pkg/front_end/testcases/incremental/updated_package_3.yaml b/pkg/front_end/testcases/incremental/updated_package_3.yaml
index e3b97b7..53956fd 100644
--- a/pkg/front_end/testcases/incremental/updated_package_3.yaml
+++ b/pkg/front_end/testcases/incremental/updated_package_3.yaml
@@ -12,14 +12,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -27,7 +25,6 @@
print("v0.1.0");
}
package_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
@@ -51,7 +48,6 @@
- .packages
sources:
package_0.1.1/b.dart: |
- // @dart=2.9
b() {
print("hello from v0.1.1");
}
diff --git a/pkg/front_end/testcases/incremental/updated_package_4.yaml b/pkg/front_end/testcases/incremental/updated_package_4.yaml
index e5d21b3..240cae3 100644
--- a/pkg/front_end/testcases/incremental/updated_package_4.yaml
+++ b/pkg/front_end/testcases/incremental/updated_package_4.yaml
@@ -11,14 +11,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package/b.dart: |
- // @dart=2.9
b() {
print("hello from package");
}
diff --git a/pkg/front_end/testcases/incremental/updated_package_4.yaml.world.2.expect b/pkg/front_end/testcases/incremental/updated_package_4.yaml.world.2.expect
index 3dd8e8b..8607a05 100644
--- a/pkg/front_end/testcases/incremental/updated_package_4.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/updated_package_4.yaml.world.2.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.
+// org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.
// b();
// ^
//
@@ -12,14 +12,14 @@
static method main() → dynamic {
dart.core::print("hello");
- invalid-expression "org-dartlang-test:///main.dart:5:3: Error: Method not found: 'b'.\n b();\n ^";
+ invalid-expression "org-dartlang-test:///main.dart:4:3: Error: Method not found: 'b'.\n b();\n ^";
}
}
library from "package:example/b.dart" as b {
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:8: Error: Not found: 'package:example/b.dart'
+// org-dartlang-test:///main.dart:1:8: Error: Not found: 'package:example/b.dart'
// import "package:example/b.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/updated_package_uri.yaml b/pkg/front_end/testcases/incremental/updated_package_uri.yaml
index 53d1725..5dc47c2 100644
--- a/pkg/front_end/testcases/incremental/updated_package_uri.yaml
+++ b/pkg/front_end/testcases/incremental/updated_package_uri.yaml
@@ -12,14 +12,12 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:example/b.dart";
main() {
print("hello");
b();
}
package_0.1.0/a.dart: |
- // @dart=2.9
a() {
la1();
}
@@ -27,7 +25,6 @@
print("v0.1.0");
}
package_0.1.0/b.dart: |
- // @dart=2.9
import "a.dart";
b() {
a();
@@ -48,7 +45,6 @@
expectInitializeFromDill: false
sources:
package_0.1.1/b.dart: |
- // @dart=2.9
b() {
print("hello from v0.1.1");
}
diff --git a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml
index eabf11d..22c9d3b 100644
--- a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml
+++ b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml
@@ -9,7 +9,6 @@
- entry: set-Uint8List.dart
sources:
set-Uint8List.dart: |
- // @dart=2.9
import 'dart:typed_data';
void setUint8List(Uint8List list, int index, int value) {
list[index] = value;
@@ -23,7 +22,6 @@
- set-Int8List.dart
sources:
set-Int8List.dart: |
- // @dart=2.9
import 'dart:typed_data';
void setInt8List(Int8List list, int index, int value) {
list[index] = value;
@@ -37,7 +35,6 @@
- set-Uint8List.dart
sources:
set-Uint8List.dart: |
- // @dart=2.9
import 'dart:typed_data';
void setUint8List(Uint8List list, int index, int value) {
list[index] = value;
diff --git a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.1.expect b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.1.expect
index 71ed943..4f0757e 100644
--- a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.1.expect
@@ -3,7 +3,7 @@
import "dart:typed_data";
- static method setUint8List(dart.typed_data::Uint8List* list, dart.core::int* index, dart.core::int* value) → void {
- list.{dart.core::List::[]=}(index, value){(dart.core::int*, dart.core::int*) →* void};
+ static method setUint8List(dart.typed_data::Uint8List list, dart.core::int index, dart.core::int value) → void {
+ list.{dart.core::List::[]=}(index, value){(dart.core::int, dart.core::int) → void};
}
}
diff --git a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.2.expect b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.2.expect
index 5cb6157..e1ec886 100644
--- a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.2.expect
@@ -3,7 +3,7 @@
import "dart:typed_data";
- static method setInt8List(dart.typed_data::Int8List* list, dart.core::int* index, dart.core::int* value) → void {
- list.{dart.core::List::[]=}(index, value){(dart.core::int*, dart.core::int*) →* void};
+ static method setInt8List(dart.typed_data::Int8List list, dart.core::int index, dart.core::int value) → void {
+ list.{dart.core::List::[]=}(index, value){(dart.core::int, dart.core::int) → void};
}
}
diff --git a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.3.expect b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.3.expect
index 71ed943..4f0757e 100644
--- a/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.3.expect
+++ b/pkg/front_end/testcases/incremental/vm_IRTest_TypedDataAOT_FunctionalIndexError.yaml.world.3.expect
@@ -3,7 +3,7 @@
import "dart:typed_data";
- static method setUint8List(dart.typed_data::Uint8List* list, dart.core::int* index, dart.core::int* value) → void {
- list.{dart.core::List::[]=}(index, value){(dart.core::int*, dart.core::int*) →* void};
+ static method setUint8List(dart.typed_data::Uint8List list, dart.core::int index, dart.core::int value) → void {
+ list.{dart.core::List::[]=}(index, value){(dart.core::int, dart.core::int) → void};
}
}
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml
index 0d6af65..9f3b66a 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml
@@ -11,10 +11,8 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
b.dart: |
- // @dart=2.9
import "nonexisting.dart";
expectedLibraryCount: 2
expectedSyntheticLibraryCount: 1
@@ -24,10 +22,8 @@
- main.dart
sources:
main.dart: |
- // @dart=2.9
import "b.dart";
b.dart: |
- // @dart=2.9
import "nonexisting.dart";
expectedLibraryCount: 2
expectedSyntheticLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.1.expect b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.1.expect
index a861bfe..3e591c7 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.1.expect
@@ -13,7 +13,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///b.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.2.expect b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.2.expect
index a861bfe..3e591c7 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.2.expect
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_1.yaml.world.2.expect
@@ -13,7 +13,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///b.dart:2:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
+// org-dartlang-test:///b.dart:1:8: Error: Error when reading 'org-dartlang-test:///nonexisting.dart': File org-dartlang-test:///nonexisting.dart does not exist.
// import "nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_2.yaml b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_2.yaml
index bb4a675..50f16a6 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_2.yaml
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_2.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "dart:foo/nonexisting.dart";
expectedLibraryCount: 1
expectedSyntheticLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml
index 48439c7..6d8eb3f 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
part "dart:foo/nonexisting.dart";
expectedLibraryCount: 1
expectedSyntheticLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml.world.1.expect b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml.world.1.expect
index 95c6981..34996e7 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_3.yaml.world.1.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-untranslatable-uri:dart%3Afoo%2Fnonexisting.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-untranslatable-uri:dart%3Afoo%2Fnonexisting.dart' as a part, because it has no 'part of' declaration.
// part "dart:foo/nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml
index 5822b85..1af29a8 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml
@@ -12,7 +12,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
part "package:foo/nonexisting.dart";
expectedLibraryCount: 1
expectedSyntheticLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml.world.1.expect b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml.world.1.expect
index 8b98f2c..76e7779 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_4.yaml.world.1.expect
@@ -3,7 +3,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Can't use 'org-dartlang-untranslatable-uri:package%3Afoo%2Fnonexisting.dart' as a part, because it has no 'part of' declaration.
+// org-dartlang-test:///main.dart:1:6: Error: Can't use 'org-dartlang-untranslatable-uri:package%3Afoo%2Fnonexisting.dart' as a part, because it has no 'part of' declaration.
// part "package:foo/nonexisting.dart";
// ^
//
@@ -14,7 +14,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:6: Error: Not found: 'package:foo/nonexisting.dart'
+// org-dartlang-test:///main.dart:1:6: Error: Not found: 'package:foo/nonexisting.dart'
// part "package:foo/nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml
index 7be194b..9aa7ede 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml
@@ -11,7 +11,6 @@
- entry: main.dart
sources:
main.dart: |
- // @dart=2.9
import "package:foo/nonexisting.dart";
expectedLibraryCount: 1
expectedSyntheticLibraryCount: 1
diff --git a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml.world.1.expect b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml.world.1.expect
index 48013d7..2ba0d73 100644
--- a/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml.world.1.expect
+++ b/pkg/front_end/testcases/incremental/working_with_synthetic_libraries_5.yaml.world.1.expect
@@ -8,7 +8,7 @@
//
// Problems in library:
//
-// org-dartlang-test:///main.dart:2:8: Error: Not found: 'package:foo/nonexisting.dart'
+// org-dartlang-test:///main.dart:1:8: Error: Not found: 'package:foo/nonexisting.dart'
// import "package:foo/nonexisting.dart";
// ^
//
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart
index 6d6cb6e..cece67b 100644
--- a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,8 +14,8 @@
}
void test() {
- var /*@type=dynamic */ x = new C();
- var /*@type=dynamic */ y = new D(1);
+ var /*@type=dynamic*/ x = new C();
+ var /*@type=dynamic*/ y = new D(1);
D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
}
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.expect
index e38191b..de39b36 100644
--- a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.expect
@@ -2,15 +2,15 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:15:34: Error: The class 'C' is abstract and can't be instantiated.
-// var /*@type=dynamic */ x = new C();
-// ^
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:17:33: Error: The class 'C' is abstract and can't be instantiated.
+// var /*@type=dynamic*/ x = new C();
+// ^
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:16:34: Error: The class 'D' is abstract and can't be instantiated.
-// var /*@type=dynamic */ y = new D(1);
-// ^
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:18:33: Error: The class 'D' is abstract and can't be instantiated.
+// var /*@type=dynamic*/ y = new D(1);
+// ^
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:17:24: Error: The class 'D' is abstract and can't be instantiated.
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:19:24: Error: The class 'D' is abstract and can't be instantiated.
// D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
// ^
//
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.modular.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.modular.expect
index e38191b..de39b36 100644
--- a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.modular.expect
@@ -2,15 +2,15 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:15:34: Error: The class 'C' is abstract and can't be instantiated.
-// var /*@type=dynamic */ x = new C();
-// ^
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:17:33: Error: The class 'C' is abstract and can't be instantiated.
+// var /*@type=dynamic*/ x = new C();
+// ^
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:16:34: Error: The class 'D' is abstract and can't be instantiated.
-// var /*@type=dynamic */ y = new D(1);
-// ^
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:18:33: Error: The class 'D' is abstract and can't be instantiated.
+// var /*@type=dynamic*/ y = new D(1);
+// ^
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:17:24: Error: The class 'D' is abstract and can't be instantiated.
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:19:24: Error: The class 'D' is abstract and can't be instantiated.
// D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
// ^
//
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.transformed.expect
index ff4ca8f..a0990bb 100644
--- a/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation.dart.weak.transformed.expect
@@ -2,15 +2,15 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:15:34: Error: The class 'C' is abstract and can't be instantiated.
-// var /*@type=dynamic */ x = new C();
-// ^
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:17:33: Error: The class 'C' is abstract and can't be instantiated.
+// var /*@type=dynamic*/ x = new C();
+// ^
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:16:34: Error: The class 'D' is abstract and can't be instantiated.
-// var /*@type=dynamic */ y = new D(1);
-// ^
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:18:33: Error: The class 'D' is abstract and can't be instantiated.
+// var /*@type=dynamic*/ y = new D(1);
+// ^
//
-// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:17:24: Error: The class 'D' is abstract and can't be instantiated.
+// pkg/front_end/testcases/inference/abstract_class_instantiation.dart:19:24: Error: The class 'D' is abstract and can't be instantiated.
// D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
// ^
//
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart
new file mode 100644
index 0000000..81020ff
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+abstract class C {}
+
+abstract class D<T> {
+ D(T t);
+}
+
+void test() {
+ var /*@type=Never*/ x = new C();
+ var /*@type=Never*/ y = new D(1);
+ D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.textual_outline.expect
new file mode 100644
index 0000000..18f0b60
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.textual_outline.expect
@@ -0,0 +1,10 @@
+library test;
+
+abstract class C {}
+
+abstract class D<T> {
+ D(T t);
+}
+
+void test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1aba12d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.textual_outline_modelled.expect
@@ -0,0 +1,10 @@
+library test;
+
+abstract class C {}
+
+abstract class D<T> {
+ D(T t);
+}
+
+main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.expect
new file mode 100644
index 0000000..ecc1c12
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:15:31: Error: The class 'C' is abstract and can't be instantiated.
+// var /*@type=Never*/ x = new C();
+// ^
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:16:31: Error: The class 'D' is abstract and can't be instantiated.
+// var /*@type=Never*/ y = new D(1);
+// ^
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:17:24: Error: The class 'D' is abstract and can't be instantiated.
+// D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:_internal" as _in;
+
+abstract class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::D::T% t) → self::D<self::D::T%>
+ : super core::Object::•()
+ ;
+}
+static method test() → void {
+ Never x = throw new core::AbstractClassInstantiationError::•("C");
+ Never y = let final Never #t1 = let final core::Object? #t2 = 1 in throw new core::AbstractClassInstantiationError::•("D") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ self::D<core::List<core::int>> z = let final Never #t3 = let final core::Object? #t4 = <dynamic>[] in throw new core::AbstractClassInstantiationError::•("D") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.modular.expect
new file mode 100644
index 0000000..ecc1c12
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.modular.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:15:31: Error: The class 'C' is abstract and can't be instantiated.
+// var /*@type=Never*/ x = new C();
+// ^
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:16:31: Error: The class 'D' is abstract and can't be instantiated.
+// var /*@type=Never*/ y = new D(1);
+// ^
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:17:24: Error: The class 'D' is abstract and can't be instantiated.
+// D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:_internal" as _in;
+
+abstract class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::D::T% t) → self::D<self::D::T%>
+ : super core::Object::•()
+ ;
+}
+static method test() → void {
+ Never x = throw new core::AbstractClassInstantiationError::•("C");
+ Never y = let final Never #t1 = let final core::Object? #t2 = 1 in throw new core::AbstractClassInstantiationError::•("D") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ self::D<core::List<core::int>> z = let final Never #t3 = let final core::Object? #t4 = <dynamic>[] in throw new core::AbstractClassInstantiationError::•("D") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.outline.expect
new file mode 100644
index 0000000..0012249
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.outline.expect
@@ -0,0 +1,16 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class C extends core::Object {
+ synthetic constructor •() → self::C
+ ;
+}
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::D::T% t) → self::D<self::D::T%>
+ ;
+}
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.transformed.expect
new file mode 100644
index 0000000..b002d96
--- /dev/null
+++ b/pkg/front_end/testcases/inference/abstract_class_instantiation2.dart.weak.transformed.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:15:31: Error: The class 'C' is abstract and can't be instantiated.
+// var /*@type=Never*/ x = new C();
+// ^
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:16:31: Error: The class 'D' is abstract and can't be instantiated.
+// var /*@type=Never*/ y = new D(1);
+// ^
+//
+// pkg/front_end/testcases/inference/abstract_class_instantiation2.dart:17:24: Error: The class 'D' is abstract and can't be instantiated.
+// D<List<int>> z = new D(/*@typeArgs=dynamic*/ []);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:_internal" as _in;
+
+abstract class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+}
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::D::T% t) → self::D<self::D::T%>
+ : super core::Object::•()
+ ;
+}
+static method test() → void {
+ Never x = throw new core::AbstractClassInstantiationError::•("C");
+ Never y = let final Never #t1 = let final core::Object? #t2 = 1 in throw new core::AbstractClassInstantiationError::•("D") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+ self::D<core::List<core::int>> z = let final Never #t3 = let final core::Object? #t4 = core::_GrowableList::•<dynamic>(0) in throw new core::AbstractClassInstantiationError::•("D") in throw new _in::ReachabilityError::•("`null` encountered as the result from expression with type `Never`.");
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/assert.dart b/pkg/front_end/testcases/inference/assert.dart
index af39c92..81ffdb5 100644
--- a/pkg/front_end/testcases/inference/assert.dart
+++ b/pkg/front_end/testcases/inference/assert.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
void test() {
- assert(/*@ typeArgs=bool* */ f());
- assert(/*@ typeArgs=bool* */ f(), /*@ typeArgs=dynamic */ f());
+ assert(/*@typeArgs=bool*/ f());
+ assert(/*@typeArgs=bool*/ f(), /*@ typeArgs=dynamic */ f());
}
main() {}
diff --git a/pkg/front_end/testcases/inference/assert.dart.textual_outline.expect b/pkg/front_end/testcases/inference/assert.dart.textual_outline.expect
index c1725cf..0afd8e8 100644
--- a/pkg/front_end/testcases/inference/assert.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/assert.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
void test() {}
main() {}
diff --git a/pkg/front_end/testcases/inference/assert.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/assert.dart.textual_outline_modelled.expect
index f75a9d3..c8d2993 100644
--- a/pkg/front_end/testcases/inference/assert.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/assert.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
main() {}
void test() {}
diff --git a/pkg/front_end/testcases/inference/assert.dart.weak.expect b/pkg/front_end/testcases/inference/assert.dart.weak.expect
index 1122765..8cae19e 100644
--- a/pkg/front_end/testcases/inference/assert.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/assert.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- assert(self::f<core::bool*>());
- assert(self::f<core::bool*>(), self::f<dynamic>());
+ assert(self::f<core::bool>());
+ assert(self::f<core::bool>(), self::f<dynamic>());
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/assert.dart.weak.modular.expect b/pkg/front_end/testcases/inference/assert.dart.weak.modular.expect
index 1122765..8cae19e 100644
--- a/pkg/front_end/testcases/inference/assert.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/assert.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- assert(self::f<core::bool*>());
- assert(self::f<core::bool*>(), self::f<dynamic>());
+ assert(self::f<core::bool>());
+ assert(self::f<core::bool>(), self::f<dynamic>());
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/assert.dart.weak.outline.expect b/pkg/front_end/testcases/inference/assert.dart.weak.outline.expect
index dfd99e1..247b913 100644
--- a/pkg/front_end/testcases/inference/assert.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/assert.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/assert.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/assert.dart.weak.transformed.expect
index 1122765..8cae19e 100644
--- a/pkg/front_end/testcases/inference/assert.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/assert.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- assert(self::f<core::bool*>());
- assert(self::f<core::bool*>(), self::f<dynamic>());
+ assert(self::f<core::bool>());
+ assert(self::f<core::bool>(), self::f<dynamic>());
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart b/pkg/front_end/testcases/inference/assert_initializer.dart
index 800fcfa..9f3e894 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart
@@ -1,21 +1,21 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
- C.expressionOnly() : assert(/*@ typeArgs=bool* */ f());
+ C.expressionOnly() : assert(/*@typeArgs=bool*/ f());
C.expressionAndMessage()
- : assert(/*@ typeArgs=bool* */ f(), /*@ typeArgs=dynamic */ f());
+ : assert(/*@typeArgs=bool*/ f(), /*@ typeArgs=dynamic */ f());
}
main() {
// Test type inference of assert statements just to verify that the behavior
// is the same.
- assert(/*@ typeArgs=bool* */ f());
- assert(/*@ typeArgs=bool* */ f(), /*@ typeArgs=dynamic */ f());
+ assert(/*@typeArgs=bool*/ f());
+ assert(/*@typeArgs=bool*/ f(), /*@ typeArgs=dynamic */ f());
}
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline.expect
index 60baab5..b5eb36d 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
C.expressionOnly() : assert(f());
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline_modelled.expect
index 8b4a391..7154567 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
C.expressionAndMessage() : assert(f(), f());
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.expect b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.expect
index 8d3a6de..4532dfc 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor expressionOnly() → self::C*
- : assert(self::f<core::bool*>()), super core::Object::•()
+ constructor expressionOnly() → self::C
+ : assert(self::f<core::bool>()), super core::Object::•()
;
- constructor expressionAndMessage() → self::C*
- : assert(self::f<core::bool*>(), self::f<dynamic>()), super core::Object::•()
+ constructor expressionAndMessage() → self::C
+ : assert(self::f<core::bool>(), self::f<dynamic>()), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {
- assert(self::f<core::bool*>());
- assert(self::f<core::bool*>(), self::f<dynamic>());
+ assert(self::f<core::bool>());
+ assert(self::f<core::bool>(), self::f<dynamic>());
}
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.modular.expect b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.modular.expect
index 8d3a6de..4532dfc 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor expressionOnly() → self::C*
- : assert(self::f<core::bool*>()), super core::Object::•()
+ constructor expressionOnly() → self::C
+ : assert(self::f<core::bool>()), super core::Object::•()
;
- constructor expressionAndMessage() → self::C*
- : assert(self::f<core::bool*>(), self::f<dynamic>()), super core::Object::•()
+ constructor expressionAndMessage() → self::C
+ : assert(self::f<core::bool>(), self::f<dynamic>()), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {
- assert(self::f<core::bool*>());
- assert(self::f<core::bool*>(), self::f<dynamic>());
+ assert(self::f<core::bool>());
+ assert(self::f<core::bool>(), self::f<dynamic>());
}
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.outline.expect b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.outline.expect
index 0349a72..d9695aa 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor expressionOnly() → self::C*
+ constructor expressionOnly() → self::C
;
- constructor expressionAndMessage() → self::C*
+ constructor expressionAndMessage() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.transformed.expect
index 8d3a6de..4532dfc 100644
--- a/pkg/front_end/testcases/inference/assert_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/assert_initializer.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor expressionOnly() → self::C*
- : assert(self::f<core::bool*>()), super core::Object::•()
+ constructor expressionOnly() → self::C
+ : assert(self::f<core::bool>()), super core::Object::•()
;
- constructor expressionAndMessage() → self::C*
- : assert(self::f<core::bool*>(), self::f<dynamic>()), super core::Object::•()
+ constructor expressionAndMessage() → self::C
+ : assert(self::f<core::bool>(), self::f<dynamic>()), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {
- assert(self::f<core::bool*>());
- assert(self::f<core::bool*>(), self::f<dynamic>());
+ assert(self::f<core::bool>());
+ assert(self::f<core::bool>(), self::f<dynamic>());
}
diff --git a/pkg/front_end/testcases/inference/assign_local.dart b/pkg/front_end/testcases/inference/assign_local.dart
index bd63a65..53ef197 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart
+++ b/pkg/front_end/testcases/inference/assign_local.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,10 +11,10 @@
main() {
num x;
- var /*@ type=int* */ x1 = (x = 1);
- var /*@ type=double* */ x2 = (x = 1.0);
+ var /*@type=int*/ x1 = (x = 1);
+ var /*@type=double*/ x2 = (x = 1.0);
A<int> y;
- var /*@ type=A<int*>* */ y1 = (y = new /*@ typeArgs=int* */ A());
- var /*@ type=B<int*>* */ y2 = (y = new /*@ typeArgs=int* */ B());
+ var /*@type=A<int>*/ y1 = (y = new /*@typeArgs=int*/ A());
+ var /*@type=B<int>*/ y2 = (y = new /*@typeArgs=int*/ B());
}
diff --git a/pkg/front_end/testcases/inference/assign_local.dart.textual_outline.expect b/pkg/front_end/testcases/inference/assign_local.dart.textual_outline.expect
index 4c1b53e..dab01df 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/assign_local.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {}
diff --git a/pkg/front_end/testcases/inference/assign_local.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/assign_local.dart.textual_outline_modelled.expect
index 4c1b53e..dab01df 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/assign_local.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {}
diff --git a/pkg/front_end/testcases/inference/assign_local.dart.weak.expect b/pkg/front_end/testcases/inference/assign_local.dart.weak.expect
index 21f996a..a98d596 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/assign_local.dart.weak.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
: super self::A::•()
;
}
static method main() → dynamic {
- core::num* x;
- core::int* x1 = x = 1;
- core::double* x2 = x = 1.0;
- self::A<core::int*>* y;
- self::A<core::int*>* y1 = y = new self::A::•<core::int*>();
- self::B<core::int*>* y2 = y = new self::B::•<core::int*>();
+ core::num x;
+ core::int x1 = x = 1;
+ core::double x2 = x = 1.0;
+ self::A<core::int> y;
+ self::A<core::int> y1 = y = new self::A::•<core::int>();
+ self::B<core::int> y2 = y = new self::B::•<core::int>();
}
diff --git a/pkg/front_end/testcases/inference/assign_local.dart.weak.modular.expect b/pkg/front_end/testcases/inference/assign_local.dart.weak.modular.expect
index 21f996a..a98d596 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/assign_local.dart.weak.modular.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
: super self::A::•()
;
}
static method main() → dynamic {
- core::num* x;
- core::int* x1 = x = 1;
- core::double* x2 = x = 1.0;
- self::A<core::int*>* y;
- self::A<core::int*>* y1 = y = new self::A::•<core::int*>();
- self::B<core::int*>* y2 = y = new self::B::•<core::int*>();
+ core::num x;
+ core::int x1 = x = 1;
+ core::double x2 = x = 1.0;
+ self::A<core::int> y;
+ self::A<core::int> y1 = y = new self::A::•<core::int>();
+ self::B<core::int> y2 = y = new self::B::•<core::int>();
}
diff --git a/pkg/front_end/testcases/inference/assign_local.dart.weak.outline.expect b/pkg/front_end/testcases/inference/assign_local.dart.weak.outline.expect
index d120923..bf914a8 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/assign_local.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/assign_local.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/assign_local.dart.weak.transformed.expect
index 21f996a..a98d596 100644
--- a/pkg/front_end/testcases/inference/assign_local.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/assign_local.dart.weak.transformed.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
: super self::A::•()
;
}
static method main() → dynamic {
- core::num* x;
- core::int* x1 = x = 1;
- core::double* x2 = x = 1.0;
- self::A<core::int*>* y;
- self::A<core::int*>* y1 = y = new self::A::•<core::int*>();
- self::B<core::int*>* y2 = y = new self::B::•<core::int*>();
+ core::num x;
+ core::int x1 = x = 1;
+ core::double x2 = x = 1.0;
+ self::A<core::int> y;
+ self::A<core::int> y1 = y = new self::A::•<core::int>();
+ self::B<core::int> y2 = y = new self::B::•<core::int>();
}
diff --git a/pkg/front_end/testcases/inference/async_await.dart b/pkg/front_end/testcases/inference/async_await.dart
index ad86050..1b959ac 100644
--- a/pkg/front_end/testcases/inference/async_await.dart
+++ b/pkg/front_end/testcases/inference/async_await.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2018, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/async_await2.dart b/pkg/front_end/testcases/inference/async_await2.dart
new file mode 100644
index 0000000..073aded
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart
@@ -0,0 +1,46 @@
+// Copyright (c) 2018, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+abstract class MyFuture implements Future<int> {}
+
+void test(
+ int x0,
+ Future<int> x1,
+ Future<Future<int>> x2,
+ Future<FutureOr<int>> x3,
+ Future<MyFuture> x4,
+ FutureOr<int> x5,
+ FutureOr<Future<int>> x6,
+ FutureOr<FutureOr<int>> x7,
+ FutureOr<MyFuture> x8,
+ MyFuture x9) async {
+ /*@returnType=Future<int>*/ test0() async => x0;
+ /*@returnType=Future<int>*/ test1() async => x1;
+ /*@returnType=Future<int>*/ test2() async => x2;
+ /*@returnType=Future<int>*/ test3() async => x3;
+ /*@returnType=Future<int>*/ test4() async => x4;
+ /*@returnType=Future<int>*/ test5() async => x5;
+ /*@returnType=Future<int>*/ test6() async => x6;
+ /*@returnType=Future<int>*/ test7() async => x7;
+ /*@returnType=Future<int>*/ test8() async => x8;
+ /*@returnType=Future<int>*/ test9() async => x9;
+
+ var /*@type=int*/ y0 = await x0;
+ var /*@type=int*/ y1 = await x1;
+ var /*@type=Future<int>*/ y2 = await x2;
+ var /*@type=FutureOr<int>*/ y3 = await x3;
+ var /*@type=MyFuture*/ y4 = await x4;
+ var /*@type=int*/ y5 = await x5;
+ var /*@type=Future<int>*/ y6 = await x6;
+ var /*@type=FutureOr<int>*/ y7 = await x7;
+ var /*@type=MyFuture*/ y8 = await x8;
+ var /*@type=int*/ y9 = await x9;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/async_await2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/async_await2.dart.textual_outline.expect
new file mode 100644
index 0000000..b57968b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart.textual_outline.expect
@@ -0,0 +1,18 @@
+library test;
+
+import 'dart:async';
+
+abstract class MyFuture implements Future<int> {}
+
+void test(
+ int x0,
+ Future<int> x1,
+ Future<Future<int>> x2,
+ Future<FutureOr<int>> x3,
+ Future<MyFuture> x4,
+ FutureOr<int> x5,
+ FutureOr<Future<int>> x6,
+ FutureOr<FutureOr<int>> x7,
+ FutureOr<MyFuture> x8,
+ MyFuture x9) async {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/async_await2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/async_await2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..44a293c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart.textual_outline_modelled.expect
@@ -0,0 +1,18 @@
+library test;
+
+import 'dart:async';
+
+abstract class MyFuture implements Future<int> {}
+
+main() {}
+void test(
+ int x0,
+ Future<int> x1,
+ Future<Future<int>> x2,
+ Future<FutureOr<int>> x3,
+ Future<MyFuture> x4,
+ FutureOr<int> x5,
+ FutureOr<Future<int>> x6,
+ FutureOr<FutureOr<int>> x7,
+ FutureOr<MyFuture> x8,
+ MyFuture x9) async {}
diff --git a/pkg/front_end/testcases/inference/async_await2.dart.weak.expect b/pkg/front_end/testcases/inference/async_await2.dart.weak.expect
new file mode 100644
index 0000000..42ab569
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart.weak.expect
@@ -0,0 +1,100 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/async_await2.dart:25:48: Error: A value of type 'Future<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test2() async => x2;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:26:48: Error: A value of type 'Future<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test3() async => x3;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:27:48: Error: A value of type 'Future<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+// /*@returnType=Future<int>*/ test4() async => x4;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:29:48: Error: A value of type 'FutureOr<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test6() async => x6;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:30:48: Error: A value of type 'FutureOr<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test7() async => x7;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:31:48: Error: A value of type 'FutureOr<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+// - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test8() async => x8;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+abstract class MyFuture extends core::Object implements asy::Future<core::int> {
+ synthetic constructor •() → self::MyFuture
+ : super core::Object::•()
+ ;
+}
+static method test(core::int x0, asy::Future<core::int> x1, asy::Future<asy::Future<core::int>> x2, asy::Future<FutureOr<core::int>> x3, asy::Future<self::MyFuture> x4, FutureOr<core::int>x5, FutureOr<asy::Future<core::int>>x6, FutureOr<FutureOr<core::int>>x7, FutureOr<self::MyFuture>x8, self::MyFuture x9) → void async /* futureValueType= void */ {
+ function test0() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x0;
+ function test1() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x1;
+ function test2() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:25:48: Error: A value of type 'Future<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test2() async => x2;
+ ^" in x2 as{TypeError,ForNonNullableByDefault} core::int;
+ function test3() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:26:48: Error: A value of type 'Future<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test3() async => x3;
+ ^" in x3 as{TypeError,ForNonNullableByDefault} core::int;
+ function test4() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:27:48: Error: A value of type 'Future<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+ /*@returnType=Future<int>*/ test4() async => x4;
+ ^" in x4 as{TypeError,ForNonNullableByDefault} core::int;
+ function test5() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x5;
+ function test6() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:29:48: Error: A value of type 'FutureOr<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test6() async => x6;
+ ^" in x6 as{TypeError,ForNonNullableByDefault} core::int;
+ function test7() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:30:48: Error: A value of type 'FutureOr<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test7() async => x7;
+ ^" in x7 as{TypeError,ForNonNullableByDefault} core::int;
+ function test8() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:31:48: Error: A value of type 'FutureOr<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+ - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test8() async => x8;
+ ^" in x8 as{TypeError,ForNonNullableByDefault} core::int;
+ function test9() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x9;
+ core::int y0 = await x0;
+ core::int y1 = await x1;
+ asy::Future<core::int> y2 = await x2;
+ FutureOr<core::int>y3 = await x3;
+ self::MyFuture y4 = await x4;
+ core::int y5 = await x5;
+ asy::Future<core::int> y6 = await x6;
+ FutureOr<core::int>y7 = await x7;
+ self::MyFuture y8 = await x8;
+ core::int y9 = await x9;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/async_await2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/async_await2.dart.weak.modular.expect
new file mode 100644
index 0000000..42ab569
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart.weak.modular.expect
@@ -0,0 +1,100 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/async_await2.dart:25:48: Error: A value of type 'Future<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test2() async => x2;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:26:48: Error: A value of type 'Future<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test3() async => x3;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:27:48: Error: A value of type 'Future<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+// /*@returnType=Future<int>*/ test4() async => x4;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:29:48: Error: A value of type 'FutureOr<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test6() async => x6;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:30:48: Error: A value of type 'FutureOr<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test7() async => x7;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:31:48: Error: A value of type 'FutureOr<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+// - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test8() async => x8;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+abstract class MyFuture extends core::Object implements asy::Future<core::int> {
+ synthetic constructor •() → self::MyFuture
+ : super core::Object::•()
+ ;
+}
+static method test(core::int x0, asy::Future<core::int> x1, asy::Future<asy::Future<core::int>> x2, asy::Future<FutureOr<core::int>> x3, asy::Future<self::MyFuture> x4, FutureOr<core::int>x5, FutureOr<asy::Future<core::int>>x6, FutureOr<FutureOr<core::int>>x7, FutureOr<self::MyFuture>x8, self::MyFuture x9) → void async /* futureValueType= void */ {
+ function test0() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x0;
+ function test1() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x1;
+ function test2() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:25:48: Error: A value of type 'Future<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test2() async => x2;
+ ^" in x2 as{TypeError,ForNonNullableByDefault} core::int;
+ function test3() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:26:48: Error: A value of type 'Future<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test3() async => x3;
+ ^" in x3 as{TypeError,ForNonNullableByDefault} core::int;
+ function test4() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:27:48: Error: A value of type 'Future<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+ /*@returnType=Future<int>*/ test4() async => x4;
+ ^" in x4 as{TypeError,ForNonNullableByDefault} core::int;
+ function test5() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x5;
+ function test6() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:29:48: Error: A value of type 'FutureOr<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test6() async => x6;
+ ^" in x6 as{TypeError,ForNonNullableByDefault} core::int;
+ function test7() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:30:48: Error: A value of type 'FutureOr<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test7() async => x7;
+ ^" in x7 as{TypeError,ForNonNullableByDefault} core::int;
+ function test8() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:31:48: Error: A value of type 'FutureOr<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+ - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test8() async => x8;
+ ^" in x8 as{TypeError,ForNonNullableByDefault} core::int;
+ function test9() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x9;
+ core::int y0 = await x0;
+ core::int y1 = await x1;
+ asy::Future<core::int> y2 = await x2;
+ FutureOr<core::int>y3 = await x3;
+ self::MyFuture y4 = await x4;
+ core::int y5 = await x5;
+ asy::Future<core::int> y6 = await x6;
+ FutureOr<core::int>y7 = await x7;
+ self::MyFuture y8 = await x8;
+ core::int y9 = await x9;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/async_await2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/async_await2.dart.weak.outline.expect
new file mode 100644
index 0000000..000c689
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart.weak.outline.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+abstract class MyFuture extends core::Object implements asy::Future<core::int> {
+ synthetic constructor •() → self::MyFuture
+ ;
+}
+static method test(core::int x0, asy::Future<core::int> x1, asy::Future<asy::Future<core::int>> x2, asy::Future<FutureOr<core::int>> x3, asy::Future<self::MyFuture> x4, FutureOr<core::int>x5, FutureOr<asy::Future<core::int>>x6, FutureOr<FutureOr<core::int>>x7, FutureOr<self::MyFuture>x8, self::MyFuture x9) → void async
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/async_await2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/async_await2.dart.weak.transformed.expect
new file mode 100644
index 0000000..42ab569
--- /dev/null
+++ b/pkg/front_end/testcases/inference/async_await2.dart.weak.transformed.expect
@@ -0,0 +1,100 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/async_await2.dart:25:48: Error: A value of type 'Future<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test2() async => x2;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:26:48: Error: A value of type 'Future<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test3() async => x3;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:27:48: Error: A value of type 'Future<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+// /*@returnType=Future<int>*/ test4() async => x4;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:29:48: Error: A value of type 'FutureOr<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test6() async => x6;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:30:48: Error: A value of type 'FutureOr<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test7() async => x7;
+// ^
+//
+// pkg/front_end/testcases/inference/async_await2.dart:31:48: Error: A value of type 'FutureOr<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+// - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+// - 'Future' is from 'dart:async'.
+// /*@returnType=Future<int>*/ test8() async => x8;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+abstract class MyFuture extends core::Object implements asy::Future<core::int> {
+ synthetic constructor •() → self::MyFuture
+ : super core::Object::•()
+ ;
+}
+static method test(core::int x0, asy::Future<core::int> x1, asy::Future<asy::Future<core::int>> x2, asy::Future<FutureOr<core::int>> x3, asy::Future<self::MyFuture> x4, FutureOr<core::int>x5, FutureOr<asy::Future<core::int>>x6, FutureOr<FutureOr<core::int>>x7, FutureOr<self::MyFuture>x8, self::MyFuture x9) → void async /* futureValueType= void */ {
+ function test0() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x0;
+ function test1() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x1;
+ function test2() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:25:48: Error: A value of type 'Future<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test2() async => x2;
+ ^" in x2 as{TypeError,ForNonNullableByDefault} core::int;
+ function test3() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:26:48: Error: A value of type 'Future<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test3() async => x3;
+ ^" in x3 as{TypeError,ForNonNullableByDefault} core::int;
+ function test4() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:27:48: Error: A value of type 'Future<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+ /*@returnType=Future<int>*/ test4() async => x4;
+ ^" in x4 as{TypeError,ForNonNullableByDefault} core::int;
+ function test5() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x5;
+ function test6() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:29:48: Error: A value of type 'FutureOr<Future<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test6() async => x6;
+ ^" in x6 as{TypeError,ForNonNullableByDefault} core::int;
+ function test7() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:30:48: Error: A value of type 'FutureOr<FutureOr<int>>' can't be returned from an async function with return type 'Future<int>'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test7() async => x7;
+ ^" in x7 as{TypeError,ForNonNullableByDefault} core::int;
+ function test8() → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/async_await2.dart:31:48: Error: A value of type 'FutureOr<MyFuture>' can't be returned from an async function with return type 'Future<int>'.
+ - 'MyFuture' is from 'pkg/front_end/testcases/inference/async_await2.dart'.
+ - 'Future' is from 'dart:async'.
+ /*@returnType=Future<int>*/ test8() async => x8;
+ ^" in x8 as{TypeError,ForNonNullableByDefault} core::int;
+ function test9() → asy::Future<core::int> async /* futureValueType= core::int */
+ return x9;
+ core::int y0 = await x0;
+ core::int y1 = await x1;
+ asy::Future<core::int> y2 = await x2;
+ FutureOr<core::int>y3 = await x3;
+ self::MyFuture y4 = await x4;
+ core::int y5 = await x5;
+ asy::Future<core::int> y6 = await x6;
+ FutureOr<core::int>y7 = await x7;
+ self::MyFuture y8 = await x8;
+ core::int y9 = await x9;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart
index d61ec5d..3cb145f 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-Future<int> futureInt = null;
-var f = /*@ returnType=Future<int*>* */ () => futureInt;
-var g = /*@ returnType=Future<int*>* */ () async => futureInt;
+Future<int> futureInt = new Future<int>.value(0);
+var f = /*@returnType=Future<int>*/ () => futureInt;
+var g = /*@returnType=Future<int>*/ () async => futureInt;
main() {
f;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline.expect
index 224b906..935c6cb 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-Future<int> futureInt = null;
+Future<int> futureInt = new Future<int>.value(0);
var f = () => futureInt;
var g = () async => futureInt;
main() {}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline_modelled.expect
index 86c1b92..0fca41d 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-Future<int> futureInt = null;
+Future<int> futureInt = new Future<int>.value(0);
main() {}
var f = () => futureInt;
var g = () async => futureInt;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.expect
index 366738b..155b32a 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static field asy::Future<core::int*>* futureInt = null;
-static field () →* asy::Future<core::int*>* f = () → asy::Future<core::int*>* => self::futureInt;
-static field () →* asy::Future<core::int*>* g = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => self::futureInt;
+static field asy::Future<core::int> futureInt = asy::Future::value<core::int>(0);
+static field () → asy::Future<core::int> f = () → asy::Future<core::int> => self::futureInt;
+static field () → asy::Future<core::int> g = () → asy::Future<core::int> async /* futureValueType= core::int */ => self::futureInt;
static method main() → dynamic {
self::f;
self::g;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.modular.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.modular.expect
index 366738b..155b32a 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static field asy::Future<core::int*>* futureInt = null;
-static field () →* asy::Future<core::int*>* f = () → asy::Future<core::int*>* => self::futureInt;
-static field () →* asy::Future<core::int*>* g = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => self::futureInt;
+static field asy::Future<core::int> futureInt = asy::Future::value<core::int>(0);
+static field () → asy::Future<core::int> f = () → asy::Future<core::int> => self::futureInt;
+static field () → asy::Future<core::int> g = () → asy::Future<core::int> async /* futureValueType= core::int */ => self::futureInt;
static method main() → dynamic {
self::f;
self::g;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.outline.expect
index 2582eae..de27f66 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.outline.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static field asy::Future<core::int*>* futureInt;
-static field () →* asy::Future<core::int*>* f;
-static field () →* asy::Future<core::int*>* g;
+static field asy::Future<core::int> futureInt;
+static field () → asy::Future<core::int> f;
+static field () → asy::Future<core::int> g;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.transformed.expect
index 366738b..155b32a 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_flatten.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static field asy::Future<core::int*>* futureInt = null;
-static field () →* asy::Future<core::int*>* f = () → asy::Future<core::int*>* => self::futureInt;
-static field () →* asy::Future<core::int*>* g = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => self::futureInt;
+static field asy::Future<core::int> futureInt = asy::Future::value<core::int>(0);
+static field () → asy::Future<core::int> f = () → asy::Future<core::int> => self::futureInt;
+static field () → asy::Future<core::int> g = () → asy::Future<core::int> async /* futureValueType= core::int */ => self::futureInt;
static method main() → dynamic {
self::f;
self::g;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart
index 31f7a19..0abd1b3 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-var f = /*@ returnType=Future<int*>* */ () async => 0;
+var f = /*@returnType=Future<int>*/ () async => 0;
main() {
f;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline.expect
index 7eb8184..d5d8f30 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var f = () async => 0;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline_modelled.expect
index c970c4d..95b148d 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.expect
index dcce00c..12aa747 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
-static field () →* asy::Future<core::int*>* f = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 0;
+static field () → asy::Future<core::int> f = () → asy::Future<core::int> async /* futureValueType= core::int */ => 0;
static method main() → dynamic {
self::f;
}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.modular.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.modular.expect
index dcce00c..12aa747 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
-static field () →* asy::Future<core::int*>* f = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 0;
+static field () → asy::Future<core::int> f = () → asy::Future<core::int> async /* futureValueType= core::int */ => 0;
static method main() → dynamic {
self::f;
}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.outline.expect
index 0231dd0..c3332b3 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
-static field () →* asy::Future<core::int*>* f;
+static field () → asy::Future<core::int> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.transformed.expect
index dcce00c..12aa747 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
-static field () →* asy::Future<core::int*>* f = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 0;
+static field () → asy::Future<core::int> f = () → asy::Future<core::int> async /* futureValueType= core::int */ => 0;
static method main() → dynamic {
self::f;
}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart
index dc80145..6e5dea7 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-FutureOr<int> futureOrInt = null;
-var f = /*@ returnType=FutureOr<int*>* */ () => futureOrInt;
-var g = /*@ returnType=Future<int*>* */ () async => futureOrInt;
+FutureOr<int> futureOrInt = new Future<int>.value(0);
+var f = /*@returnType=FutureOr<int>*/ () => futureOrInt;
+var g = /*@returnType=Future<int>*/ () async => futureOrInt;
main() {
f;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline.expect
index bf9ae10..e219993 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-FutureOr<int> futureOrInt = null;
+FutureOr<int> futureOrInt = new Future<int>.value(0);
var f = () => futureOrInt;
var g = () async => futureOrInt;
main() {}
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline_modelled.expect
index 390945c..f00b1a1 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-FutureOr<int> futureOrInt = null;
+FutureOr<int> futureOrInt = new Future<int>.value(0);
main() {}
var f = () => futureOrInt;
var g = () async => futureOrInt;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.expect
index 5454d59..adaed45 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static field FutureOr<core::int*>* futureOrInt = null;
-static field () →* FutureOr<core::int*>* f = () → FutureOr<core::int*>* => self::futureOrInt;
-static field () →* asy::Future<core::int*>* g = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => self::futureOrInt;
+static field FutureOr<core::int>futureOrInt = asy::Future::value<core::int>(0);
+static field () → FutureOr<core::int>f = () → FutureOr<core::int> => self::futureOrInt;
+static field () → asy::Future<core::int> g = () → asy::Future<core::int> async /* futureValueType= core::int */ => self::futureOrInt;
static method main() → dynamic {
self::f;
self::g;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.modular.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.modular.expect
index 5454d59..adaed45 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static field FutureOr<core::int*>* futureOrInt = null;
-static field () →* FutureOr<core::int*>* f = () → FutureOr<core::int*>* => self::futureOrInt;
-static field () →* asy::Future<core::int*>* g = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => self::futureOrInt;
+static field FutureOr<core::int>futureOrInt = asy::Future::value<core::int>(0);
+static field () → FutureOr<core::int>f = () → FutureOr<core::int> => self::futureOrInt;
+static field () → asy::Future<core::int> g = () → asy::Future<core::int> async /* futureValueType= core::int */ => self::futureOrInt;
static method main() → dynamic {
self::f;
self::g;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.outline.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.outline.expect
index 01ef3de..51cbd57 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.outline.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static field FutureOr<core::int*>* futureOrInt;
-static field () →* FutureOr<core::int*>* f;
-static field () →* asy::Future<core::int*>* g;
+static field FutureOr<core::int>futureOrInt;
+static field () → FutureOr<core::int>f;
+static field () → asy::Future<core::int> g;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.transformed.expect
index 5454d59..adaed45 100644
--- a/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/async_closure_return_type_future_or.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static field FutureOr<core::int*>* futureOrInt = null;
-static field () →* FutureOr<core::int*>* f = () → FutureOr<core::int*>* => self::futureOrInt;
-static field () →* asy::Future<core::int*>* g = () → asy::Future<core::int*>* async /* futureValueType= core::int* */ => self::futureOrInt;
+static field FutureOr<core::int>futureOrInt = asy::Future::value<core::int>(0);
+static field () → FutureOr<core::int>f = () → FutureOr<core::int> => self::futureOrInt;
+static field () → asy::Future<core::int> g = () → asy::Future<core::int> async /* futureValueType= core::int */ => self::futureOrInt;
static method main() → dynamic {
self::f;
self::g;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart
index e5f490e..a6981af 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +11,7 @@
import 'dart:math' show Random;
test() {
- var /*@ type=() ->* Future<num*>* */ f = /*@ returnType=Future<num*>* */ () async {
+ var /*@type=() ->* Future<num*>**/ f = /*@returnType=Future<num*>**/ () async {
if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
return new Future<int>.value(1);
} else {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart
new file mode 100644
index 0000000..47dc331
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+test() {
+ var /*@type=() -> Future<num>*/ f = /*@returnType=Future<num>*/ () async {
+ if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
+ return new Future<int>.value(1);
+ } else {
+ return new Future<double>.value(2.0);
+ }
+ };
+ Future<num> g = f();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.textual_outline.expect
new file mode 100644
index 0000000..2d20965
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0962407
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.expect
new file mode 100644
index 0000000..6ccd6f3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return asy::Future::value<core::int>(1);
+ }
+ else {
+ return asy::Future::value<core::double>(2.0);
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.modular.expect
new file mode 100644
index 0000000..6ccd6f3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.modular.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return asy::Future::value<core::int>(1);
+ }
+ else {
+ return asy::Future::value<core::double>(2.0);
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.outline.expect
new file mode 100644
index 0000000..aff57bb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.outline.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.transformed.expect
new file mode 100644
index 0000000..6ccd6f3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_futures2.dart.weak.transformed.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return asy::Future::value<core::int>(1);
+ }
+ else {
+ return asy::Future::value<core::double>(2.0);
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart
index 7c1fe26..caebc14 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +11,7 @@
import 'dart:math' show Random;
test() {
- var /*@ type=() ->* Future<num*>* */ f = /*@ returnType=Future<num*>* */ () async {
+ var /*@type=() ->* Future<num*>**/ f = /*@returnType=Future<num*>**/ () async {
if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
return 1;
} else {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart
new file mode 100644
index 0000000..bdb1a59
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+test() {
+ var /*@type=() -> Future<num>*/ f = /*@returnType=Future<num>*/ () async {
+ if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
+ return 1;
+ } else {
+ return 2.0;
+ }
+ };
+ Future<num> g = f();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.textual_outline.expect
new file mode 100644
index 0000000..2d20965
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0962407
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.expect
new file mode 100644
index 0000000..080f755
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return 1;
+ }
+ else {
+ return 2.0;
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.modular.expect
new file mode 100644
index 0000000..080f755
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.modular.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return 1;
+ }
+ else {
+ return 2.0;
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.outline.expect
new file mode 100644
index 0000000..aff57bb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.outline.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.transformed.expect
new file mode 100644
index 0000000..080f755
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_all_returns_are_values2.dart.weak.transformed.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return 1;
+ }
+ else {
+ return 2.0;
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart
index 10de769..f21b349 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +11,7 @@
import 'dart:math' show Random;
test() {
- var /*@ type=() ->* Future<num*>* */ f = /*@ returnType=Future<num*>* */ () async {
+ var /*@type=() ->* Future<num*>**/ f = /*@returnType=Future<num*>**/ () async {
if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
return new Future<int>.value(1);
} else {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart
new file mode 100644
index 0000000..7b7b896
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+test() {
+ var /*@type=() -> Future<num>*/ f = /*@returnType=Future<num>*/ () async {
+ if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
+ return new Future<int>.value(1);
+ } else {
+ return 2.0;
+ }
+ };
+ Future<num> g = f();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.textual_outline.expect
new file mode 100644
index 0000000..2d20965
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0962407
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+library test;
+
+import 'dart:async';
+import 'dart:math' show Random;
+
+main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.expect
new file mode 100644
index 0000000..2ab9201
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return asy::Future::value<core::int>(1);
+ }
+ else {
+ return 2.0;
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.modular.expect
new file mode 100644
index 0000000..2ab9201
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.modular.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return asy::Future::value<core::int>(1);
+ }
+ else {
+ return 2.0;
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.outline.expect
new file mode 100644
index 0000000..aff57bb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.outline.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.transformed.expect
new file mode 100644
index 0000000..2ab9201
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_mix_of_values_and_futures2.dart.weak.transformed.expect
@@ -0,0 +1,21 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:async";
+import "dart:math" show Random;
+
+static method test() → dynamic {
+ () → asy::Future<core::num> f = () → asy::Future<core::num> async /* futureValueType= core::num */ {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return asy::Future::value<core::int>(1);
+ }
+ else {
+ return 2.0;
+ }
+ };
+ asy::Future<core::num> g = f(){() → asy::Future<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart
index 9ff3d91..503d723 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
test() {
- var /*@ type=() ->* Stream<num*>* */ f = /*@ returnType=Stream<num*>* */ () async* {
+ var /*@type=() ->* Stream<num*>**/ f = /*@returnType=Stream<num*>**/ () async* {
yield 1;
Stream<double> s;
yield* s;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart
new file mode 100644
index 0000000..b035e8c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart
@@ -0,0 +1,19 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+test() {
+ var /*@type=() -> Stream<num>*/ f = /*@returnType=Stream<num>*/ () async* {
+ yield 1;
+ Stream<double> s;
+ yield* s;
+ };
+ Stream<num> g = f();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.textual_outline.expect
new file mode 100644
index 0000000..242deb6
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:async';
+
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..8318b63
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:async';
+
+main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.expect
new file mode 100644
index 0000000..5a7e40f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.expect
@@ -0,0 +1,25 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart:14:12: Error: Non-nullable variable 's' must be assigned before it can be used.
+// yield* s;
+// ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test() → dynamic {
+ () → asy::Stream<core::num> f = () → asy::Stream<core::num> async* {
+ yield 1;
+ asy::Stream<core::double> s;
+ yield* invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart:14:12: Error: Non-nullable variable 's' must be assigned before it can be used.
+ yield* s;
+ ^" in s;
+ };
+ asy::Stream<core::num> g = f(){() → asy::Stream<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.modular.expect
new file mode 100644
index 0000000..5a7e40f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.modular.expect
@@ -0,0 +1,25 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart:14:12: Error: Non-nullable variable 's' must be assigned before it can be used.
+// yield* s;
+// ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test() → dynamic {
+ () → asy::Stream<core::num> f = () → asy::Stream<core::num> async* {
+ yield 1;
+ asy::Stream<core::double> s;
+ yield* invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart:14:12: Error: Non-nullable variable 's' must be assigned before it can be used.
+ yield* s;
+ ^" in s;
+ };
+ asy::Stream<core::num> g = f(){() → asy::Stream<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.outline.expect
new file mode 100644
index 0000000..1d5fd98
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.outline.expect
@@ -0,0 +1,9 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+import "dart:async";
+
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.transformed.expect
new file mode 100644
index 0000000..5a7e40f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart.weak.transformed.expect
@@ -0,0 +1,25 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart:14:12: Error: Non-nullable variable 's' must be assigned before it can be used.
+// yield* s;
+// ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test() → dynamic {
+ () → asy::Stream<core::num> f = () → asy::Stream<core::num> async* {
+ yield 1;
+ asy::Stream<core::double> s;
+ yield* invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_async_star2.dart:14:12: Error: Non-nullable variable 's' must be assigned before it can be used.
+ yield* s;
+ ^" in s;
+ };
+ asy::Stream<core::num> g = f(){() → asy::Stream<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart
index 8bb60dd..07ff73bee 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart
@@ -1,15 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-test1() {
- List<int> o;
- var /*@ type=Iterable<int*>* */ y =
- o. /*@ typeArgs=int* */ /*@target=Iterable.map*/ map(
- /*@ returnType=int* */ (/*@ type=int* */ x) {
+test1(List<int> o) {
+ var /*@type=Iterable<int>*/ y =
+ o. /*@typeArgs=int*/ /*@target=Iterable.map*/ map(
+ /*@returnType=int*/ (/*@type=int*/ x) {
return x /*@target=num.+*/ + 1;
});
Iterable<int> z = y;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline.expect
index f75f219..66cea18 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-test1() {}
+test1(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline_modelled.expect
index b1f0123..72361bb 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
main() {}
-test1() {}
+test1(List<int> o) {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.expect
index add23e8..f696105 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.expect
@@ -1,12 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test1() → dynamic {
- core::List<core::int*>* o;
- core::Iterable<core::int*>* y = o.{core::Iterable::map}<core::int*>((core::int* x) → core::int* {
- return x.{core::num::+}(1){(core::num*) →* core::int*};
- }){((core::int*) →* core::int*) →* core::Iterable<core::int*>*};
- core::Iterable<core::int*>* z = y;
+static method test1(core::List<core::int> o) → dynamic {
+ core::Iterable<core::int> y = o.{core::Iterable::map}<core::int>((core::int x) → core::int {
+ return x.{core::num::+}(1){(core::num) → core::int};
+ }){((core::int) → core::int) → core::Iterable<core::int>};
+ core::Iterable<core::int> z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.modular.expect
index add23e8..f696105 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.modular.expect
@@ -1,12 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test1() → dynamic {
- core::List<core::int*>* o;
- core::Iterable<core::int*>* y = o.{core::Iterable::map}<core::int*>((core::int* x) → core::int* {
- return x.{core::num::+}(1){(core::num*) →* core::int*};
- }){((core::int*) →* core::int*) →* core::Iterable<core::int*>*};
- core::Iterable<core::int*>* z = y;
+static method test1(core::List<core::int> o) → dynamic {
+ core::Iterable<core::int> y = o.{core::Iterable::map}<core::int>((core::int x) → core::int {
+ return x.{core::num::+}(1){(core::num) → core::int};
+ }){((core::int) → core::int) → core::Iterable<core::int>};
+ core::Iterable<core::int> z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.outline.expect
index 3619892..6504e2e 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test1() → dynamic
+static method test1(core::List<core::int> o) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.transformed.expect
index add23e8..f696105 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic.dart.weak.transformed.expect
@@ -1,12 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test1() → dynamic {
- core::List<core::int*>* o;
- core::Iterable<core::int*>* y = o.{core::Iterable::map}<core::int*>((core::int* x) → core::int* {
- return x.{core::num::+}(1){(core::num*) →* core::int*};
- }){((core::int*) →* core::int*) →* core::Iterable<core::int*>*};
- core::Iterable<core::int*>* z = y;
+static method test1(core::List<core::int> o) → dynamic {
+ core::Iterable<core::int> y = o.{core::Iterable::map}<core::int>((core::int x) → core::int {
+ return x.{core::num::+}(1){(core::num) → core::int};
+ }){((core::int) → core::int) → core::Iterable<core::int>};
+ core::Iterable<core::int> z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart
index f785f62..17b8f8c 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart
@@ -1,13 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-f() {
- List<int> o;
- o. /*@target=Iterable.where*/ where(/*@ returnType=bool* */ (/*@ type=int* */ i) {
+f(List<int> o) {
+ o. /*@target=Iterable.where*/ where(/*@returnType=bool*/ (/*@type=int*/ i) {
return i /*@target=num.==*/ == 0;
});
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline.expect
index 54d3052..3276f20 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-f() {}
+f(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline_modelled.expect
index 54d3052..3276f20 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-f() {}
+f(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.expect
index 446c911..5b9c3a0 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.expect
@@ -1,11 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f() → dynamic {
- core::List<core::int*>* o;
- o.{core::Iterable::where}((core::int* i) → core::bool* {
- return i =={core::num::==}{(core::Object*) →* core::bool*} 0;
- }){((core::int*) →* core::bool*) →* core::Iterable<core::int*>*};
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::where}((core::int i) → core::bool {
+ return i =={core::num::==}{(core::Object) → core::bool} 0;
+ }){((core::int) → core::bool) → core::Iterable<core::int>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.modular.expect
index 446c911..5b9c3a0 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.modular.expect
@@ -1,11 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f() → dynamic {
- core::List<core::int*>* o;
- o.{core::Iterable::where}((core::int* i) → core::bool* {
- return i =={core::num::==}{(core::Object*) →* core::bool*} 0;
- }){((core::int*) →* core::bool*) →* core::Iterable<core::int*>*};
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::where}((core::int i) → core::bool {
+ return i =={core::num::==}{(core::Object) → core::bool} 0;
+ }){((core::int) → core::bool) → core::Iterable<core::int>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.outline.expect
index b08cbd0..a5a8e2e 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method f() → dynamic
+static method f(core::List<core::int> o) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.transformed.expect
index 446c911..5b9c3a0 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_basic_void.dart.weak.transformed.expect
@@ -1,11 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f() → dynamic {
- core::List<core::int*>* o;
- o.{core::Iterable::where}((core::int* i) → core::bool* {
- return i =={core::num::==}{(core::Object*) →* core::bool*} 0;
- }){((core::int*) →* core::bool*) →* core::Iterable<core::int*>*};
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::where}((core::int i) → core::bool {
+ return i =={core::num::==}{(core::Object) → core::bool} 0;
+ }){((core::int) → core::bool) → core::Iterable<core::int>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart
index fe29a68..f39b842 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- String f() => null;
- var /*@ type=() ->* String* */ g = f;
- g = /*@ returnType=String* */ () {
+ String f() => '';
+ var /*@type=() -> String*/ g = f;
+ g = /*@returnType=String*/ () {
return /*error:RETURN_OF_INVALID_TYPE*/ 1;
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.expect
index e90018d..31ee2a4 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 1;
// ^
//
@@ -10,12 +10,12 @@
import "dart:core" as core;
static method main() → dynamic {
- function f() → core::String*
- return null;
- () →* core::String* g = f;
- g = () → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f() → core::String
+ return "";
+ () → core::String g = f;
+ g = () → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 1;
- ^" in 1 as{TypeError} core::String*;
+ ^" in 1 as{TypeError,ForNonNullableByDefault} core::String;
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.modular.expect
index e90018d..31ee2a4 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 1;
// ^
//
@@ -10,12 +10,12 @@
import "dart:core" as core;
static method main() → dynamic {
- function f() → core::String*
- return null;
- () →* core::String* g = f;
- g = () → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f() → core::String
+ return "";
+ () → core::String g = f;
+ g = () → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 1;
- ^" in 1 as{TypeError} core::String*;
+ ^" in 1 as{TypeError,ForNonNullableByDefault} core::String;
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.transformed.expect
index e90018d..31ee2a4 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 1;
// ^
//
@@ -10,12 +10,12 @@
import "dart:core" as core;
static method main() → dynamic {
- function f() → core::String*
- return null;
- () →* core::String* g = f;
- g = () → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f() → core::String
+ return "";
+ () → core::String g = f;
+ g = () → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference.dart:12:45: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 1;
- ^" in 1 as{TypeError} core::String*;
+ ^" in 1 as{TypeError,ForNonNullableByDefault} core::String;
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart
index aa4161f..76d6876 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-String f() => null;
+String f() => '';
var g = f;
main() {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline.expect
index 88e5ddb..5abe5f0 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-String f() => null;
+String f() => '';
var g = f;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline_modelled.expect
index 68acc43..9193ecf 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-String f() => null;
+String f() => '';
main() {}
var g = f;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.expect
index f1a6a23..3486650 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field () →* core::String* g = #C1;
-static method f() → core::String*
- return null;
+static field () → core::String g = #C1;
+static method f() → core::String
+ return "";
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.modular.expect
index f1a6a23..3486650 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field () →* core::String* g = #C1;
-static method f() → core::String*
- return null;
+static field () → core::String g = #C1;
+static method f() → core::String
+ return "";
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.outline.expect
index d08afaa..6fd106d 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field () →* core::String* g;
-static method f() → core::String*
+static field () → core::String g;
+static method f() → core::String
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.transformed.expect
index f1a6a23..3486650 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_downwards_incompatible_with_upwards_inference_top_level.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field () →* core::String* g = #C1;
-static method f() → core::String*
- return null;
+static field () → core::String g = #C1;
+static method f() → core::String
+ return "";
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart
index 75e2f5f..167439c 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
main() async {
- var /*@ type=() ->* Future<Null>* */ f = /*@ returnType=Future<Null>* */ () async {
+ var /*@type=() -> Future<Null>*/ f = /*@returnType=Future<Null>*/ () async {
return null;
};
Future y = f();
- Future<String> z = f();
- String s = await f();
+ Future<String?> z = f();
+ String? s = await f();
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline.expect
index c7e4fb3..8519dee 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline_modelled.expect
index c7e4fb3..8519dee 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.expect
index 2d31d8e..6f2f7bf 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
@@ -6,10 +6,10 @@
import "dart:async";
static method main() → dynamic async /* futureValueType= dynamic */ {
- () →* asy::Future<Null>* f = () → asy::Future<Null>* async /* futureValueType= Null */ {
+ () → asy::Future<Null> f = () → asy::Future<Null> async /* futureValueType= Null */ {
return null;
};
- asy::Future<dynamic>* y = f(){() →* asy::Future<Null>*};
- asy::Future<core::String*>* z = f(){() →* asy::Future<Null>*};
- core::String* s = await f(){() →* asy::Future<Null>*};
+ asy::Future<dynamic> y = f(){() → asy::Future<Null>};
+ asy::Future<core::String?> z = f(){() → asy::Future<Null>};
+ core::String? s = await f(){() → asy::Future<Null>};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.modular.expect
index 2d31d8e..6f2f7bf 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
@@ -6,10 +6,10 @@
import "dart:async";
static method main() → dynamic async /* futureValueType= dynamic */ {
- () →* asy::Future<Null>* f = () → asy::Future<Null>* async /* futureValueType= Null */ {
+ () → asy::Future<Null> f = () → asy::Future<Null> async /* futureValueType= Null */ {
return null;
};
- asy::Future<dynamic>* y = f(){() →* asy::Future<Null>*};
- asy::Future<core::String*>* z = f(){() →* asy::Future<Null>*};
- core::String* s = await f(){() →* asy::Future<Null>*};
+ asy::Future<dynamic> y = f(){() → asy::Future<Null>};
+ asy::Future<core::String?> z = f(){() → asy::Future<Null>};
+ core::String? s = await f(){() → asy::Future<Null>};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.outline.expect
index 2fff360..37820c3 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async";
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.transformed.expect
index 2d31d8e..6f2f7bf 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
@@ -6,10 +6,10 @@
import "dart:async";
static method main() → dynamic async /* futureValueType= dynamic */ {
- () →* asy::Future<Null>* f = () → asy::Future<Null>* async /* futureValueType= Null */ {
+ () → asy::Future<Null> f = () → asy::Future<Null> async /* futureValueType= Null */ {
return null;
};
- asy::Future<dynamic>* y = f(){() →* asy::Future<Null>*};
- asy::Future<core::String*>* z = f(){() →* asy::Future<Null>*};
- core::String* s = await f(){() →* asy::Future<Null>*};
+ asy::Future<dynamic> y = f(){() → asy::Future<Null>};
+ asy::Future<core::String?> z = f(){() → asy::Future<Null>};
+ core::String? s = await f(){() → asy::Future<Null>};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart
index a76ff1c..cda3e06 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
main() async {
- var /*@ type=() ->* Stream<Null>* */ f = /*@ returnType=Stream<Null>* */ () async* {
+ var /*@type=() -> Stream<Null>*/ f = /*@returnType=Stream<Null>*/ () async* {
yield null;
};
Stream y = f();
- Stream<String> z = f();
- String s = await f(). /*@target=Stream.first*/ first;
+ Stream<String?> z = f();
+ String? s = await f(). /*@target=Stream.first*/ first;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline.expect
index c7e4fb3..8519dee 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline_modelled.expect
index c7e4fb3..8519dee 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.expect
index 9a6dc27..c69923a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
@@ -6,10 +6,10 @@
import "dart:async";
static method main() → dynamic async /* futureValueType= dynamic */ {
- () →* asy::Stream<Null>* f = () → asy::Stream<Null>* async* {
+ () → asy::Stream<Null> f = () → asy::Stream<Null> async* {
yield null;
};
- asy::Stream<dynamic>* y = f(){() →* asy::Stream<Null>*};
- asy::Stream<core::String*>* z = f(){() →* asy::Stream<Null>*};
- core::String* s = await f(){() →* asy::Stream<Null>*}.{asy::Stream::first}{asy::Future<Null>*};
+ asy::Stream<dynamic> y = f(){() → asy::Stream<Null>};
+ asy::Stream<core::String?> z = f(){() → asy::Stream<Null>};
+ core::String? s = await f(){() → asy::Stream<Null>}.{asy::Stream::first}{asy::Future<Null>};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.modular.expect
index 9a6dc27..c69923a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
@@ -6,10 +6,10 @@
import "dart:async";
static method main() → dynamic async /* futureValueType= dynamic */ {
- () →* asy::Stream<Null>* f = () → asy::Stream<Null>* async* {
+ () → asy::Stream<Null> f = () → asy::Stream<Null> async* {
yield null;
};
- asy::Stream<dynamic>* y = f(){() →* asy::Stream<Null>*};
- asy::Stream<core::String*>* z = f(){() →* asy::Stream<Null>*};
- core::String* s = await f(){() →* asy::Stream<Null>*}.{asy::Stream::first}{asy::Future<Null>*};
+ asy::Stream<dynamic> y = f(){() → asy::Stream<Null>};
+ asy::Stream<core::String?> z = f(){() → asy::Stream<Null>};
+ core::String? s = await f(){() → asy::Stream<Null>}.{asy::Stream::first}{asy::Future<Null>};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.outline.expect
index 2fff360..37820c3 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async";
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.transformed.expect
index 9a6dc27..c69923a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_async_star.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
@@ -6,10 +6,10 @@
import "dart:async";
static method main() → dynamic async /* futureValueType= dynamic */ {
- () →* asy::Stream<Null>* f = () → asy::Stream<Null>* async* {
+ () → asy::Stream<Null> f = () → asy::Stream<Null> async* {
yield null;
};
- asy::Stream<dynamic>* y = f(){() →* asy::Stream<Null>*};
- asy::Stream<core::String*>* z = f(){() →* asy::Stream<Null>*};
- core::String* s = await f(){() →* asy::Stream<Null>*}.{asy::Stream::first}{asy::Future<Null>*};
+ asy::Stream<dynamic> y = f(){() → asy::Stream<Null>};
+ asy::Stream<core::String?> z = f(){() → asy::Stream<Null>};
+ core::String? s = await f(){() → asy::Stream<Null>}.{asy::Stream::first}{asy::Future<Null>};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
index be08618..40a6cbe 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,18 +11,18 @@
void foo(int f(Object _)) {}
test() {
- var /*@ type=(Object*) ->* Null */ f = /*@ returnType=Null */ (Object x) {
+ var /*@type=(Object*) ->* Null*/ f = /*@ returnType=Null */ (Object x) {
return null;
};
String y = f(42);
- f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@ returnType=Null */ (/*@ type=Object* */ x) =>
+ f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@ returnType=Null */ (/*@type=Object**/ x) =>
'hello';
- foo(/*@ returnType=Null */ (/*@ type=Object* */ x) {
+ foo(/*@returnType=Null*/ (/*@type=Object**/ x) {
return null;
});
- foo(/*@ returnType=Null */ (/*@ type=Object* */ x) {
+ foo(/*@returnType=Null*/ (/*@type=Object**/ x) {
throw "not implemented";
});
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart
new file mode 100644
index 0000000..8de5086
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+var h = null;
+void foo(int? f(Object _)) {}
+
+test() {
+ var /*@type=(Object) -> Null*/ f = /*@ returnType=Null */ (Object x) {
+ return null;
+ };
+ String? y = f(42);
+
+ f = /*error:INVALID_CAST_FUNCTION_EXPR*/ /*@ returnType=Null */ (/*@type=Object*/ x) =>
+ 'hello';
+
+ foo(/*@returnType=Null*/ (/*@type=Object*/ x) {
+ return null;
+ });
+ foo(/*@returnType=Never*/ (/*@type=Object*/ x) {
+ throw "not implemented";
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.textual_outline.expect
new file mode 100644
index 0000000..7093497
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+library test;
+
+var h = null;
+void foo(int? f(Object _)) {}
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d2bcf0b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+library test;
+
+main() {}
+test() {}
+var h = null;
+void foo(int? f(Object _)) {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.expect
new file mode 100644
index 0000000..cbf28f2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.expect
@@ -0,0 +1,29 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart:18:7: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+// 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h = null;
+static method foo((core::Object) → core::int? f) → void {}
+static method test() → dynamic {
+ (core::Object) → Null f = (core::Object x) → Null {
+ return null;
+ };
+ core::String? y = f(42){(core::Object) → Null};
+ f = (core::Object x) → Null => invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart:18:7: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} Null;
+ self::foo((core::Object x) → Null {
+ return null;
+ });
+ self::foo((core::Object x) → Never {
+ throw "not implemented";
+ });
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.modular.expect
new file mode 100644
index 0000000..cbf28f2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.modular.expect
@@ -0,0 +1,29 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart:18:7: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+// 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h = null;
+static method foo((core::Object) → core::int? f) → void {}
+static method test() → dynamic {
+ (core::Object) → Null f = (core::Object x) → Null {
+ return null;
+ };
+ core::String? y = f(42){(core::Object) → Null};
+ f = (core::Object x) → Null => invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart:18:7: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} Null;
+ self::foo((core::Object x) → Null {
+ return null;
+ });
+ self::foo((core::Object x) → Never {
+ throw "not implemented";
+ });
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.outline.expect
new file mode 100644
index 0000000..5267665
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.outline.expect
@@ -0,0 +1,11 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h;
+static method foo((core::Object) → core::int? f) → void
+ ;
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.transformed.expect
new file mode 100644
index 0000000..cbf28f2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart.weak.transformed.expect
@@ -0,0 +1,29 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart:18:7: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+// 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h = null;
+static method foo((core::Object) → core::int? f) → void {}
+static method test() → dynamic {
+ (core::Object) → Null f = (core::Object x) → Null {
+ return null;
+ };
+ core::String? y = f(42){(core::Object) → Null};
+ f = (core::Object x) → Null => invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync2.dart:18:7: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} Null;
+ self::foo((core::Object x) → Null {
+ return null;
+ });
+ self::foo((core::Object x) → Never {
+ throw "not implemented";
+ });
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart
index 8ad09eb..1058330 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=() ->* Iterable<Null>* */ f = /*@ returnType=Iterable<Null>* */ () sync* {
+ var /*@type=() -> Iterable<Null>*/ f = /*@returnType=Iterable<Null>*/ () sync* {
yield null;
};
Iterable y = f();
- Iterable<String> z = f();
- String s = f(). /*@target=Iterable.first*/ first;
+ Iterable<String?> z = f();
+ String? s = f(). /*@target=Iterable.first*/ first;
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.expect
index 579df9a..b2b3a02 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Iterable<Null>* f = () → core::Iterable<Null>* sync* {
+ () → core::Iterable<Null> f = () → core::Iterable<Null> sync* {
yield null;
};
- core::Iterable<dynamic>* y = f(){() →* core::Iterable<Null>*};
- core::Iterable<core::String*>* z = f(){() →* core::Iterable<Null>*};
- core::String* s = f(){() →* core::Iterable<Null>*}.{core::Iterable::first}{Null};
+ core::Iterable<dynamic> y = f(){() → core::Iterable<Null>};
+ core::Iterable<core::String?> z = f(){() → core::Iterable<Null>};
+ core::String? s = f(){() → core::Iterable<Null>}.{core::Iterable::first}{Null};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.modular.expect
index 579df9a..b2b3a02 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Iterable<Null>* f = () → core::Iterable<Null>* sync* {
+ () → core::Iterable<Null> f = () → core::Iterable<Null> sync* {
yield null;
};
- core::Iterable<dynamic>* y = f(){() →* core::Iterable<Null>*};
- core::Iterable<core::String*>* z = f(){() →* core::Iterable<Null>*};
- core::String* s = f(){() →* core::Iterable<Null>*}.{core::Iterable::first}{Null};
+ core::Iterable<dynamic> y = f(){() → core::Iterable<Null>};
+ core::Iterable<core::String?> z = f(){() → core::Iterable<Null>};
+ core::String? s = f(){() → core::Iterable<Null>}.{core::Iterable::first}{Null};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.transformed.expect
index 579df9a..b2b3a02 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_infer_bottom_sync_star.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- () →* core::Iterable<Null>* f = () → core::Iterable<Null>* sync* {
+ () → core::Iterable<Null> f = () → core::Iterable<Null> sync* {
yield null;
};
- core::Iterable<dynamic>* y = f(){() →* core::Iterable<Null>*};
- core::Iterable<core::String*>* z = f(){() →* core::Iterable<Null>*};
- core::String* s = f(){() →* core::Iterable<Null>*}.{core::Iterable::first}{Null};
+ core::Iterable<dynamic> y = f(){() → core::Iterable<Null>};
+ core::Iterable<core::String?> z = f(){() → core::Iterable<Null>};
+ core::String? s = f(){() → core::Iterable<Null>}.{core::Iterable::first}{Null};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart
index d4ca6f2..f785c09 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart
@@ -1,17 +1,18 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:math' show Random;
-test2() {
- List<num> o;
- var /*@ type=Iterable<num*>* */ y =
- o. /*@ typeArgs=num* */ /*@target=Iterable.map*/ map(
- /*@ returnType=num* */ (/*@ type=num* */ x) {
+test2(List<num> o) {
+ var /*@type=Iterable<num*>**/ y =
+ o. /*@typeArgs=num**/ /*@target=Iterable.map*/ map(
+ /*@returnType=num**/ (/*@type=num**/ x) {
if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
return x. /*@target=num.toInt*/ toInt() /*@target=num.+*/ + 1;
} else {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline.expect
index 0644126..1da2bc4 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline.expect
@@ -3,5 +3,5 @@
import 'dart:math' show Random;
-test2() {}
+test2(List<num> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline_modelled.expect
index a858794..49bea47 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.textual_outline_modelled.expect
@@ -4,4 +4,4 @@
import 'dart:math' show Random;
main() {}
-test2() {}
+test2(List<num> o) {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.expect
index 314b863..e285b3a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.expect
@@ -5,8 +5,7 @@
import "dart:math" show Random;
-static method test2() → dynamic {
- core::List<core::num*>* o;
+static method test2(core::List<core::num*>* o) → dynamic {
core::Iterable<core::num*>* y = o.{core::Iterable::map}<core::num*>((core::num* x) → core::num* {
if(math::Random::•().{math::Random::nextBool}(){() →* core::bool*}) {
return x.{core::num::toInt}(){() →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.modular.expect
index 314b863..e285b3a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.modular.expect
@@ -5,8 +5,7 @@
import "dart:math" show Random;
-static method test2() → dynamic {
- core::List<core::num*>* o;
+static method test2(core::List<core::num*>* o) → dynamic {
core::Iterable<core::num*>* y = o.{core::Iterable::map}<core::num*>((core::num* x) → core::num* {
if(math::Random::•().{math::Random::nextBool}(){() →* core::bool*}) {
return x.{core::num::toInt}(){() →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.outline.expect
index e333c02..28c0728 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.outline.expect
@@ -1,9 +1,10 @@
library test;
import self as self;
+import "dart:core" as core;
import "dart:math" show Random;
-static method test2() → dynamic
+static method test2(core::List<core::num*>* o) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.transformed.expect
index 314b863..e285b3a 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub.dart.weak.transformed.expect
@@ -5,8 +5,7 @@
import "dart:math" show Random;
-static method test2() → dynamic {
- core::List<core::num*>* o;
+static method test2(core::List<core::num*>* o) → dynamic {
core::Iterable<core::num*>* y = o.{core::Iterable::map}<core::num*>((core::num* x) → core::num* {
if(math::Random::•().{math::Random::nextBool}(){() →* core::bool*}) {
return x.{core::num::toInt}(){() →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart
new file mode 100644
index 0000000..e690d12
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:math' show Random;
+
+test2(List<num> o) {
+ var /*@type=Iterable<num>*/ y = o
+ . /*@typeArgs=num*/ /*@target=Iterable.map*/ map(
+ /*@returnType=num*/ (/*@type=num*/ x) {
+ if (new Random(). /*@target=dart.math::Random.nextBool*/ nextBool()) {
+ return x. /*@target=num.toInt*/ toInt() /*@target=num.+*/ + 1;
+ } else {
+ return x. /*@target=num.toDouble*/ toDouble();
+ }
+ });
+ Iterable<num> w = y;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.textual_outline.expect
new file mode 100644
index 0000000..6b5dca0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:math' show Random;
+
+test2(List<num> o) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..788b4d9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:math' show Random;
+
+main() {}
+test2(List<num> o) {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.expect
new file mode 100644
index 0000000..302ce1408
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.expect
@@ -0,0 +1,19 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:math" show Random;
+
+static method test2(core::List<core::num> o) → dynamic {
+ core::Iterable<core::num> y = o.{core::Iterable::map}<core::num>((core::num x) → core::num {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return x.{core::num::toInt}(){() → core::int}.{core::num::+}(1){(core::num) → core::int};
+ }
+ else {
+ return x.{core::num::toDouble}(){() → core::double};
+ }
+ }){((core::num) → core::num) → core::Iterable<core::num>};
+ core::Iterable<core::num> w = y;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.modular.expect
new file mode 100644
index 0000000..302ce1408
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.modular.expect
@@ -0,0 +1,19 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:math" show Random;
+
+static method test2(core::List<core::num> o) → dynamic {
+ core::Iterable<core::num> y = o.{core::Iterable::map}<core::num>((core::num x) → core::num {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return x.{core::num::toInt}(){() → core::int}.{core::num::+}(1){(core::num) → core::int};
+ }
+ else {
+ return x.{core::num::toDouble}(){() → core::double};
+ }
+ }){((core::num) → core::num) → core::Iterable<core::num>};
+ core::Iterable<core::num> w = y;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.outline.expect
new file mode 100644
index 0000000..193e210
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.outline.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:math" show Random;
+
+static method test2(core::List<core::num> o) → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.transformed.expect
new file mode 100644
index 0000000..302ce1408
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_lub2.dart.weak.transformed.expect
@@ -0,0 +1,19 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:math" as math;
+
+import "dart:math" show Random;
+
+static method test2(core::List<core::num> o) → dynamic {
+ core::Iterable<core::num> y = o.{core::Iterable::map}<core::num>((core::num x) → core::num {
+ if(math::Random::•().{math::Random::nextBool}(){() → core::bool}) {
+ return x.{core::num::toInt}(){() → core::int}.{core::num::+}(1){(core::num) → core::int};
+ }
+ else {
+ return x.{core::num::toDouble}(){() → core::double};
+ }
+ }){((core::num) → core::num) → core::Iterable<core::num>};
+ core::Iterable<core::num> w = y;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart
index 89ff032..fd73289 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=() ->* (int*) ->* double* */ f = /*@ returnType=(int*) ->* double* */ () {
- return /*@ returnType=double* */ (int x) {
+ var /*@type=() -> (int) -> double*/ f = /*@returnType=(int) -> double*/ () {
+ return /*@returnType=double*/ (int x) {
return 2.0 /*@target=double.**/ * x;
};
};
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.expect
index e9db0d8..157d6c2 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- () →* (core::int*) →* core::double* f = () → (core::int*) →* core::double* {
- return (core::int* x) → core::double* {
- return 2.0.{core::double::*}(x){(core::num*) →* core::double*};
+ () → (core::int) → core::double f = () → (core::int) → core::double {
+ return (core::int x) → core::double {
+ return 2.0.{core::double::*}(x){(core::num) → core::double};
};
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.modular.expect
index e9db0d8..157d6c2 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- () →* (core::int*) →* core::double* f = () → (core::int*) →* core::double* {
- return (core::int* x) → core::double* {
- return 2.0.{core::double::*}(x){(core::num*) →* core::double*};
+ () → (core::int) → core::double f = () → (core::int) → core::double {
+ return (core::int x) → core::double {
+ return 2.0.{core::double::*}(x){(core::num) → core::double};
};
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.transformed.expect
index e9db0d8..157d6c2 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_nested_lambdas.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- () →* (core::int*) →* core::double* f = () → (core::int*) →* core::double* {
- return (core::int* x) → core::double* {
- return 2.0.{core::double::*}(x){(core::num*) →* core::double*};
+ () → (core::int) → core::double f = () → (core::int) → core::double {
+ return (core::int x) → core::double {
+ return 2.0.{core::double::*}(x){(core::num) → core::double};
};
};
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart
index a0ab88f..734d294 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart
@@ -1,16 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-test1() {
- List<int> o;
- var /*@ type=Iterable<Null>* */ y =
+test1(List<int> o) {
+ var /*@type=Iterable<Null>*/ y =
o. /*@ typeArgs=Null */ /*@target=Iterable.map*/ map(
- /*@ returnType=Null */ (/*@ type=int* */ x) {});
- Iterable<int> z = y;
+ /*@ returnType=Null */ (/*@type=int*/ x) {});
+ Iterable<int?> z = y;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline.expect
index f75f219..66cea18 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-test1() {}
+test1(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline_modelled.expect
index b1f0123..72361bb 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
main() {}
-test1() {}
+test1(List<int> o) {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.expect
index f309388..a6e5bdb 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.expect
@@ -1,10 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test1() → dynamic {
- core::List<core::int*>* o;
- core::Iterable<Null>* y = o.{core::Iterable::map}<Null>((core::int* x) → Null {}){((core::int*) →* Null) →* core::Iterable<Null>*};
- core::Iterable<core::int*>* z = y;
+static method test1(core::List<core::int> o) → dynamic {
+ core::Iterable<Null> y = o.{core::Iterable::map}<Null>((core::int x) → Null {}){((core::int) → Null) → core::Iterable<Null>};
+ core::Iterable<core::int?> z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.modular.expect
index f309388..a6e5bdb 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.modular.expect
@@ -1,10 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test1() → dynamic {
- core::List<core::int*>* o;
- core::Iterable<Null>* y = o.{core::Iterable::map}<Null>((core::int* x) → Null {}){((core::int*) →* Null) →* core::Iterable<Null>*};
- core::Iterable<core::int*>* z = y;
+static method test1(core::List<core::int> o) → dynamic {
+ core::Iterable<Null> y = o.{core::Iterable::map}<Null>((core::int x) → Null {}){((core::int) → Null) → core::Iterable<Null>};
+ core::Iterable<core::int?> z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.outline.expect
index 3619892..6504e2e 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test1() → dynamic
+static method test1(core::List<core::int> o) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.transformed.expect
index f309388..a6e5bdb 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_no_return.dart.weak.transformed.expect
@@ -1,10 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test1() → dynamic {
- core::List<core::int*>* o;
- core::Iterable<Null>* y = o.{core::Iterable::map}<Null>((core::int* x) → Null {}){((core::int*) →* Null) →* core::Iterable<Null>*};
- core::Iterable<core::int*>* z = y;
+static method test1(core::List<core::int> o) → dynamic {
+ core::Iterable<Null> y = o.{core::Iterable::map}<Null>((core::int x) → Null {}){((core::int) → Null) → core::Iterable<Null>};
+ core::Iterable<core::int?> z = y;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart
index 38b0aca..03faedc 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart
@@ -1,78 +1,80 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=() ->* Null */ a = /*@ returnType=Null */ () {};
- var /*@ type=() ->* Null */ b = /*@ returnType=Null */ () {
+ var /*@type=() ->* Null*/ a = /*@ returnType=Null */ () {};
+ var /*@type=() ->* Null*/ b = /*@ returnType=Null */ () {
return;
};
- var /*@ type=() ->* Null */ c = /*@ returnType=Null */ () {
+ var /*@type=() ->* Null*/ c = /*@ returnType=Null */ () {
return null;
};
- var /*@ type=() ->* int* */ d = /*@ returnType=int* */ () {
+ var /*@type=() ->* int**/ d = /*@returnType=int**/ () {
return 0;
};
- var /*@ type=(bool*) ->* Null */ e = /*@ returnType=Null */ (bool b) {
+ var /*@type=(bool*) ->* Null*/ e = /*@ returnType=Null */ (bool b) {
if (b) {
return;
} else {
return;
}
};
- var /*@ type=(bool*) ->* Null */ f = /*@ returnType=Null */ (bool b) {
+ var /*@type=(bool*) ->* Null*/ f = /*@ returnType=Null */ (bool b) {
if (b) {
return;
} else {
return null;
}
};
- var /*@ type=(bool*) ->* int* */ g = /*@ returnType=int* */ (bool b) {
+ var /*@type=(bool*) ->* int**/ g = /*@returnType=int**/ (bool b) {
if (b) {
return;
} else {
return 0;
}
};
- var /*@ type=(bool*) ->* Null */ h = /*@ returnType=Null */ (bool b) {
+ var /*@type=(bool*) ->* Null*/ h = /*@ returnType=Null */ (bool b) {
if (b) {
return null;
} else {
return;
}
};
- var /*@ type=(bool*) ->* Null */ i = /*@ returnType=Null */ (bool b) {
+ var /*@type=(bool*) ->* Null*/ i = /*@ returnType=Null */ (bool b) {
if (b) {
return null;
} else {
return null;
}
};
- var /*@ type=(bool*) ->* int* */ j = /*@ returnType=int* */ (bool b) {
+ var /*@type=(bool*) ->* int**/ j = /*@returnType=int**/ (bool b) {
if (b) {
return null;
} else {
return 0;
}
};
- var /*@ type=(bool*) ->* int* */ k = /*@ returnType=int* */ (bool b) {
+ var /*@type=(bool*) ->* int**/ k = /*@returnType=int**/ (bool b) {
if (b) {
return 0;
} else {
return;
}
};
- var /*@ type=(bool*) ->* int* */ l = /*@ returnType=int* */ (bool b) {
+ var /*@type=(bool*) ->* int**/ l = /*@returnType=int**/ (bool b) {
if (b) {
return 0;
} else {
return null;
}
};
- var /*@ type=(bool*) ->* int* */ m = /*@ returnType=int* */ (bool b) {
+ var /*@type=(bool*) ->* int**/ m = /*@returnType=int**/ (bool b) {
if (b) {
return 0;
} else {
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.expect
index 39b321c..9659231 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.expect
@@ -2,11 +2,11 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:35:7: Warning: Must explicitly return a value from a non-void function.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:37:7: Warning: Must explicitly return a value from a non-void function.
// return;
// ^
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:65:7: Warning: Must explicitly return a value from a non-void function.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:67:7: Warning: Must explicitly return a value from a non-void function.
// return;
// ^
//
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.modular.expect
index 39b321c..9659231 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.modular.expect
@@ -2,11 +2,11 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:35:7: Warning: Must explicitly return a value from a non-void function.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:37:7: Warning: Must explicitly return a value from a non-void function.
// return;
// ^
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:65:7: Warning: Must explicitly return a value from a non-void function.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:67:7: Warning: Must explicitly return a value from a non-void function.
// return;
// ^
//
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.transformed.expect
index 39b321c..9659231 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart.weak.transformed.expect
@@ -2,11 +2,11 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:35:7: Warning: Must explicitly return a value from a non-void function.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:37:7: Warning: Must explicitly return a value from a non-void function.
// return;
// ^
//
-// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:65:7: Warning: Must explicitly return a value from a non-void function.
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns.dart:67:7: Warning: Must explicitly return a value from a non-void function.
// return;
// ^
//
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart
new file mode 100644
index 0000000..5f2dc4b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart
@@ -0,0 +1,82 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+main() {
+ var /*@type=() -> Null*/ a = /*@ returnType=Null */ () {};
+ var /*@type=() -> Null*/ b = /*@ returnType=Null */ () {
+ return;
+ };
+ var /*@type=() -> Null*/ c = /*@ returnType=Null */ () {
+ return null;
+ };
+ var /*@type=() -> int*/ d = /*@returnType=int*/ () {
+ return 0;
+ };
+ var /*@type=(bool) -> Null*/ e = /*@ returnType=Null */ (bool b) {
+ if (b) {
+ return;
+ } else {
+ return;
+ }
+ };
+ var /*@type=(bool) -> Null*/ f = /*@ returnType=Null */ (bool b) {
+ if (b) {
+ return;
+ } else {
+ return null;
+ }
+ };
+ var /*@type=(bool) -> int?*/ g = /*@returnType=int?*/ (bool b) {
+ if (b) {
+ return;
+ } else {
+ return 0;
+ }
+ };
+ var /*@type=(bool) -> Null*/ h = /*@ returnType=Null */ (bool b) {
+ if (b) {
+ return null;
+ } else {
+ return;
+ }
+ };
+ var /*@type=(bool) -> Null*/ i = /*@ returnType=Null */ (bool b) {
+ if (b) {
+ return null;
+ } else {
+ return null;
+ }
+ };
+ var /*@type=(bool) -> int?*/ j = /*@returnType=int?*/ (bool b) {
+ if (b) {
+ return null;
+ } else {
+ return 0;
+ }
+ };
+ var /*@type=(bool) -> int?*/ k = /*@returnType=int?*/ (bool b) {
+ if (b) {
+ return 0;
+ } else {
+ return;
+ }
+ };
+ var /*@type=(bool) -> int?*/ l = /*@returnType=int?*/ (bool b) {
+ if (b) {
+ return 0;
+ } else {
+ return null;
+ }
+ };
+ var /*@type=(bool) -> int*/ m = /*@returnType=int*/ (bool b) {
+ if (b) {
+ return 0;
+ } else {
+ return 0;
+ }
+ };
+}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.textual_outline.expect
new file mode 100644
index 0000000..d0b557f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+library test;
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d0b557f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.textual_outline_modelled.expect
@@ -0,0 +1,3 @@
+library test;
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.expect
new file mode 100644
index 0000000..d0d5e5c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.expect
@@ -0,0 +1,103 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:35:7: Error: A value must be explicitly returned from a non-void function.
+// return;
+// ^
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:65:7: Error: A value must be explicitly returned from a non-void function.
+// return;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+ () → Null a = () → Null {};
+ () → Null b = () → Null {
+ return;
+ };
+ () → Null c = () → Null {
+ return null;
+ };
+ () → core::int d = () → core::int {
+ return 0;
+ };
+ (core::bool) → Null e = (core::bool b) → Null {
+ if(b) {
+ return;
+ }
+ else {
+ return;
+ }
+ };
+ (core::bool) → Null f = (core::bool b) → Null {
+ if(b) {
+ return;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int? g = (core::bool b) → core::int? {
+ if(b) {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:35:7: Error: A value must be explicitly returned from a non-void function.
+ return;
+ ^" in null;
+ }
+ else {
+ return 0;
+ }
+ };
+ (core::bool) → Null h = (core::bool b) → Null {
+ if(b) {
+ return null;
+ }
+ else {
+ return;
+ }
+ };
+ (core::bool) → Null i = (core::bool b) → Null {
+ if(b) {
+ return null;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int? j = (core::bool b) → core::int? {
+ if(b) {
+ return null;
+ }
+ else {
+ return 0;
+ }
+ };
+ (core::bool) → core::int? k = (core::bool b) → core::int? {
+ if(b) {
+ return 0;
+ }
+ else {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:65:7: Error: A value must be explicitly returned from a non-void function.
+ return;
+ ^" in null;
+ }
+ };
+ (core::bool) → core::int? l = (core::bool b) → core::int? {
+ if(b) {
+ return 0;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int m = (core::bool b) → core::int {
+ if(b) {
+ return 0;
+ }
+ else {
+ return 0;
+ }
+ };
+}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.modular.expect
new file mode 100644
index 0000000..d0d5e5c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.modular.expect
@@ -0,0 +1,103 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:35:7: Error: A value must be explicitly returned from a non-void function.
+// return;
+// ^
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:65:7: Error: A value must be explicitly returned from a non-void function.
+// return;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+ () → Null a = () → Null {};
+ () → Null b = () → Null {
+ return;
+ };
+ () → Null c = () → Null {
+ return null;
+ };
+ () → core::int d = () → core::int {
+ return 0;
+ };
+ (core::bool) → Null e = (core::bool b) → Null {
+ if(b) {
+ return;
+ }
+ else {
+ return;
+ }
+ };
+ (core::bool) → Null f = (core::bool b) → Null {
+ if(b) {
+ return;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int? g = (core::bool b) → core::int? {
+ if(b) {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:35:7: Error: A value must be explicitly returned from a non-void function.
+ return;
+ ^" in null;
+ }
+ else {
+ return 0;
+ }
+ };
+ (core::bool) → Null h = (core::bool b) → Null {
+ if(b) {
+ return null;
+ }
+ else {
+ return;
+ }
+ };
+ (core::bool) → Null i = (core::bool b) → Null {
+ if(b) {
+ return null;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int? j = (core::bool b) → core::int? {
+ if(b) {
+ return null;
+ }
+ else {
+ return 0;
+ }
+ };
+ (core::bool) → core::int? k = (core::bool b) → core::int? {
+ if(b) {
+ return 0;
+ }
+ else {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:65:7: Error: A value must be explicitly returned from a non-void function.
+ return;
+ ^" in null;
+ }
+ };
+ (core::bool) → core::int? l = (core::bool b) → core::int? {
+ if(b) {
+ return 0;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int m = (core::bool b) → core::int {
+ if(b) {
+ return 0;
+ }
+ else {
+ return 0;
+ }
+ };
+}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.outline.expect
new file mode 100644
index 0000000..406c4c9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.outline.expect
@@ -0,0 +1,5 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.transformed.expect
new file mode 100644
index 0000000..d0d5e5c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart.weak.transformed.expect
@@ -0,0 +1,103 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:35:7: Error: A value must be explicitly returned from a non-void function.
+// return;
+// ^
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:65:7: Error: A value must be explicitly returned from a non-void function.
+// return;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method main() → dynamic {
+ () → Null a = () → Null {};
+ () → Null b = () → Null {
+ return;
+ };
+ () → Null c = () → Null {
+ return null;
+ };
+ () → core::int d = () → core::int {
+ return 0;
+ };
+ (core::bool) → Null e = (core::bool b) → Null {
+ if(b) {
+ return;
+ }
+ else {
+ return;
+ }
+ };
+ (core::bool) → Null f = (core::bool b) → Null {
+ if(b) {
+ return;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int? g = (core::bool b) → core::int? {
+ if(b) {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:35:7: Error: A value must be explicitly returned from a non-void function.
+ return;
+ ^" in null;
+ }
+ else {
+ return 0;
+ }
+ };
+ (core::bool) → Null h = (core::bool b) → Null {
+ if(b) {
+ return null;
+ }
+ else {
+ return;
+ }
+ };
+ (core::bool) → Null i = (core::bool b) → Null {
+ if(b) {
+ return null;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int? j = (core::bool b) → core::int? {
+ if(b) {
+ return null;
+ }
+ else {
+ return 0;
+ }
+ };
+ (core::bool) → core::int? k = (core::bool b) → core::int? {
+ if(b) {
+ return 0;
+ }
+ else {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_returns2.dart:65:7: Error: A value must be explicitly returned from a non-void function.
+ return;
+ ^" in null;
+ }
+ };
+ (core::bool) → core::int? l = (core::bool b) → core::int? {
+ if(b) {
+ return 0;
+ }
+ else {
+ return null;
+ }
+ };
+ (core::bool) → core::int m = (core::bool b) → core::int {
+ if(b) {
+ return 0;
+ }
+ else {
+ return 0;
+ }
+ };
+}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart
index c13b308..6260fe3 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test() {
- var /*@ type=() ->* Iterable<num*>* */ f = /*@ returnType=Iterable<num*>* */ () sync* {
+ var /*@type=() ->* Iterable<num*>**/ f = /*@returnType=Iterable<num*>**/ () sync* {
yield 1;
- yield* /*@ typeArgs=num* */ [3, 4.0];
+ yield* /*@typeArgs=num**/ [3, 4.0];
};
Iterable<num> g = f();
Iterable<int> h = /*info:ASSIGNMENT_CAST*/ f();
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart
new file mode 100644
index 0000000..e095de2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+test() {
+ var /*@type=() -> Iterable<num>*/ f = /*@returnType=Iterable<num>*/ () sync* {
+ yield 1;
+ yield* /*@typeArgs=num*/ [3, 4.0];
+ };
+ Iterable<num> g = f();
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.textual_outline.expect
new file mode 100644
index 0000000..c70c84a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..10819ea
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.expect
new file mode 100644
index 0000000..e71114a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → dynamic {
+ () → core::Iterable<core::num> f = () → core::Iterable<core::num> sync* {
+ yield 1;
+ yield*<core::num>[3, 4.0];
+ };
+ core::Iterable<core::num> g = f(){() → core::Iterable<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.modular.expect
new file mode 100644
index 0000000..e71114a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.modular.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → dynamic {
+ () → core::Iterable<core::num> f = () → core::Iterable<core::num> sync* {
+ yield 1;
+ yield*<core::num>[3, 4.0];
+ };
+ core::Iterable<core::num> g = f(){() → core::Iterable<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.outline.expect
new file mode 100644
index 0000000..100b8e9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ca9af17
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_sync_star2.dart.weak.transformed.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → dynamic {
+ () → core::Iterable<core::num> f = () → core::Iterable<core::num> sync* {
+ yield 1;
+ yield* core::_GrowableList::_literal2<core::num>(3, 4.0);
+ };
+ core::Iterable<core::num> g = f(){() → core::Iterable<core::num>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart
index 169776d..3855e99 100644
--- a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
f() {
List<int> o;
o. /*@target=Iterable.forEach*/ forEach(
- /*@ returnType=int* */ (/*@ type=int* */ i) {
+ /*@returnType=int**/ (/*@type=int**/ i) {
return i /*@target=num.+*/ + 1;
});
}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart
new file mode 100644
index 0000000..92d00e0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart
@@ -0,0 +1,15 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+f(List<int> o) {
+ o. /*@target=Iterable.forEach*/ forEach(
+ /*@returnType=void*/ (/*@type=int*/ i) {
+ return i /*@target=num.+*/ + 1;
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.textual_outline.expect
new file mode 100644
index 0000000..3276f20
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+f(List<int> o) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3276f20
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+f(List<int> o) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.expect
new file mode 100644
index 0000000..650d2a9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.expect
@@ -0,0 +1,19 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart:11:32: Error: Can't return a value from a void function.
+// return i /*@target=num.+*/ + 1;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::forEach}((core::int i) → void {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart:11:32: Error: Can't return a value from a void function.
+ return i /*@target=num.+*/ + 1;
+ ^" in i.{core::num::+}(1){(core::num) → core::int};
+ }){((core::int) → void) → void};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.modular.expect
new file mode 100644
index 0000000..650d2a9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.modular.expect
@@ -0,0 +1,19 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart:11:32: Error: Can't return a value from a void function.
+// return i /*@target=num.+*/ + 1;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::forEach}((core::int i) → void {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart:11:32: Error: Can't return a value from a void function.
+ return i /*@target=num.+*/ + 1;
+ ^" in i.{core::num::+}(1){(core::num) → core::int};
+ }){((core::int) → void) → void};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.outline.expect
new file mode 100644
index 0000000..a5a8e2e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.outline.expect
@@ -0,0 +1,8 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<core::int> o) → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.transformed.expect
new file mode 100644
index 0000000..650d2a9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart.weak.transformed.expect
@@ -0,0 +1,19 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart:11:32: Error: Can't return a value from a void function.
+// return i /*@target=num.+*/ + 1;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::forEach}((core::int i) → void {
+ return invalid-expression "pkg/front_end/testcases/inference/block_bodied_lambdas_void_context2.dart:11:32: Error: Can't return a value from a void function.
+ return i /*@target=num.+*/ + 1;
+ ^" in i.{core::num::+}(1){(core::num) → core::int};
+ }){((core::int) → void) → void};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bottom.dart b/pkg/front_end/testcases/inference/bottom.dart
index cc5c8fe..99a196f 100644
--- a/pkg/front_end/testcases/inference/bottom.dart
+++ b/pkg/front_end/testcases/inference/bottom.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/bottom.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bottom.dart.textual_outline.expect
index 881b557..3a3a838 100644
--- a/pkg/front_end/testcases/inference/bottom.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/bottom.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var v = null;
diff --git a/pkg/front_end/testcases/inference/bottom.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bottom.dart.textual_outline_modelled.expect
index 955a778..513df85 100644
--- a/pkg/front_end/testcases/inference/bottom.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/bottom.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/bottom.dart.weak.expect b/pkg/front_end/testcases/inference/bottom.dart.weak.expect
index d841a5d..557c38b 100644
--- a/pkg/front_end/testcases/inference/bottom.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/bottom.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic v = null;
diff --git a/pkg/front_end/testcases/inference/bottom.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bottom.dart.weak.modular.expect
index d841a5d..557c38b 100644
--- a/pkg/front_end/testcases/inference/bottom.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/bottom.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic v = null;
diff --git a/pkg/front_end/testcases/inference/bottom.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bottom.dart.weak.outline.expect
index 0387d83..fb06b93 100644
--- a/pkg/front_end/testcases/inference/bottom.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/bottom.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic v;
diff --git a/pkg/front_end/testcases/inference/bottom.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bottom.dart.weak.transformed.expect
index d841a5d..557c38b 100644
--- a/pkg/front_end/testcases/inference/bottom.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/bottom.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic v = null;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart b/pkg/front_end/testcases/inference/bottom_in_closure.dart
index f777cf1..9084f25 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline.expect
index d37e763..5c8173a 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var v = () => null;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline_modelled.expect
index e9d7670..09b085b 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.expect
index 63cbd26..fd2ed01 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
-static field () →* Null v = () → Null => null;
+static field () → Null v = () → Null => null;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.modular.expect
index 63cbd26..fd2ed01 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
-static field () →* Null v = () → Null => null;
+static field () → Null v = () → Null => null;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.outline.expect
index 9f65784..bbabef8 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.outline.expect
@@ -1,6 +1,6 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
-static field () →* Null v;
+static field () → Null v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.transformed.expect
index 63cbd26..fd2ed01 100644
--- a/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/bottom_in_closure.dart.weak.transformed.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
-static field () →* Null v = () → Null => null;
+static field () → Null v = () → Null => null;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/bug30251.dart b/pkg/front_end/testcases/inference/bug30251.dart
index bcd00d4..a1ae60a 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart
+++ b/pkg/front_end/testcases/inference/bug30251.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
class C {
final x;
- C(int p) : x = /*@ typeArgs=int* */ f(1 /*@target=num.+*/ + p);
+ C(int p) : x = /*@typeArgs=int*/ f(1 /*@target=num.+*/ + p);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/bug30251.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug30251.dart.textual_outline.expect
index 40a0766..8c82e9b 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/bug30251.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T f<T>(T t) => t;
diff --git a/pkg/front_end/testcases/inference/bug30251.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug30251.dart.textual_outline_modelled.expect
index feeb7ca..a9f43dc 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/bug30251.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T f<T>(T t) => t;
diff --git a/pkg/front_end/testcases/inference/bug30251.dart.weak.expect b/pkg/front_end/testcases/inference/bug30251.dart.weak.expect
index 0622d1c..9f396a3 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/bug30251.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
- : self::C::x = self::f<core::int*>(1.{core::num::+}(p){(core::num*) →* core::int*}), super core::Object::•()
+ constructor •(core::int p) → self::C
+ : self::C::x = self::f<core::int>(1.{core::num::+}(p){(core::num) → core::int}), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30251.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug30251.dart.weak.modular.expect
index 0622d1c..9f396a3 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/bug30251.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
- : self::C::x = self::f<core::int*>(1.{core::num::+}(p){(core::num*) →* core::int*}), super core::Object::•()
+ constructor •(core::int p) → self::C
+ : self::C::x = self::f<core::int>(1.{core::num::+}(p){(core::num) → core::int}), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30251.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug30251.dart.weak.outline.expect
index 73500a0..95702b4 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/bug30251.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
+ constructor •(core::int p) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/bug30251.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30251.dart.weak.transformed.expect
index 0622d1c..9f396a3 100644
--- a/pkg/front_end/testcases/inference/bug30251.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/bug30251.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
- : self::C::x = self::f<core::int*>(1.{core::num::+}(p){(core::num*) →* core::int*}), super core::Object::•()
+ constructor •(core::int p) → self::C
+ : self::C::x = self::f<core::int>(1.{core::num::+}(p){(core::num) → core::int}), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30620.dart b/pkg/front_end/testcases/inference/bug30620.dart
index 41598a3..2d525b0 100644
--- a/pkg/front_end/testcases/inference/bug30620.dart
+++ b/pkg/front_end/testcases/inference/bug30620.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +13,7 @@
A(this.foo);
bool operator ==(Object other) =>
- other is A && /*@ promotedType=A* */ other
+ other is A && /*@promotedType=A**/ other
. /*@target=A.foo*/ foo /*@target=String.==*/ ==
this. /*@target=A.foo*/ foo;
}
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart b/pkg/front_end/testcases/inference/bug30620_2.dart
new file mode 100644
index 0000000..433e8b4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart
@@ -0,0 +1,21 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {
+ final String foo;
+
+ A(this.foo);
+
+ bool operator ==(Object other) =>
+ other is A && /*@promotedType=A*/ other
+ . /*@target=A.foo*/ foo /*@target=String.==*/ ==
+ this. /*@target=A.foo*/ foo;
+}
+
+main() {
+ print(new A("hello") /*@target=A.==*/ == new A("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug30620_2.dart.textual_outline.expect
new file mode 100644
index 0000000..fec1eb3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+library test;
+
+class A {
+ final String foo;
+ A(this.foo);
+ bool operator ==(Object other) => other is A && other.foo == this.foo;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug30620_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..0fcdf5f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+library test;
+
+class A {
+ A(this.foo);
+ bool operator ==(Object other) => other is A && other.foo == this.foo;
+ final String foo;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart.weak.expect b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.expect
new file mode 100644
index 0000000..9c46aca
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool
+ return other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String};
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.modular.expect
new file mode 100644
index 0000000..9c46aca
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.modular.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool
+ return other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String};
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.outline.expect
new file mode 100644
index 0000000..514cfb2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.outline.expect
@@ -0,0 +1,13 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ ;
+ operator ==(core::Object other) → core::bool
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug30620_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..9c46aca
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_2.dart.weak.transformed.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool
+ return other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String};
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_b.dart b/pkg/front_end/testcases/inference/bug30620_b.dart
index 9ba5f81..d4d4ce8c 100644
--- a/pkg/front_end/testcases/inference/bug30620_b.dart
+++ b/pkg/front_end/testcases/inference/bug30620_b.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,9 +13,9 @@
A(this.foo);
bool operator ==(Object other) =>
- other is A && /*@ promotedType=A* */ other
+ other is A && /*@promotedType=A**/ other
. /*@target=A.foo*/ foo /*@target=String.==*/ ==
- this. /*@target=A.foo*/ foo && /*@ promotedType=A* */ other
+ this. /*@target=A.foo*/ foo && /*@promotedType=A**/ other
. /*@target=A.foo*/ foo /*@target=String.==*/ ==
this. /*@target=A.foo*/ foo;
}
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart b/pkg/front_end/testcases/inference/bug30620_b2.dart
new file mode 100644
index 0000000..3bc76e3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {
+ final String foo;
+
+ A(this.foo);
+
+ bool operator ==(Object other) =>
+ other is A && /*@promotedType=A*/ other
+ . /*@target=A.foo*/ foo /*@target=String.==*/ ==
+ this. /*@target=A.foo*/ foo && /*@promotedType=A*/ other
+ . /*@target=A.foo*/ foo /*@target=String.==*/ ==
+ this. /*@target=A.foo*/ foo;
+}
+
+main() {
+ print(new A("hello") /*@target=A.==*/ == new A("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug30620_b2.dart.textual_outline.expect
new file mode 100644
index 0000000..503a2af
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart.textual_outline.expect
@@ -0,0 +1,10 @@
+library test;
+
+class A {
+ final String foo;
+ A(this.foo);
+ bool operator ==(Object other) =>
+ other is A && other.foo == this.foo && other.foo == this.foo;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug30620_b2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..329f32b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart.textual_outline_modelled.expect
@@ -0,0 +1,10 @@
+library test;
+
+class A {
+ A(this.foo);
+ bool operator ==(Object other) =>
+ other is A && other.foo == this.foo && other.foo == this.foo;
+ final String foo;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.expect b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.expect
new file mode 100644
index 0000000..aab0dc4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool
+ return other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String} && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String};
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.modular.expect
new file mode 100644
index 0000000..aab0dc4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.modular.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool
+ return other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String} && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String};
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.outline.expect
new file mode 100644
index 0000000..514cfb2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.outline.expect
@@ -0,0 +1,13 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ ;
+ operator ==(core::Object other) → core::bool
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.transformed.expect
new file mode 100644
index 0000000..aab0dc4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_b2.dart.weak.transformed.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool
+ return other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String} && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String};
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_c.dart b/pkg/front_end/testcases/inference/bug30620_c.dart
index 9683e49..49fdde5 100644
--- a/pkg/front_end/testcases/inference/bug30620_c.dart
+++ b/pkg/front_end/testcases/inference/bug30620_c.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,10 +13,10 @@
A(this.foo);
bool operator ==(Object other) {
- if (other is A && /*@ promotedType=A* */ other
+ if (other is A && /*@promotedType=A**/ other
. /*@target=A.foo*/ foo /*@target=String.==*/ ==
this. /*@target=A.foo*/ foo) {
- if (/*@ promotedType=A* */ other
+ if (/*@promotedType=A**/ other
. /*@target=A.foo*/ foo /*@target=String.==*/ ==
this. /*@target=A.foo*/ foo) {}
}
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart b/pkg/front_end/testcases/inference/bug30620_c2.dart
new file mode 100644
index 0000000..1d8f93f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {
+ final String foo;
+
+ A(this.foo);
+
+ bool operator ==(Object other) {
+ if (other is A && /*@promotedType=A*/ other
+ . /*@target=A.foo*/ foo /*@target=String.==*/ ==
+ this. /*@target=A.foo*/ foo) {
+ if (/*@promotedType=A*/ other
+ . /*@target=A.foo*/ foo /*@target=String.==*/ ==
+ this. /*@target=A.foo*/ foo) {}
+ }
+ return true;
+ }
+}
+
+main() {
+ print(new A("hello") /*@target=A.==*/ == new A("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug30620_c2.dart.textual_outline.expect
new file mode 100644
index 0000000..42c642b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+library test;
+
+class A {
+ final String foo;
+ A(this.foo);
+ bool operator ==(Object other) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug30620_c2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..6ecf601
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+library test;
+
+class A {
+ A(this.foo);
+ bool operator ==(Object other) {}
+ final String foo;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.expect b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.expect
new file mode 100644
index 0000000..3d98548
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool {
+ if(other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String}) {
+ if(other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String}) {
+ }
+ }
+ return true;
+ }
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.modular.expect
new file mode 100644
index 0000000..3d98548
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.modular.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool {
+ if(other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String}) {
+ if(other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String}) {
+ }
+ }
+ return true;
+ }
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.outline.expect
new file mode 100644
index 0000000..514cfb2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.outline.expect
@@ -0,0 +1,13 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ ;
+ operator ==(core::Object other) → core::bool
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.transformed.expect
new file mode 100644
index 0000000..3d98548
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_c2.dart.weak.transformed.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ final field core::String foo;
+ constructor •(core::String foo) → self::A
+ : self::A::foo = foo, super core::Object::•()
+ ;
+ operator ==(core::Object other) → core::bool {
+ if(other is{ForNonNullableByDefault} self::A && other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String}) {
+ if(other{self::A}.{self::A::foo}{core::String} =={core::String::==}{(core::Object) → core::bool} this.{self::A::foo}{core::String}) {
+ }
+ }
+ return true;
+ }
+}
+static method main() → dynamic {
+ core::print(new self::A::•("hello") =={self::A::==}{(core::Object) → core::bool} new self::A::•("hello"));
+}
diff --git a/pkg/front_end/testcases/inference/bug30620_d.dart b/pkg/front_end/testcases/inference/bug30620_d.dart
index 59aadba..0b26d0b 100644
--- a/pkg/front_end/testcases/inference/bug30620_d.dart
+++ b/pkg/front_end/testcases/inference/bug30620_d.dart
@@ -1,12 +1,14 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
String foo(obj) => obj is String
- ? /*@ promotedType=String* */ obj
+ ? /*@promotedType=String**/ obj
. /*@target=String.toUpperCase*/ toUpperCase()
: null;
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart b/pkg/front_end/testcases/inference/bug30620_d2.dart
new file mode 100644
index 0000000..5120eed
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart
@@ -0,0 +1,12 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+String? foo(obj) => obj is String
+ ? /*@promotedType=String*/ obj. /*@target=String.toUpperCase*/ toUpperCase()
+ : null;
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug30620_d2.dart.textual_outline.expect
new file mode 100644
index 0000000..d09050e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+String? foo(obj) => obj is String ? obj.toUpperCase() : null;
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug30620_d2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d09050e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+String? foo(obj) => obj is String ? obj.toUpperCase() : null;
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.expect b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.expect
new file mode 100644
index 0000000..4046084
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.expect
@@ -0,0 +1,7 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo(dynamic obj) → core::String?
+ return obj is{ForNonNullableByDefault} core::String ?{core::String?} obj{core::String}.{core::String::toUpperCase}(){() → core::String} : null;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.modular.expect
new file mode 100644
index 0000000..4046084
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.modular.expect
@@ -0,0 +1,7 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo(dynamic obj) → core::String?
+ return obj is{ForNonNullableByDefault} core::String ?{core::String?} obj{core::String}.{core::String::toUpperCase}(){() → core::String} : null;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.outline.expect
new file mode 100644
index 0000000..03cded2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.outline.expect
@@ -0,0 +1,8 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo(dynamic obj) → core::String?
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.transformed.expect
new file mode 100644
index 0000000..4046084
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30620_d2.dart.weak.transformed.expect
@@ -0,0 +1,7 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo(dynamic obj) → core::String?
+ return obj is{ForNonNullableByDefault} core::String ?{core::String?} obj{core::String}.{core::String::toUpperCase}(){() → core::String} : null;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug30624.dart b/pkg/front_end/testcases/inference/bug30624.dart
index 341d1e5..1de7c8d 100644
--- a/pkg/front_end/testcases/inference/bug30624.dart
+++ b/pkg/front_end/testcases/inference/bug30624.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,17 +11,17 @@
class C<E> {
void barA([int cmp(E a, E b)]) {
- /*@ typeArgs=C::E* */ foo(this, cmp ?? _default);
+ /*@typeArgs=C::E**/ foo(this, cmp ?? _default);
}
void barB([int cmp(E a, E b)]) {
- /*@ typeArgs=C::E* */ foo(
+ /*@typeArgs=C::E**/ foo(
this, cmp ?? (_default as int Function(E, E)));
}
void barC([int cmp(E a, E b)]) {
int Function(E, E) v = _default;
- /*@ typeArgs=C::E* */ foo(this, cmp ?? v);
+ /*@typeArgs=C::E**/ foo(this, cmp ?? v);
}
void barD([int cmp(E a, E b)]) {
@@ -27,12 +29,12 @@
}
void barE([int cmp(E a, E b)]) {
- /*@ typeArgs=C::E* */ foo(
+ /*@typeArgs=C::E**/ foo(
this, cmp == null ? _default : cmp);
}
void barF([int cmp(E a, E b)]) {
- /*@ typeArgs=C::E* */ foo(
+ /*@typeArgs=C::E**/ foo(
this, cmp != null ? cmp : _default);
}
diff --git a/pkg/front_end/testcases/inference/bug30624.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30624.dart.weak.transformed.expect
index 02a85fc..c5195fb 100644
--- a/pkg/front_end/testcases/inference/bug30624.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/bug30624.dart.weak.transformed.expect
@@ -48,5 +48,5 @@
}
Extra constant evaluation status:
-Evaluated: InstanceInvocation @ org-dartlang-testcase:///bug30624.dart:40:35 -> IntConstant(-1)
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///bug30624.dart:42:35 -> IntConstant(-1)
Extra constant evaluation: evaluated: 47, effectively constant: 1
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart b/pkg/front_end/testcases/inference/bug30624_2.dart
new file mode 100644
index 0000000..e329652
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void foo<E>(C<E> c, int cmp(E a, E b)) {}
+
+class C<E> {
+ void barA([int Function(E a, E b)? cmp]) {
+ /*@typeArgs=C::E%*/ foo(this, cmp ?? _default);
+ }
+
+ void barB([int Function(E a, E b)? cmp]) {
+ /*@typeArgs=C::E%*/ foo(this, cmp ?? (_default as int Function(E, E)));
+ }
+
+ void barC([int Function(E a, E b)? cmp]) {
+ int Function(E, E) v = _default;
+ /*@typeArgs=C::E%*/ foo(this, cmp ?? v);
+ }
+
+ void barD([int Function(E a, E b)? cmp]) {
+ foo<E>(this, cmp ?? _default);
+ }
+
+ void barE([int Function(E a, E b)? cmp]) {
+ /*@typeArgs=C::E%*/ foo(this,
+ cmp == null ? _default : /*@promotedType=(C::E%, C::E%) -> int*/ cmp);
+ }
+
+ void barF([int Function(E a, E b)? cmp]) {
+ /*@typeArgs=C::E%*/ foo(this,
+ cmp != null ? /*@promotedType=(C::E%, C::E%) -> int*/ cmp : _default);
+ }
+
+ static int _default(a, b) {
+ return /*@target=int.unary-*/ -1;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug30624_2.dart.textual_outline.expect
new file mode 100644
index 0000000..0762095
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart.textual_outline.expect
@@ -0,0 +1,15 @@
+library test;
+
+void foo<E>(C<E> c, int cmp(E a, E b)) {}
+
+class C<E> {
+ void barA([int Function(E a, E b)? cmp]) {}
+ void barB([int Function(E a, E b)? cmp]) {}
+ void barC([int Function(E a, E b)? cmp]) {}
+ void barD([int Function(E a, E b)? cmp]) {}
+ void barE([int Function(E a, E b)? cmp]) {}
+ void barF([int Function(E a, E b)? cmp]) {}
+ static int _default(a, b) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug30624_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..afc33c0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,14 @@
+library test;
+
+class C<E> {
+ static int _default(a, b) {}
+ void barA([int Function(E a, E b)? cmp]) {}
+ void barB([int Function(E a, E b)? cmp]) {}
+ void barC([int Function(E a, E b)? cmp]) {}
+ void barD([int Function(E a, E b)? cmp]) {}
+ void barE([int Function(E a, E b)? cmp]) {}
+ void barF([int Function(E a, E b)? cmp]) {}
+}
+
+main() {}
+void foo<E>(C<E> c, int cmp(E a, E b)) {}
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart.weak.expect b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.expect
new file mode 100644
index 0000000..8fbdc25
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.expect
@@ -0,0 +1,38 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
+ : super core::Object::•()
+ ;
+ method barA([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t1 = cmp in #t1 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t1{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barB([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t2 = cmp in #t2 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 as{ForNonNullableByDefault} (self::C::E%, self::C::E%) → core::int : #t2{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barC([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ (self::C::E%, self::C::E%) → core::int v = #C2;
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t3 = cmp in #t3 == null ?{(self::C::E%, self::C::E%) → core::int} v : #t3{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barD([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t4 = cmp in #t4 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t4{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barE([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, cmp == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : cmp{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barF([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, !(cmp == null) ?{(self::C::E%, self::C::E%) → core::int} cmp{(self::C::E%, self::C::E%) → core::int} : #C2);
+ }
+ static method _default(dynamic a, dynamic b) → core::int {
+ return 1.{core::int::unary-}(){() → core::int};
+ }
+}
+static method foo<E extends core::Object? = dynamic>(self::C<self::foo::E%> c, (self::foo::E%, self::foo::E%) → core::int cmp) → void {}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = static-tearoff self::C::_default
+}
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.modular.expect
new file mode 100644
index 0000000..8fbdc25
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.modular.expect
@@ -0,0 +1,38 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
+ : super core::Object::•()
+ ;
+ method barA([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t1 = cmp in #t1 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t1{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barB([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t2 = cmp in #t2 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 as{ForNonNullableByDefault} (self::C::E%, self::C::E%) → core::int : #t2{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barC([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ (self::C::E%, self::C::E%) → core::int v = #C2;
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t3 = cmp in #t3 == null ?{(self::C::E%, self::C::E%) → core::int} v : #t3{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barD([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t4 = cmp in #t4 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t4{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barE([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, cmp == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : cmp{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barF([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, !(cmp == null) ?{(self::C::E%, self::C::E%) → core::int} cmp{(self::C::E%, self::C::E%) → core::int} : #C2);
+ }
+ static method _default(dynamic a, dynamic b) → core::int {
+ return 1.{core::int::unary-}(){() → core::int};
+ }
+}
+static method foo<E extends core::Object? = dynamic>(self::C<self::foo::E%> c, (self::foo::E%, self::foo::E%) → core::int cmp) → void {}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = static-tearoff self::C::_default
+}
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.outline.expect
new file mode 100644
index 0000000..25c1ee7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.outline.expect
@@ -0,0 +1,26 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
+ ;
+ method barA([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
+ ;
+ method barB([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
+ ;
+ method barC([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
+ ;
+ method barD([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
+ ;
+ method barE([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
+ ;
+ method barF([(self::C::E%, self::C::E%) →? core::int cmp = null]) → void
+ ;
+ static method _default(dynamic a, dynamic b) → core::int
+ ;
+}
+static method foo<E extends core::Object? = dynamic>(self::C<self::foo::E%> c, (self::foo::E%, self::foo::E%) → core::int cmp) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug30624_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..227058dd
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug30624_2.dart.weak.transformed.expect
@@ -0,0 +1,42 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
+ : super core::Object::•()
+ ;
+ method barA([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t1 = cmp in #t1 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t1{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barB([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t2 = cmp in #t2 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t2{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barC([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ (self::C::E%, self::C::E%) → core::int v = #C2;
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t3 = cmp in #t3 == null ?{(self::C::E%, self::C::E%) → core::int} v : #t3{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barD([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t4 = cmp in #t4 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t4{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barE([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, cmp == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : cmp{(self::C::E%, self::C::E%) → core::int});
+ }
+ method barF([(self::C::E%, self::C::E%) →? core::int cmp = #C1]) → void {
+ self::foo<self::C::E%>(this, !(cmp == null) ?{(self::C::E%, self::C::E%) → core::int} cmp{(self::C::E%, self::C::E%) → core::int} : #C2);
+ }
+ static method _default(dynamic a, dynamic b) → core::int {
+ return 1.{core::int::unary-}(){() → core::int};
+ }
+}
+static method foo<E extends core::Object? = dynamic>(self::C<self::foo::E%> c, (self::foo::E%, self::foo::E%) → core::int cmp) → void {}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = static-tearoff self::C::_default
+}
+
+Extra constant evaluation status:
+Evaluated: InstanceInvocation @ org-dartlang-testcase:///bug30624_2.dart:39:35 -> IntConstant(-1)
+Extra constant evaluation: evaluated: 47, effectively constant: 1
diff --git a/pkg/front_end/testcases/inference/bug31132.dart b/pkg/front_end/testcases/inference/bug31132.dart
index 6a6960d..e681072 100644
--- a/pkg/front_end/testcases/inference/bug31132.dart
+++ b/pkg/front_end/testcases/inference/bug31132.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,7 +14,7 @@
}
void test(B x) {
- var /*@ type=C* */ y = x is C ? /*@ promotedType=C* */ x : new C();
+ var /*@type=C**/ y = x is C ? /*@promotedType=C**/ x : new C();
print(y. /*@target=C.z*/ z);
}
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart b/pkg/front_end/testcases/inference/bug31132_2.dart
new file mode 100644
index 0000000..066d506
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart
@@ -0,0 +1,19 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class B {}
+
+class C extends B {
+ var z;
+}
+
+void test(B x) {
+ var /*@type=C*/ y = x is C ? /*@promotedType=C*/ x : new C();
+ print(y. /*@target=C.z*/ z);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug31132_2.dart.textual_outline.expect
new file mode 100644
index 0000000..977a33d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart.textual_outline.expect
@@ -0,0 +1,10 @@
+library test;
+
+class B {}
+
+class C extends B {
+ var z;
+}
+
+void test(B x) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug31132_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b742b0c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,10 @@
+library test;
+
+class B {}
+
+class C extends B {
+ var z;
+}
+
+main() {}
+void test(B x) {}
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart.weak.expect b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.expect
new file mode 100644
index 0000000..4bfcae4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends self::B {
+ field dynamic z = null;
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method test(self::B x) → void {
+ self::C y = x is{ForNonNullableByDefault} self::C ?{self::C} x{self::C} : new self::C::•();
+ core::print(y.{self::C::z}{dynamic});
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.modular.expect
new file mode 100644
index 0000000..4bfcae4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.modular.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends self::B {
+ field dynamic z = null;
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method test(self::B x) → void {
+ self::C y = x is{ForNonNullableByDefault} self::C ?{self::C} x{self::C} : new self::C::•();
+ core::print(y.{self::C::z}{dynamic});
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.outline.expect
new file mode 100644
index 0000000..162adca
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.outline.expect
@@ -0,0 +1,17 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ ;
+}
+class C extends self::B {
+ field dynamic z;
+ synthetic constructor •() → self::C
+ ;
+}
+static method test(self::B x) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/bug31132_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..4bfcae4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31132_2.dart.weak.transformed.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class B extends core::Object {
+ synthetic constructor •() → self::B
+ : super core::Object::•()
+ ;
+}
+class C extends self::B {
+ field dynamic z = null;
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method test(self::B x) → void {
+ self::C y = x is{ForNonNullableByDefault} self::C ?{self::C} x{self::C} : new self::C::•();
+ core::print(y.{self::C::z}{dynamic});
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug31133.dart b/pkg/front_end/testcases/inference/bug31133.dart
index 4835a9f..6e39c2be4 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart
+++ b/pkg/front_end/testcases/inference/bug31133.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test() {
- var /*@ type=int* */ i = 0;
+ var /*@type=int*/ i = 0;
for (i /*@target=num.+*/ ++;
i /*@target=num.<*/ < 10;
i /*@target=num.+*/ ++) {}
diff --git a/pkg/front_end/testcases/inference/bug31133.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug31133.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/bug31133.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/bug31133.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug31133.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/bug31133.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/bug31133.dart.weak.expect b/pkg/front_end/testcases/inference/bug31133.dart.weak.expect
index 46ea8a2..b5d1aca 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/bug31133.dart.weak.expect
@@ -1,16 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::int* i = 0;
- for (final core::int* #t1 = i = i.{core::num::+}(1){(core::num*) →* core::int*}; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ core::int i = 0;
+ for (final core::int #t1 = i = i.{core::num::+}(1){(core::num) → core::int}; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (final core::int* #t2 = i = i.{core::num::+}(1){(core::num*) →* core::int*}; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t2 = i = i.{core::num::+}(1){(core::num) → core::int}; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (final core::int* #t3 = i = i.{core::num::-}(1){(core::num*) →* core::int*}; i.{core::num::>=}(0){(core::num*) →* core::bool*}; i = i.{core::num::-}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t3 = i = i.{core::num::-}(1){(core::num) → core::int}; i.{core::num::>=}(0){(core::num) → core::bool}; i = i.{core::num::-}(1){(core::num) → core::int}) {
}
- for (final core::int* #t4 = i = i.{core::num::-}(1){(core::num*) →* core::int*}; i.{core::num::>=}(0){(core::num*) →* core::bool*}; i = i.{core::num::-}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t4 = i = i.{core::num::-}(1){(core::num) → core::int}; i.{core::num::>=}(0){(core::num) → core::bool}; i = i.{core::num::-}(1){(core::num) → core::int}) {
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug31133.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug31133.dart.weak.modular.expect
index 46ea8a2..b5d1aca 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/bug31133.dart.weak.modular.expect
@@ -1,16 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::int* i = 0;
- for (final core::int* #t1 = i = i.{core::num::+}(1){(core::num*) →* core::int*}; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ core::int i = 0;
+ for (final core::int #t1 = i = i.{core::num::+}(1){(core::num) → core::int}; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (final core::int* #t2 = i = i.{core::num::+}(1){(core::num*) →* core::int*}; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t2 = i = i.{core::num::+}(1){(core::num) → core::int}; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (final core::int* #t3 = i = i.{core::num::-}(1){(core::num*) →* core::int*}; i.{core::num::>=}(0){(core::num*) →* core::bool*}; i = i.{core::num::-}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t3 = i = i.{core::num::-}(1){(core::num) → core::int}; i.{core::num::>=}(0){(core::num) → core::bool}; i = i.{core::num::-}(1){(core::num) → core::int}) {
}
- for (final core::int* #t4 = i = i.{core::num::-}(1){(core::num*) →* core::int*}; i.{core::num::>=}(0){(core::num*) →* core::bool*}; i = i.{core::num::-}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t4 = i = i.{core::num::-}(1){(core::num) → core::int}; i.{core::num::>=}(0){(core::num) → core::bool}; i = i.{core::num::-}(1){(core::num) → core::int}) {
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug31133.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug31133.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/bug31133.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/bug31133.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug31133.dart.weak.transformed.expect
index 46ea8a2..b5d1aca 100644
--- a/pkg/front_end/testcases/inference/bug31133.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/bug31133.dart.weak.transformed.expect
@@ -1,16 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::int* i = 0;
- for (final core::int* #t1 = i = i.{core::num::+}(1){(core::num*) →* core::int*}; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ core::int i = 0;
+ for (final core::int #t1 = i = i.{core::num::+}(1){(core::num) → core::int}; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (final core::int* #t2 = i = i.{core::num::+}(1){(core::num*) →* core::int*}; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t2 = i = i.{core::num::+}(1){(core::num) → core::int}; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (final core::int* #t3 = i = i.{core::num::-}(1){(core::num*) →* core::int*}; i.{core::num::>=}(0){(core::num*) →* core::bool*}; i = i.{core::num::-}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t3 = i = i.{core::num::-}(1){(core::num) → core::int}; i.{core::num::>=}(0){(core::num) → core::bool}; i = i.{core::num::-}(1){(core::num) → core::int}) {
}
- for (final core::int* #t4 = i = i.{core::num::-}(1){(core::num*) →* core::int*}; i.{core::num::>=}(0){(core::num*) →* core::bool*}; i = i.{core::num::-}(1){(core::num*) →* core::int*}) {
+ for (final core::int #t4 = i = i.{core::num::-}(1){(core::num) → core::int}; i.{core::num::>=}(0){(core::num) → core::bool}; i = i.{core::num::-}(1){(core::num) → core::int}) {
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/bug31436.dart b/pkg/front_end/testcases/inference/bug31436.dart
index 92aa283..62f529c 100644
--- a/pkg/front_end/testcases/inference/bug31436.dart
+++ b/pkg/front_end/testcases/inference/bug31436.dart
@@ -1,20 +1,22 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void block_test() {
List<Object> Function() g;
- g = /*@ returnType=List<Object*>* */ () {
- return /*@ typeArgs=Object* */ [3];
+ g = /*@returnType=List<Object*>**/ () {
+ return /*@typeArgs=Object**/ [3];
};
assert(g is List<Object> Function());
assert(g is! List<int> Function());
g(). /*@target=List.add*/ add("hello"); // No runtime error
- List<int> l = /*@ typeArgs=int* */ [3];
- g = /*@ returnType=List<int*>* */ () {
+ List<int> l = /*@typeArgs=int**/ [3];
+ g = /*@returnType=List<int*>**/ () {
return l;
};
assert(g is List<Object> Function());
@@ -24,7 +26,7 @@
throw 'expected a runtime error';
} on TypeError {}
Object o = l;
- g = /*@ returnType=List<Object*>* */ () {
+ g = /*@returnType=List<Object*>**/ () {
return o;
}; // No implicit downcast on the assignment, implicit downcast on the return
assert(g is List<Object> Function());
@@ -40,12 +42,12 @@
void arrow_test() {
List<Object> Function() g;
- g = /*@ returnType=List<Object*>* */ () => /*@ typeArgs=Object* */ [3];
+ g = /*@returnType=List<Object*>**/ () => /*@typeArgs=Object**/ [3];
assert(g is List<Object> Function());
assert(g is! List<int> Function());
g(). /*@target=List.add*/ add("hello"); // No runtime error
- List<int> l = /*@ typeArgs=int* */ [3];
- g = /*@ returnType=List<int*>* */ () => l;
+ List<int> l = /*@typeArgs=int**/ [3];
+ g = /*@returnType=List<int*>**/ () => l;
assert(g is List<Object> Function());
assert(g is List<int> Function());
try {
@@ -53,7 +55,7 @@
throw 'expected a runtime error';
} on TypeError {}
Object o = l;
- g = /*@ returnType=List<Object*>* */ () =>
+ g = /*@returnType=List<Object*>**/ () =>
o; // No implicit downcast on the assignment, implicit downcast on the return
assert(g is List<Object> Function());
assert(g is! List<int> Function());
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart b/pkg/front_end/testcases/inference/bug31436_2.dart
new file mode 100644
index 0000000..b821fc2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart
@@ -0,0 +1,67 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void block_test(List<Object> Function() g) {
+ g = /*@returnType=List<Object>*/ () {
+ return /*@typeArgs=Object*/ [3];
+ };
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ g(). /*@target=List.add*/ add("hello"); // No runtime error
+ List<int> l = /*@typeArgs=int*/ [3];
+ g = /*@returnType=List<int>*/ () {
+ return l;
+ };
+ assert(/*@promotedType=() -> List<int>*/ g is List<Object> Function());
+ assert(/*@promotedType=() -> List<int>*/ g is List<int> Function());
+ try {
+ /*@promotedType=() -> List<int>*/ g()
+ . /*@target=List.add*/ add("hello"); // runtime error
+ throw 'expected a runtime error';
+ } on TypeError {}
+ Object o = l;
+ g = /*@returnType=List<int>*/ () {
+ return o;
+ }; // No implicit downcast on the assignment, implicit downcast on the return
+ assert(/*@promotedType=() -> List<int>*/ g is List<Object> Function());
+ assert(/*@promotedType=() -> List<int>*/ g is! List<int> Function());
+ assert(/*@promotedType=() -> List<int>*/ g is! Object Function());
+ /*@promotedType=() -> List<int>*/ g(); // No runtime error;
+ o = 3;
+ try {
+ /*@promotedType=() -> List<int>*/ g(); // Failed runtime cast on the return type of f
+ throw 'expected a runtime error';
+ } on TypeError {}
+}
+
+void arrow_test(List<Object> Function() g) {
+ g = /*@returnType=List<Object>*/ () => /*@typeArgs=Object*/ [3];
+ assert(g is List<Object> Function());
+ assert(g is! List<int> Function());
+ g(). /*@target=List.add*/ add("hello"); // No runtime error
+ List<int> l = /*@typeArgs=int*/ [3];
+ g = /*@returnType=List<int>*/ () => l;
+ assert(/*@promotedType=() -> List<int>*/ g is List<Object> Function());
+ assert(/*@promotedType=() -> List<int>*/ g is List<int> Function());
+ try {
+ /*@promotedType=() -> List<int>*/ g()
+ . /*@target=List.add*/ add("hello"); // runtime error
+ throw 'expected a runtime error';
+ } on TypeError {}
+ Object o = l;
+ g = /*@returnType=List<int>*/ () =>
+ o; // No implicit downcast on the assignment, implicit downcast on the return
+ assert(/*@promotedType=() -> List<int>*/ g is List<Object> Function());
+ assert(/*@promotedType=() -> List<int>*/ g is! List<int> Function());
+ assert(/*@promotedType=() -> List<int>*/ g is! Object Function());
+ /*@promotedType=() -> List<int>*/ g(); // No runtime error;
+ o = 3;
+ try {
+ /*@promotedType=() -> List<int>*/ g(); // Failed runtime cast on the return type of f
+ throw 'expected a runtime error';
+ } on TypeError {}
+}
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug31436_2.dart.textual_outline.expect
new file mode 100644
index 0000000..02f9a75
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+void block_test(List<Object> Function() g) {}
+void arrow_test(List<Object> Function() g) {}
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug31436_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..39882b6
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+void arrow_test(List<Object> Function() g) {}
+void block_test(List<Object> Function() g) {}
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart.weak.expect b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.expect
new file mode 100644
index 0000000..6b22891
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.expect
@@ -0,0 +1,103 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:23:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// . /*@target=List.add*/ add("hello"); // runtime error
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:28:12: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'List' is from 'dart:core'.
+// return o;
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:52:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// . /*@target=List.add*/ add("hello"); // runtime error
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:57:7: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'List' is from 'dart:core'.
+// o; // No implicit downcast on the assignment, implicit downcast on the return
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method block_test(() → core::List<core::Object> g) → void {
+ g = () → core::List<core::Object> {
+ return <core::Object>[3];
+ };
+ assert(g is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g is{ForNonNullableByDefault} () → core::List<core::int>));
+ g(){() → core::List<core::Object>}.{core::List::add}("hello"){(core::Object) → void};
+ core::List<core::int> l = <core::int>[3];
+ g = () → core::List<core::int> {
+ return l;
+ };
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>);
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>}.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:23:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ . /*@target=List.add*/ add(\"hello\"); // runtime error
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:28:12: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'List' is from 'dart:core'.
+ return o;
+ ^" in o as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ };
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>));
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::Object));
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ o = 3;
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method arrow_test(() → core::List<core::Object> g) → void {
+ g = () → core::List<core::Object> => <core::Object>[3];
+ assert(g is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g is{ForNonNullableByDefault} () → core::List<core::int>));
+ g(){() → core::List<core::Object>}.{core::List::add}("hello"){(core::Object) → void};
+ core::List<core::int> l = <core::int>[3];
+ g = () → core::List<core::int> => l;
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>);
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>}.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:52:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ . /*@target=List.add*/ add(\"hello\"); // runtime error
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::int> => invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:57:7: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'List' is from 'dart:core'.
+ o; // No implicit downcast on the assignment, implicit downcast on the return
+ ^" in o as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>));
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::Object));
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ o = 3;
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.modular.expect
new file mode 100644
index 0000000..6b22891
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.modular.expect
@@ -0,0 +1,103 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:23:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// . /*@target=List.add*/ add("hello"); // runtime error
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:28:12: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'List' is from 'dart:core'.
+// return o;
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:52:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// . /*@target=List.add*/ add("hello"); // runtime error
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:57:7: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'List' is from 'dart:core'.
+// o; // No implicit downcast on the assignment, implicit downcast on the return
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method block_test(() → core::List<core::Object> g) → void {
+ g = () → core::List<core::Object> {
+ return <core::Object>[3];
+ };
+ assert(g is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g is{ForNonNullableByDefault} () → core::List<core::int>));
+ g(){() → core::List<core::Object>}.{core::List::add}("hello"){(core::Object) → void};
+ core::List<core::int> l = <core::int>[3];
+ g = () → core::List<core::int> {
+ return l;
+ };
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>);
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>}.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:23:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ . /*@target=List.add*/ add(\"hello\"); // runtime error
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:28:12: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'List' is from 'dart:core'.
+ return o;
+ ^" in o as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ };
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>));
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::Object));
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ o = 3;
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method arrow_test(() → core::List<core::Object> g) → void {
+ g = () → core::List<core::Object> => <core::Object>[3];
+ assert(g is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g is{ForNonNullableByDefault} () → core::List<core::int>));
+ g(){() → core::List<core::Object>}.{core::List::add}("hello"){(core::Object) → void};
+ core::List<core::int> l = <core::int>[3];
+ g = () → core::List<core::int> => l;
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>);
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>}.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:52:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ . /*@target=List.add*/ add(\"hello\"); // runtime error
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::int> => invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:57:7: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'List' is from 'dart:core'.
+ o; // No implicit downcast on the assignment, implicit downcast on the return
+ ^" in o as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>));
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::Object));
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ o = 3;
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.outline.expect
new file mode 100644
index 0000000..571b2d1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.outline.expect
@@ -0,0 +1,8 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method block_test(() → core::List<core::Object> g) → void
+ ;
+static method arrow_test(() → core::List<core::Object> g) → void
+ ;
diff --git a/pkg/front_end/testcases/inference/bug31436_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..c58c51d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug31436_2.dart.weak.transformed.expect
@@ -0,0 +1,103 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:23:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// . /*@target=List.add*/ add("hello"); // runtime error
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:28:12: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'List' is from 'dart:core'.
+// return o;
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:52:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// . /*@target=List.add*/ add("hello"); // runtime error
+// ^
+//
+// pkg/front_end/testcases/inference/bug31436_2.dart:57:7: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'List' is from 'dart:core'.
+// o; // No implicit downcast on the assignment, implicit downcast on the return
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method block_test(() → core::List<core::Object> g) → void {
+ g = () → core::List<core::Object> {
+ return core::_GrowableList::_literal1<core::Object>(3);
+ };
+ assert(g is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g is{ForNonNullableByDefault} () → core::List<core::int>));
+ g(){() → core::List<core::Object>}.{core::List::add}("hello"){(core::Object) → void};
+ core::List<core::int> l = core::_GrowableList::_literal1<core::int>(3);
+ g = () → core::List<core::int> {
+ return l;
+ };
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>);
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>}.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:23:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ . /*@target=List.add*/ add(\"hello\"); // runtime error
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:28:12: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'List' is from 'dart:core'.
+ return o;
+ ^" in o as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ };
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>));
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::Object));
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ o = 3;
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
+static method arrow_test(() → core::List<core::Object> g) → void {
+ g = () → core::List<core::Object> => core::_GrowableList::_literal1<core::Object>(3);
+ assert(g is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g is{ForNonNullableByDefault} () → core::List<core::int>));
+ g(){() → core::List<core::Object>}.{core::List::add}("hello"){(core::Object) → void};
+ core::List<core::int> l = core::_GrowableList::_literal1<core::int>(3);
+ g = () → core::List<core::int> => l;
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>);
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>}.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:52:36: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ . /*@target=List.add*/ add(\"hello\"); // runtime error
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+ core::Object o = l;
+ g = () → core::List<core::int> => invalid-expression "pkg/front_end/testcases/inference/bug31436_2.dart:57:7: Error: A value of type 'Object' can't be returned from a function with return type 'List<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'List' is from 'dart:core'.
+ o; // No implicit downcast on the assignment, implicit downcast on the return
+ ^" in o as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ assert(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::Object>);
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::List<core::int>));
+ assert(!(g{() → core::List<core::int>} is{ForNonNullableByDefault} () → core::Object));
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ o = 3;
+ try {
+ g{() → core::List<core::int>}(){() → core::List<core::int>};
+ throw "expected a runtime error";
+ }
+ on core::TypeError catch(no-exception-var) {
+ }
+}
diff --git a/pkg/front_end/testcases/inference/bug32291.dart b/pkg/front_end/testcases/inference/bug32291.dart
index 782a12c..8ac764e 100644
--- a/pkg/front_end/testcases/inference/bug32291.dart
+++ b/pkg/front_end/testcases/inference/bug32291.dart
@@ -1,21 +1,23 @@
// Copyright (c) 2018, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void main() {
- var /*@ type=List<List<String*>*>* */ l = /*@ typeArgs=List<String*>* */ [
- /*@ typeArgs=String* */ ["hi", "world"]
+ var /*@type=List<List<String*>*>**/ l = /*@typeArgs=List<String*>**/ [
+ /*@typeArgs=String**/ ["hi", "world"]
];
- var /*@ type=Iterable<List<String*>*>* */ i1 =
- l. /*@target=Iterable.map*/ /*@ typeArgs=List<String*>* */ map(
- /*@ returnType=List<String*>* */ (/*@ type=List<String*>* */ ll) =>
- ll ?? /*@ typeArgs=String* */ []);
- var /*@ type=Iterable<int*>* */ i2 =
- i1. /*@target=Iterable.map*/ /*@ typeArgs=int* */ map(
- /*@ returnType=int* */ (List<String> l) =>
+ var /*@type=Iterable<List<String*>*>**/ i1 =
+ l. /*@target=Iterable.map*/ /*@typeArgs=List<String*>**/ map(
+ /*@returnType=List<String*>**/ (/*@type=List<String*>**/ ll) =>
+ ll ?? /*@typeArgs=String**/ []);
+ var /*@type=Iterable<int*>**/ i2 =
+ i1. /*@target=Iterable.map*/ /*@typeArgs=int**/ map(
+ /*@returnType=int**/ (List<String> l) =>
l. /*@target=List.length*/ length);
print(i2);
}
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart b/pkg/front_end/testcases/inference/bug32291_2.dart
new file mode 100644
index 0000000..6a78241
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart
@@ -0,0 +1,22 @@
+// Copyright (c) 2018, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void main() {
+ var /*@type=List<List<String>?>*/ l = /*@typeArgs=List<String>?*/ [
+ /*@typeArgs=String*/ ["hi", "world"],
+ null,
+ ];
+ var /*@type=Iterable<List<String>>*/ i1 =
+ l. /*@target=Iterable.map*/ /*@typeArgs=List<String>*/ map(
+ /*@returnType=List<String>*/ (/*@type=List<String>?*/ ll) =>
+ ll ?? /*@typeArgs=String*/ []);
+ var /*@type=Iterable<int>*/ i2 =
+ i1. /*@target=Iterable.map*/ /*@typeArgs=int*/ map(
+ /*@returnType=int*/ (List<String> l) =>
+ l. /*@target=List.length*/ length);
+ print(i2);
+}
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/bug32291_2.dart.textual_outline.expect
new file mode 100644
index 0000000..c07c403
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart.textual_outline.expect
@@ -0,0 +1,3 @@
+library test;
+
+void main() {}
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/bug32291_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c07c403
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,3 @@
+library test;
+
+void main() {}
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart.weak.expect b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.expect
new file mode 100644
index 0000000..9a1081e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method main() → void {
+ core::List<core::List<core::String>?> l = <core::List<core::String>?>[<core::String>["hi", "world"], null];
+ core::Iterable<core::List<core::String>> i1 = l.{core::Iterable::map}<core::List<core::String>>((core::List<core::String>? ll) → core::List<core::String> => let final core::List<core::String>? #t1 = ll in #t1 == null ?{core::List<core::String>} <core::String>[] : #t1{core::List<core::String>}){((core::List<core::String>?) → core::List<core::String>) → core::Iterable<core::List<core::String>>};
+ core::Iterable<core::int> i2 = i1.{core::Iterable::map}<core::int>((core::List<core::String> l) → core::int => l.{core::List::length}{core::int}){((core::List<core::String>) → core::int) → core::Iterable<core::int>};
+ core::print(i2);
+}
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.modular.expect
new file mode 100644
index 0000000..9a1081e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.modular.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method main() → void {
+ core::List<core::List<core::String>?> l = <core::List<core::String>?>[<core::String>["hi", "world"], null];
+ core::Iterable<core::List<core::String>> i1 = l.{core::Iterable::map}<core::List<core::String>>((core::List<core::String>? ll) → core::List<core::String> => let final core::List<core::String>? #t1 = ll in #t1 == null ?{core::List<core::String>} <core::String>[] : #t1{core::List<core::String>}){((core::List<core::String>?) → core::List<core::String>) → core::Iterable<core::List<core::String>>};
+ core::Iterable<core::int> i2 = i1.{core::Iterable::map}<core::int>((core::List<core::String> l) → core::int => l.{core::List::length}{core::int}){((core::List<core::String>) → core::int) → core::Iterable<core::int>};
+ core::print(i2);
+}
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.outline.expect
new file mode 100644
index 0000000..27fd207
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.outline.expect
@@ -0,0 +1,5 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+static method main() → void
+ ;
diff --git a/pkg/front_end/testcases/inference/bug32291_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..8d76280
--- /dev/null
+++ b/pkg/front_end/testcases/inference/bug32291_2.dart.weak.transformed.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method main() → void {
+ core::List<core::List<core::String>?> l = core::_GrowableList::_literal2<core::List<core::String>?>(core::_GrowableList::_literal2<core::String>("hi", "world"), null);
+ core::Iterable<core::List<core::String>> i1 = l.{core::Iterable::map}<core::List<core::String>>((core::List<core::String>? ll) → core::List<core::String> => let final core::List<core::String>? #t1 = ll in #t1 == null ?{core::List<core::String>} core::_GrowableList::•<core::String>(0) : #t1{core::List<core::String>}){((core::List<core::String>?) → core::List<core::String>) → core::Iterable<core::List<core::String>>};
+ core::Iterable<core::int> i2 = i1.{core::Iterable::map}<core::int>((core::List<core::String> l) → core::int => l.{core::List::length}{core::int}){((core::List<core::String>) → core::int) → core::Iterable<core::int>};
+ core::print(i2);
+}
diff --git a/pkg/front_end/testcases/inference/bug33324.dart b/pkg/front_end/testcases/inference/bug33324.dart
index a41574e..a0523a4 100644
--- a/pkg/front_end/testcases/inference/bug33324.dart
+++ b/pkg/front_end/testcases/inference/bug33324.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2018, 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.
+
// @dart=2.9
+
// This test checks that the greatest closure uses 'dynamic' and not Object as
// the top type.
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart b/pkg/front_end/testcases/inference/call_corner_cases.dart
index f1136a5..bcc84ad 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -21,14 +21,14 @@
}
test() {
- var /*@ type=int* */ callA = new A() /*@target=A.call*/ ();
- var /*@ type=int* */ callFieldA =
+ var /*@type=int*/ callA = new A() /*@target=A.call*/ ();
+ var /*@type=int*/ callFieldA =
new D(). /*@target=D.fieldA*/ fieldA /*@target=A.call*/ ();
- var /*@ type=int* */ callGetA =
+ var /*@type=int*/ callGetA =
new D(). /*@target=D.getA*/ getA /*@target=A.call*/ ();
- var /*@type=int**/ callFieldB = new D()
+ var /*@type=int*/ callFieldB = new D()
. /*@target=D.fieldB*/ fieldB /*@target=B.call*/ /*@target=A.call*/ ();
- var /*@type=int**/ callGetB =
+ var /*@type=int*/ callGetB =
new D(). /*@target=D.getB*/ getB /*@target=B.call*/ /*@target=A.call*/ ();
}
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline.expect b/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline.expect
index 540b48e..48e6f56 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline_modelled.expect
index 55a3eed..73709ae 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.expect b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.expect
index bc9a2a22..3b4218b 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.expect
@@ -1,67 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method call() → core::int*
+ method call() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get call() → self::A*
+ get call() → self::A
return new self::A::•();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::A* fieldA = new self::A::•();
- field self::B* fieldB = new self::B::•();
- synthetic constructor •() → self::D*
+ field self::A fieldA = new self::A::•();
+ field self::B fieldB = new self::B::•();
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- get getA() → self::A*
+ get getA() → self::A
return new self::A::•();
- get getB() → self::B*
+ get getB() → self::B
return new self::B::•();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- core::int* callA = new self::A::•().{self::A::call}(){() →* core::int*};
- core::int* callFieldA = new self::D::•().{self::D::fieldA}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callGetA = new self::D::•().{self::D::getA}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callFieldB = new self::D::•().{self::D::fieldB}{self::B*}.{self::B::call}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callGetB = new self::D::•().{self::D::getB}{self::B*}.{self::B::call}{self::A*}.{self::A::call}(){() →* core::int*};
+ core::int callA = new self::A::•().{self::A::call}(){() → core::int};
+ core::int callFieldA = new self::D::•().{self::D::fieldA}{self::A}.{self::A::call}(){() → core::int};
+ core::int callGetA = new self::D::•().{self::D::getA}{self::A}.{self::A::call}(){() → core::int};
+ core::int callFieldB = new self::D::•().{self::D::fieldB}{self::B}.{self::B::call}{self::A}.{self::A::call}(){() → core::int};
+ core::int callGetB = new self::D::•().{self::D::getB}{self::B}.{self::B::call}{self::A}.{self::A::call}(){() → core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.modular.expect b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.modular.expect
index bc9a2a22..3b4218b 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.modular.expect
@@ -1,67 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method call() → core::int*
+ method call() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get call() → self::A*
+ get call() → self::A
return new self::A::•();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::A* fieldA = new self::A::•();
- field self::B* fieldB = new self::B::•();
- synthetic constructor •() → self::D*
+ field self::A fieldA = new self::A::•();
+ field self::B fieldB = new self::B::•();
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- get getA() → self::A*
+ get getA() → self::A
return new self::A::•();
- get getB() → self::B*
+ get getB() → self::B
return new self::B::•();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- core::int* callA = new self::A::•().{self::A::call}(){() →* core::int*};
- core::int* callFieldA = new self::D::•().{self::D::fieldA}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callGetA = new self::D::•().{self::D::getA}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callFieldB = new self::D::•().{self::D::fieldB}{self::B*}.{self::B::call}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callGetB = new self::D::•().{self::D::getB}{self::B*}.{self::B::call}{self::A*}.{self::A::call}(){() →* core::int*};
+ core::int callA = new self::A::•().{self::A::call}(){() → core::int};
+ core::int callFieldA = new self::D::•().{self::D::fieldA}{self::A}.{self::A::call}(){() → core::int};
+ core::int callGetA = new self::D::•().{self::D::getA}{self::A}.{self::A::call}(){() → core::int};
+ core::int callFieldB = new self::D::•().{self::D::fieldB}{self::B}.{self::B::call}{self::A}.{self::A::call}(){() → core::int};
+ core::int callGetB = new self::D::•().{self::D::getB}{self::B}.{self::B::call}{self::A}.{self::A::call}(){() → core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.outline.expect b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.outline.expect
index 99b9e51..e0fae9a 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.outline.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- method call() → core::int*
+ method call() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- get call() → self::A*
+ get call() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::A* fieldA;
- field self::B* fieldB;
- synthetic constructor •() → self::D*
+ field self::A fieldA;
+ field self::B fieldB;
+ synthetic constructor •() → self::D
;
- get getA() → self::A*
+ get getA() → self::A
;
- get getB() → self::B*
+ get getB() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.transformed.expect
index bc9a2a22..3b4218b 100644
--- a/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/call_corner_cases.dart.weak.transformed.expect
@@ -1,67 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method call() → core::int*
+ method call() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get call() → self::A*
+ get call() → self::A
return new self::A::•();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::A* fieldA = new self::A::•();
- field self::B* fieldB = new self::B::•();
- synthetic constructor •() → self::D*
+ field self::A fieldA = new self::A::•();
+ field self::B fieldB = new self::B::•();
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- get getA() → self::A*
+ get getA() → self::A
return new self::A::•();
- get getB() → self::B*
+ get getB() → self::B
return new self::B::•();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- core::int* callA = new self::A::•().{self::A::call}(){() →* core::int*};
- core::int* callFieldA = new self::D::•().{self::D::fieldA}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callGetA = new self::D::•().{self::D::getA}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callFieldB = new self::D::•().{self::D::fieldB}{self::B*}.{self::B::call}{self::A*}.{self::A::call}(){() →* core::int*};
- core::int* callGetB = new self::D::•().{self::D::getB}{self::B*}.{self::B::call}{self::A*}.{self::A::call}(){() →* core::int*};
+ core::int callA = new self::A::•().{self::A::call}(){() → core::int};
+ core::int callFieldA = new self::D::•().{self::D::fieldA}{self::A}.{self::A::call}(){() → core::int};
+ core::int callGetA = new self::D::•().{self::D::getA}{self::A}.{self::A::call}(){() → core::int};
+ core::int callFieldB = new self::D::•().{self::D::fieldB}{self::B}.{self::B::call}{self::A}.{self::A::call}(){() → core::int};
+ core::int callGetB = new self::D::•().{self::D::getB}{self::B}.{self::B::call}{self::A}.{self::A::call}(){() → core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart b/pkg/front_end/testcases/inference/callable_generic_class.dart
index b6bc427..0c9a27c 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class ActionDispatcher<P> {
- void call([P value]) {}
+ void call([P? value]) {}
}
class Bar {}
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline.expect b/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline.expect
index fcb2b47..404e3fc 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class ActionDispatcher<P> {
- void call([P value]) {}
+ void call([P? value]) {}
}
class Bar {}
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline_modelled.expect
index fcb2b47..404e3fc 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class ActionDispatcher<P> {
- void call([P value]) {}
+ void call([P? value]) {}
}
class Bar {}
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.expect b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.expect
index 36688cc..ffdd149 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.expect
@@ -1,59 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class ActionDispatcher<P extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P*>*
+class ActionDispatcher<P extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P%>
: super core::Object::•()
;
- method call([covariant-by-class self::ActionDispatcher::P* value = #C1]) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method call([covariant-by-class self::ActionDispatcher::P? value = #C1]) → void {}
}
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class FooActions extends core::Object {
- synthetic constructor •() → self::FooActions*
+ synthetic constructor •() → self::FooActions
: super core::Object::•()
;
- get foo() → self::ActionDispatcher<self::Bar*>*
- return new self::ActionDispatcher::•<self::Bar*>();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get foo() → self::ActionDispatcher<self::Bar>
+ return new self::ActionDispatcher::•<self::Bar>();
}
static method main() → void {
- let final self::FooActions* #t1 = new self::FooActions::•() in let final self::Bar* #t2 = new self::Bar::•() in #t1.{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(#t2){([self::Bar*]) →* void};
- new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar*]) →* void};
- new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar*]) →* void};
+ let final self::FooActions #t1 = new self::FooActions::•() in let final self::Bar #t2 = new self::Bar::•() in #t1.{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(#t2){([self::Bar?]) → void};
+ new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar?]) → void};
+ new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar?]) → void};
}
constants {
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.modular.expect b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.modular.expect
index 36688cc..ffdd149 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.modular.expect
@@ -1,59 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class ActionDispatcher<P extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P*>*
+class ActionDispatcher<P extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P%>
: super core::Object::•()
;
- method call([covariant-by-class self::ActionDispatcher::P* value = #C1]) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method call([covariant-by-class self::ActionDispatcher::P? value = #C1]) → void {}
}
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class FooActions extends core::Object {
- synthetic constructor •() → self::FooActions*
+ synthetic constructor •() → self::FooActions
: super core::Object::•()
;
- get foo() → self::ActionDispatcher<self::Bar*>*
- return new self::ActionDispatcher::•<self::Bar*>();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get foo() → self::ActionDispatcher<self::Bar>
+ return new self::ActionDispatcher::•<self::Bar>();
}
static method main() → void {
- let final self::FooActions* #t1 = new self::FooActions::•() in let final self::Bar* #t2 = new self::Bar::•() in #t1.{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(#t2){([self::Bar*]) →* void};
- new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar*]) →* void};
- new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar*]) →* void};
+ let final self::FooActions #t1 = new self::FooActions::•() in let final self::Bar #t2 = new self::Bar::•() in #t1.{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(#t2){([self::Bar?]) → void};
+ new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar?]) → void};
+ new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar?]) → void};
}
constants {
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.outline.expect b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.outline.expect
index 0e0f2e4..dfed9be 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.outline.expect
@@ -1,52 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class ActionDispatcher<P extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P*>*
+class ActionDispatcher<P extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P%>
;
- method call([covariant-by-class self::ActionDispatcher::P* value = null]) → void
+ method call([covariant-by-class self::ActionDispatcher::P? value = null]) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class FooActions extends core::Object {
- synthetic constructor •() → self::FooActions*
+ synthetic constructor •() → self::FooActions
;
- get foo() → self::ActionDispatcher<self::Bar*>*
+ get foo() → self::ActionDispatcher<self::Bar>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.transformed.expect
index 36688cc..ffdd149 100644
--- a/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/callable_generic_class.dart.weak.transformed.expect
@@ -1,59 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class ActionDispatcher<P extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P*>*
+class ActionDispatcher<P extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::ActionDispatcher<self::ActionDispatcher::P%>
: super core::Object::•()
;
- method call([covariant-by-class self::ActionDispatcher::P* value = #C1]) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method call([covariant-by-class self::ActionDispatcher::P? value = #C1]) → void {}
}
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class FooActions extends core::Object {
- synthetic constructor •() → self::FooActions*
+ synthetic constructor •() → self::FooActions
: super core::Object::•()
;
- get foo() → self::ActionDispatcher<self::Bar*>*
- return new self::ActionDispatcher::•<self::Bar*>();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get foo() → self::ActionDispatcher<self::Bar>
+ return new self::ActionDispatcher::•<self::Bar>();
}
static method main() → void {
- let final self::FooActions* #t1 = new self::FooActions::•() in let final self::Bar* #t2 = new self::Bar::•() in #t1.{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(#t2){([self::Bar*]) →* void};
- new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar*]) →* void};
- new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar*>*}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar*]) →* void};
+ let final self::FooActions #t1 = new self::FooActions::•() in let final self::Bar #t2 = new self::Bar::•() in #t1.{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(#t2){([self::Bar?]) → void};
+ new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar?]) → void};
+ new self::FooActions::•().{self::FooActions::foo}{self::ActionDispatcher<self::Bar>}.{self::ActionDispatcher::call}(new self::Bar::•()){([self::Bar?]) → void};
}
constants {
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart b/pkg/front_end/testcases/inference/circular_method_inference.dart
index 4c2d890..73ac166 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline.expect
index 248729d..10f2489 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A extends B {
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline_modelled.expect
index 248729d..10f2489 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A extends B {
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.expect b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.expect
index 1bacd22..38a3b4f 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,35 +14,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.modular.expect
index 1bacd22..38a3b4f 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,35 +14,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.outline.expect
index 2de0dd6..2cb48cd 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,34 +14,14 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.transformed.expect
index 1bacd22..38a3b4f 100644
--- a/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/circular_method_inference.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,35 +14,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
abstract method f(dynamic x) → dynamic;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart
index ef12128..f89da09 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-var x = /*@ returnType=() ->* invalid-type */ () => y;
+var x = /*@returnType=() -> invalid-type*/ () => y;
var y = /*@ returnType=invalid-type */ () => x;
main() {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline.expect
index 3abb754..34a8c28 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = () => y;
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline_modelled.expect
index 220c601..1be8547 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.expect
index 189aa8d..0565fbb 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
-static field invalid-type x = () → () →* invalid-type => self::y;
-static field () →* invalid-type y = () → invalid-type => self::x;
+static field invalid-type x = () → () → invalid-type => self::y;
+static field () → invalid-type y = () → invalid-type => self::x;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.modular.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.modular.expect
index 189aa8d..0565fbb 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
-static field invalid-type x = () → () →* invalid-type => self::y;
-static field () →* invalid-type y = () → invalid-type => self::x;
+static field invalid-type x = () → () → invalid-type => self::y;
+static field () → invalid-type y = () → invalid-type => self::x;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.outline.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.outline.expect
index 97b8e80..e25ff08 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.outline.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
static field invalid-type x;
-static field () →* invalid-type y;
+static field () → invalid-type y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.transformed.expect
index 189aa8d..0565fbb 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
-static field invalid-type x = () → () →* invalid-type => self::y;
-static field () →* invalid-type y = () → invalid-type => self::x;
+static field invalid-type x = () → () → invalid-type => self::y;
+static field () → invalid-type y = () → invalid-type => self::x;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart
index ef12128..f89da09 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-var x = /*@ returnType=() ->* invalid-type */ () => y;
+var x = /*@returnType=() -> invalid-type*/ () => y;
var y = /*@ returnType=invalid-type */ () => x;
main() {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline.expect
index 3abb754..34a8c28 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = () => y;
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline_modelled.expect
index 220c601..1be8547 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.expect
index 2439199..9aa0028 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
-static field invalid-type x = () → () →* invalid-type => self::y;
-static field () →* invalid-type y = () → invalid-type => self::x;
+static field invalid-type x = () → () → invalid-type => self::y;
+static field () → invalid-type y = () → invalid-type => self::x;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.modular.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.modular.expect
index 2439199..9aa0028 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
-static field invalid-type x = () → () →* invalid-type => self::y;
-static field () →* invalid-type y = () → invalid-type => self::x;
+static field invalid-type x = () → () → invalid-type => self::y;
+static field () → invalid-type y = () → invalid-type => self::x;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.outline.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.outline.expect
index 947182a0..6178fe4 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.outline.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
static field invalid-type x;
-static field () →* invalid-type y;
+static field () → invalid-type y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.transformed.expect
index 2439199..9aa0028 100644
--- a/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/circular_reference_via_closures_initializer_types.dart:8:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => y;
+// var x = /*@returnType=() -> invalid-type*/ () => y;
// ^
//
import self as self;
-static field invalid-type x = () → () →* invalid-type => self::y;
-static field () →* invalid-type y = () → invalid-type => self::x;
+static field invalid-type x = () → () → invalid-type => self::y;
+static field () → invalid-type y = () → invalid-type => self::x;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
index 1aa3fa5..59ed3f1 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test() {
- int Function(Null) f = /*@ returnType=int* */ (/*@ type=Object* */ x) => 1;
+ int Function(Null) f = /*@returnType=int*/ (/*@type=Object?*/ x) => 1;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.expect
index 1937cae..283cd45 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- (Null) →* core::int* f = (core::Object* x) → core::int* => 1;
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.modular.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.modular.expect
index 1937cae..283cd45 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- (Null) →* core::int* f = (core::Object* x) → core::int* => 1;
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.outline.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.transformed.expect
index 1937cae..283cd45 100644
--- a/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/closure_param_null_to_object.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- (Null) →* core::int* f = (core::Object* x) → core::int* => 1;
+ (Null) → core::int f = (core::Object? x) → core::int => 1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
index cfd02c8..2c89221 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart
@@ -1,25 +1,25 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
f() {
- var /*@ type=int* */ a = 0;
+ var /*@type=int*/ a = 0;
var /*@ type=dynamic */ b = null;
- var /*@ type=dynamic */ c = throw 'foo';
- var /*@ type=() ->* int* */ d = /*@ returnType=int* */ () => 0;
- var /*@ type=() ->* Null */ e = /*@ returnType=Null */ () => null;
- var /*@ type=() ->* Null */ f = /*@ returnType=Null */ () =>
+ var /*@type=Never*/ c = throw 'foo';
+ var /*@type=() -> int*/ d = /*@returnType=int*/ () => 0;
+ var /*@type=() -> Null*/ e = /*@ returnType=Null */ () => null;
+ var /*@type=() -> Never*/ f = /*@returnType=Never*/ () =>
throw 'foo';
- var /*@ type=() ->* int* */ g = /*@ returnType=int* */ () {
+ var /*@type=() -> int*/ g = /*@returnType=int*/ () {
return 0;
};
- var /*@ type=() ->* Null */ h = /*@ returnType=Null */ () {
+ var /*@type=() -> Null*/ h = /*@ returnType=Null */ () {
return null;
};
- var /*@ type=() ->* Null */ i = /*@ returnType=Null */ () {
+ var /*@type=() -> Never*/ i = /*@returnType=Never*/ () {
return (throw 'foo');
};
}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline.expect
index 54d3052..f59c3c4 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
f() {}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline_modelled.expect
index 54d3052..f59c3c4 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
f() {}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.expect
index 55c9d7f..435f8e6 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.expect
@@ -1,21 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method f() → dynamic {
- core::int* a = 0;
+ core::int a = 0;
has-declared-initializer dynamic b = null;
- dynamic c = throw "foo";
- () →* core::int* d = () → core::int* => 0;
- () →* Null e = () → Null => null;
- () →* Null f = () → Null => throw "foo";
- () →* core::int* g = () → core::int* {
+ Never c = throw "foo";
+ () → core::int d = () → core::int => 0;
+ () → Null e = () → Null => null;
+ () → Never f = () → Never => throw "foo";
+ () → core::int g = () → core::int {
return 0;
};
- () →* Null h = () → Null {
+ () → Null h = () → Null {
return null;
};
- () →* Null i = () → Null {
+ () → Never i = () → Never {
return throw "foo";
};
}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.modular.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.modular.expect
index 55c9d7f..435f8e6 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.modular.expect
@@ -1,21 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method f() → dynamic {
- core::int* a = 0;
+ core::int a = 0;
has-declared-initializer dynamic b = null;
- dynamic c = throw "foo";
- () →* core::int* d = () → core::int* => 0;
- () →* Null e = () → Null => null;
- () →* Null f = () → Null => throw "foo";
- () →* core::int* g = () → core::int* {
+ Never c = throw "foo";
+ () → core::int d = () → core::int => 0;
+ () → Null e = () → Null => null;
+ () → Never f = () → Never => throw "foo";
+ () → core::int g = () → core::int {
return 0;
};
- () →* Null h = () → Null {
+ () → Null h = () → Null {
return null;
};
- () →* Null i = () → Null {
+ () → Never i = () → Never {
return throw "foo";
};
}
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.outline.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.outline.expect
index b08cbd0..b31e2f6 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method f() → dynamic
diff --git a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.transformed.expect
index 55c9d7f..435f8e6 100644
--- a/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/coerce_bottom_and_null_types.dart.weak.transformed.expect
@@ -1,21 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method f() → dynamic {
- core::int* a = 0;
+ core::int a = 0;
has-declared-initializer dynamic b = null;
- dynamic c = throw "foo";
- () →* core::int* d = () → core::int* => 0;
- () →* Null e = () → Null => null;
- () →* Null f = () → Null => throw "foo";
- () →* core::int* g = () → core::int* {
+ Never c = throw "foo";
+ () → core::int d = () → core::int => 0;
+ () → Null e = () → Null => null;
+ () → Never f = () → Never => throw "foo";
+ () → core::int g = () → core::int {
return 0;
};
- () →* Null h = () → Null {
+ () → Null h = () → Null {
return null;
};
- () →* Null i = () → Null {
+ () → Never i = () → Never {
return throw "foo";
};
}
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart b/pkg/front_end/testcases/inference/complex_predecrement.dart
index 541cf50..5452cb9 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=List<int*>* */ foo = /*@ typeArgs=int* */ [1, 2, 3];
+ var /*@type=List<int>*/ foo = /*@typeArgs=int*/ [1, 2, 3];
print(/*@target=num.-*/ --foo /*@target=List.[]*/ /*@target=List.[]=*/ [0]);
}
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.expect
index a27510a..a8362c0 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* foo = <core::int*>[1, 2, 3];
- core::print(let final core::List<core::int*>* #t1 = foo in let final core::int* #t2 = 0 in let final core::int* #t3 = #t1.{core::List::[]}(#t2){(core::int*) →* core::int*}.{core::num::-}(1){(core::num*) →* core::int*} in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, core::int*) →* void} in #t3);
+ core::List<core::int> foo = <core::int>[1, 2, 3];
+ core::print(let final core::List<core::int> #t1 = foo in let final core::int #t2 = 0 in let final core::int #t3 = #t1.{core::List::[]}(#t2){(core::int) → core::int}.{core::num::-}(1){(core::num) → core::int} in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, core::int) → void} in #t3);
}
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.modular.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.modular.expect
index a27510a..a8362c0 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* foo = <core::int*>[1, 2, 3];
- core::print(let final core::List<core::int*>* #t1 = foo in let final core::int* #t2 = 0 in let final core::int* #t3 = #t1.{core::List::[]}(#t2){(core::int*) →* core::int*}.{core::num::-}(1){(core::num*) →* core::int*} in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, core::int*) →* void} in #t3);
+ core::List<core::int> foo = <core::int>[1, 2, 3];
+ core::print(let final core::List<core::int> #t1 = foo in let final core::int #t2 = 0 in let final core::int #t3 = #t1.{core::List::[]}(#t2){(core::int) → core::int}.{core::num::-}(1){(core::num) → core::int} in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, core::int) → void} in #t3);
}
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.outline.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.transformed.expect
index a3e1f12..c3920e8 100644
--- a/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/complex_predecrement.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* foo = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
- core::print(let final core::List<core::int*>* #t1 = foo in let final core::int* #t2 = 0 in let final core::int* #t3 = #t1.{core::List::[]}(#t2){(core::int*) →* core::int*}.{core::num::-}(1){(core::num*) →* core::int*} in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, core::int*) →* void} in #t3);
+ core::List<core::int> foo = core::_GrowableList::_literal3<core::int>(1, 2, 3);
+ core::print(let final core::List<core::int> #t1 = foo in let final core::int #t2 = 0 in let final core::int #t3 = #t1.{core::List::[]}(#t2){(core::int) → core::int}.{core::num::-}(1){(core::num) → core::int} in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, core::int) → void} in #t3);
}
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart b/pkg/front_end/testcases/inference/conditional_lub.dart
index 4e89e32..a6b43a6 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,5 +11,5 @@
var z = b ? x : y;
main() {
- var /*@ type=num* */ z = b ? x : y;
+ var /*@type=num*/ z = b ? x : y;
}
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline.expect
index 040fb14..8dcdc49 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
bool b = true;
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline_modelled.expect
index e2e1230..2c98a8f 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
bool b = true;
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.expect
index 0d65f10..c3af9f6 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* b = true;
-static field core::int* x = 0;
-static field core::double* y = 0.0;
-static field core::num* z = self::b ?{core::num*} self::x : self::y;
+static field core::bool b = true;
+static field core::int x = 0;
+static field core::double y = 0.0;
+static field core::num z = self::b ?{core::num} self::x : self::y;
static method main() → dynamic {
- core::num* z = self::b ?{core::num*} self::x : self::y;
+ core::num z = self::b ?{core::num} self::x : self::y;
}
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.modular.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.modular.expect
index 0d65f10..c3af9f6 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* b = true;
-static field core::int* x = 0;
-static field core::double* y = 0.0;
-static field core::num* z = self::b ?{core::num*} self::x : self::y;
+static field core::bool b = true;
+static field core::int x = 0;
+static field core::double y = 0.0;
+static field core::num z = self::b ?{core::num} self::x : self::y;
static method main() → dynamic {
- core::num* z = self::b ?{core::num*} self::x : self::y;
+ core::num z = self::b ?{core::num} self::x : self::y;
}
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.outline.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.outline.expect
index a57d812..ee57c15 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* b;
-static field core::int* x;
-static field core::double* y;
-static field core::num* z;
+static field core::bool b;
+static field core::int x;
+static field core::double y;
+static field core::num z;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.transformed.expect
index 0d65f10..c3af9f6 100644
--- a/pkg/front_end/testcases/inference/conditional_lub.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/conditional_lub.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* b = true;
-static field core::int* x = 0;
-static field core::double* y = 0.0;
-static field core::num* z = self::b ?{core::num*} self::x : self::y;
+static field core::bool b = true;
+static field core::int x = 0;
+static field core::double y = 0.0;
+static field core::num z = self::b ?{core::num} self::x : self::y;
static method main() → dynamic {
- core::num* z = self::b ?{core::num*} self::x : self::y;
+ core::num z = self::b ?{core::num} self::x : self::y;
}
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart
index 3502e34..f31287b 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,9 +11,9 @@
main() {
bool b = false;
- List<int> l1 = /*@ typeArgs=int* */ [1];
- List<int> l2 = /*@ typeArgs=int* */ [2];
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(l1);
- var /*@ type=C<int*>* */ y = new /*@ typeArgs=int* */ C(l2);
- var /*@ type=C<int*>* */ z = new /*@ typeArgs=int* */ C(b ? l1 : l2);
+ List<int> l1 = /*@typeArgs=int*/ [1];
+ List<int> l2 = /*@typeArgs=int*/ [2];
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(l1);
+ var /*@type=C<int>*/ y = new /*@typeArgs=int*/ C(l2);
+ var /*@type=C<int>*/ z = new /*@typeArgs=int*/ C(b ? l1 : l2);
}
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline.expect
index 2cf47d4..65185f2 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline_modelled.expect
index 2cf47d4..65185f2 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.expect
index c929f40..ba3159a 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::bool* b = false;
- core::List<core::int*>* l1 = <core::int*>[1];
- core::List<core::int*>* l2 = <core::int*>[2];
- self::C<core::int*>* x = new self::C::•<core::int*>(l1);
- self::C<core::int*>* y = new self::C::•<core::int*>(l2);
- self::C<core::int*>* z = new self::C::•<core::int*>(b ?{core::List<core::int*>*} l1 : l2);
+ core::bool b = false;
+ core::List<core::int> l1 = <core::int>[1];
+ core::List<core::int> l2 = <core::int>[2];
+ self::C<core::int> x = new self::C::•<core::int>(l1);
+ self::C<core::int> y = new self::C::•<core::int>(l2);
+ self::C<core::int> z = new self::C::•<core::int>(b ?{core::List<core::int>} l1 : l2);
}
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.modular.expect
index c929f40..ba3159a 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::bool* b = false;
- core::List<core::int*>* l1 = <core::int*>[1];
- core::List<core::int*>* l2 = <core::int*>[2];
- self::C<core::int*>* x = new self::C::•<core::int*>(l1);
- self::C<core::int*>* y = new self::C::•<core::int*>(l2);
- self::C<core::int*>* z = new self::C::•<core::int*>(b ?{core::List<core::int*>*} l1 : l2);
+ core::bool b = false;
+ core::List<core::int> l1 = <core::int>[1];
+ core::List<core::int> l2 = <core::int>[2];
+ self::C<core::int> x = new self::C::•<core::int>(l1);
+ self::C<core::int> y = new self::C::•<core::int>(l2);
+ self::C<core::int> z = new self::C::•<core::int>(b ?{core::List<core::int>} l1 : l2);
}
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.outline.expect
index 7597901..3be73ad 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> x) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.transformed.expect
index a0810b4..bd18d67 100644
--- a/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/conditional_upwards_inference.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::bool* b = false;
- core::List<core::int*>* l1 = core::_GrowableList::_literal1<core::int*>(1);
- core::List<core::int*>* l2 = core::_GrowableList::_literal1<core::int*>(2);
- self::C<core::int*>* x = new self::C::•<core::int*>(l1);
- self::C<core::int*>* y = new self::C::•<core::int*>(l2);
- self::C<core::int*>* z = new self::C::•<core::int*>(b ?{core::List<core::int*>*} l1 : l2);
+ core::bool b = false;
+ core::List<core::int> l1 = core::_GrowableList::_literal1<core::int>(1);
+ core::List<core::int> l2 = core::_GrowableList::_literal1<core::int>(2);
+ self::C<core::int> x = new self::C::•<core::int>(l1);
+ self::C<core::int> y = new self::C::•<core::int>(l2);
+ self::C<core::int> z = new self::C::•<core::int>(b ?{core::List<core::int>} l1 : l2);
}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart b/pkg/front_end/testcases/inference/conflicting_fields.dart
index 8aa0ffd..b26f836 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2019, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
class A {
dynamic field1;
- int field2;
+ int? field2;
}
class I {
- int field1;
+ int? field1;
dynamic field2;
}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline.expect
index 612dc70..a4fb5e6 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
class A {
dynamic field1;
- int field2;
+ int? field2;
}
class I {
- int field1;
+ int? field1;
dynamic field2;
}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline_modelled.expect
index 5953483..d8747e6 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
class A {
dynamic field1;
- int field2;
+ int? field2;
}
class B extends A implements I {
@@ -13,7 +12,7 @@
class I {
dynamic field2;
- int field1;
+ int? field1;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.expect
index 24a2f0c..8bb5c6e 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.expect
@@ -1,48 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic field1 = null;
- field core::int* field2 = null;
- synthetic constructor •() → self::A*
+ field core::int? field2 = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I extends core::Object {
- field core::int* field1 = null;
+ field core::int? field1 = null;
field dynamic field2 = null;
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- get field1() → core::int*
+ get field1() → core::int?
return null;
- get field2() → core::int*
+ get field2() → core::int?
return null;
set field1(dynamic value) → void {}
set field2(dynamic value) → void {}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.modular.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.modular.expect
index 24a2f0c..8bb5c6e 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.modular.expect
@@ -1,48 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic field1 = null;
- field core::int* field2 = null;
- synthetic constructor •() → self::A*
+ field core::int? field2 = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I extends core::Object {
- field core::int* field1 = null;
+ field core::int? field1 = null;
field dynamic field2 = null;
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- get field1() → core::int*
+ get field1() → core::int?
return null;
- get field2() → core::int*
+ get field2() → core::int?
return null;
set field1(dynamic value) → void {}
set field2(dynamic value) → void {}
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.outline.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.outline.expect
index 4fa520d..061368a 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.outline.expect
@@ -1,45 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic field1;
- field core::int* field2;
- synthetic constructor •() → self::A*
+ field core::int? field2;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I extends core::Object {
- field core::int* field1;
+ field core::int? field1;
field dynamic field2;
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- get field1() → core::int*
+ get field1() → core::int?
;
- get field2() → core::int*
+ get field2() → core::int?
;
set field1(dynamic value) → void
;
diff --git a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.transformed.expect
index 24a2f0c..8bb5c6e 100644
--- a/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/conflicting_fields.dart.weak.transformed.expect
@@ -1,48 +1,28 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic field1 = null;
- field core::int* field2 = null;
- synthetic constructor •() → self::A*
+ field core::int? field2 = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I extends core::Object {
- field core::int* field1 = null;
+ field core::int? field1 = null;
field dynamic field2 = null;
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- get field1() → core::int*
+ get field1() → core::int?
return null;
- get field2() → core::int*
+ get field2() → core::int?
return null;
set field1(dynamic value) → void {}
set field2(dynamic value) → void {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart b/pkg/front_end/testcases/inference/conflicts_can_happen.dart
index 9cff49b..4d8b95e 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart
@@ -1,33 +1,33 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class I1 {
- int x;
+ int x = 0;
}
class I2 extends I1 {
- int y;
+ int y = 0;
}
class A {
- final I1 a = null;
+ final I1 a = throw '';
}
class B {
- final I2 a = null;
+ final I2 a = throw '';
}
class C1 implements A, B {
- get a => null;
+ get a => throw '';
}
// Still ambiguous
class C2 implements B, A {
- get a => null;
+ get a => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline.expect
index 61de1e5..d521e4f 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline.expect
@@ -1,28 +1,27 @@
-// @dart = 2.9
library test;
class I1 {
- int x;
+ int x = 0;
}
class I2 extends I1 {
- int y;
+ int y = 0;
}
class A {
- final I1 a = null;
+ final I1 a = throw '';
}
class B {
- final I2 a = null;
+ final I2 a = throw '';
}
class C1 implements A, B {
- get a => null;
+ get a => throw '';
}
class C2 implements B, A {
- get a => null;
+ get a => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline_modelled.expect
index 042f496..85098d3 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.textual_outline_modelled.expect
@@ -1,28 +1,27 @@
-// @dart = 2.9
library test;
class A {
- final I1 a = null;
+ final I1 a = throw '';
}
class B {
- final I2 a = null;
+ final I2 a = throw '';
}
class C1 implements A, B {
- get a => null;
+ get a => throw '';
}
class C2 implements B, A {
- get a => null;
+ get a => throw '';
}
class I1 {
- int x;
+ int x = 0;
}
class I2 extends I1 {
- int y;
+ int y = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.expect
index edd05fe..7d8ad6a 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.expect
@@ -1,93 +1,43 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::I1*
+ field core::int x = 0;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends self::I1 {
- field core::int* y = null;
- synthetic constructor •() → self::I2*
+ field core::int y = 0;
+ synthetic constructor •() → self::I2
: super self::I1::•()
;
}
class A extends core::Object {
- final field self::I1* a = null;
- synthetic constructor •() → self::A*
+ final field self::I1 a = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a = null;
- synthetic constructor •() → self::B*
+ final field self::I2 a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
: super core::Object::•()
;
- get a() → self::I2*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I2
+ return throw "";
}
class C2 extends core::Object implements self::B, self::A {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
: super core::Object::•()
;
- get a() → self::I2*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I2
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.modular.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.modular.expect
index edd05fe..7d8ad6a 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.modular.expect
@@ -1,93 +1,43 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::I1*
+ field core::int x = 0;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends self::I1 {
- field core::int* y = null;
- synthetic constructor •() → self::I2*
+ field core::int y = 0;
+ synthetic constructor •() → self::I2
: super self::I1::•()
;
}
class A extends core::Object {
- final field self::I1* a = null;
- synthetic constructor •() → self::A*
+ final field self::I1 a = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a = null;
- synthetic constructor •() → self::B*
+ final field self::I2 a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
: super core::Object::•()
;
- get a() → self::I2*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I2
+ return throw "";
}
class C2 extends core::Object implements self::B, self::A {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
: super core::Object::•()
;
- get a() → self::I2*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I2
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.outline.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.outline.expect
index 904fd97..b525429 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.outline.expect
@@ -1,88 +1,38 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::I1*
+ field core::int x;
+ synthetic constructor •() → self::I1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends self::I1 {
- field core::int* y;
- synthetic constructor •() → self::I2*
+ field core::int y;
+ synthetic constructor •() → self::I2
;
}
class A extends core::Object {
- final field self::I1* a;
- synthetic constructor •() → self::A*
+ final field self::I1 a;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a;
- synthetic constructor •() → self::B*
+ final field self::I2 a;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
;
- get a() → self::I2*
+ get a() → self::I2
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C2 extends core::Object implements self::B, self::A {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
;
- get a() → self::I2*
+ get a() → self::I2
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.transformed.expect
index edd05fe..7d8ad6a 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen.dart.weak.transformed.expect
@@ -1,93 +1,43 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::I1*
+ field core::int x = 0;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends self::I1 {
- field core::int* y = null;
- synthetic constructor •() → self::I2*
+ field core::int y = 0;
+ synthetic constructor •() → self::I2
: super self::I1::•()
;
}
class A extends core::Object {
- final field self::I1* a = null;
- synthetic constructor •() → self::A*
+ final field self::I1 a = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a = null;
- synthetic constructor •() → self::B*
+ final field self::I2 a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
: super core::Object::•()
;
- get a() → self::I2*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I2
+ return throw "";
}
class C2 extends core::Object implements self::B, self::A {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
: super core::Object::•()
;
- get a() → self::I2*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I2
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart
index 6ff6859..5b0d48a 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart
@@ -1,37 +1,37 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class I1 {
- int x;
+ int x = 0;
}
class I2 {
- int y;
+ int y = 0;
}
class I3 implements I1, I2 {
- int x;
- int y;
+ int x = 0;
+ int y = 0;
}
class A {
- final I1 a = null;
+ final I1 a = throw '';
}
class B {
- final I2 a = null;
+ final I2 a = throw '';
}
class C1 implements A, B {
- I3 get a => null;
+ I3 get a => throw '';
}
class C2 implements A, B {
- get a => null;
+ get a => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline.expect
index 479d804..f30c906 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline.expect
@@ -1,33 +1,32 @@
-// @dart = 2.9
library test;
class I1 {
- int x;
+ int x = 0;
}
class I2 {
- int y;
+ int y = 0;
}
class I3 implements I1, I2 {
- int x;
- int y;
+ int x = 0;
+ int y = 0;
}
class A {
- final I1 a = null;
+ final I1 a = throw '';
}
class B {
- final I2 a = null;
+ final I2 a = throw '';
}
class C1 implements A, B {
- I3 get a => null;
+ I3 get a => throw '';
}
class C2 implements A, B {
- get a => null;
+ get a => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline_modelled.expect
index 5fe5310..8311ec9 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.textual_outline_modelled.expect
@@ -1,33 +1,32 @@
-// @dart = 2.9
library test;
class A {
- final I1 a = null;
+ final I1 a = throw '';
}
class B {
- final I2 a = null;
+ final I2 a = throw '';
}
class C1 implements A, B {
- I3 get a => null;
+ I3 get a => throw '';
}
class C2 implements A, B {
- get a => null;
+ get a => throw '';
}
class I1 {
- int x;
+ int x = 0;
}
class I2 {
- int y;
+ int y = 0;
}
class I3 implements I1, I2 {
- int x;
- int y;
+ int x = 0;
+ int y = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.expect
index f8a6f85..77e67b6 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.expect
@@ -1,134 +1,64 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as the overridden members don't have a combined signature.
// Try adding an explicit type.
-// get a => null;
+// get a => throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:22:12: Context: This is one of the overridden members.
-// final I1 a = null;
+// final I1 a = throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:26:12: Context: This is one of the overridden members.
-// final I2 a = null;
+// final I2 a = throw '';
// ^
//
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::I1*
+ field core::int x = 0;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends core::Object {
- field core::int* y = null;
- synthetic constructor •() → self::I2*
+ field core::int y = 0;
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I3 extends core::Object implements self::I1, self::I2 {
- field core::int* x = null;
- field core::int* y = null;
- synthetic constructor •() → self::I3*
+ field core::int x = 0;
+ field core::int y = 0;
+ synthetic constructor •() → self::I3
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- final field self::I1* a = null;
- synthetic constructor •() → self::A*
+ final field self::I1 a = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a = null;
- synthetic constructor •() → self::B*
+ final field self::I2 a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
: super core::Object::•()
;
- get a() → self::I3*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I3
+ return throw "";
}
class C2 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
: super core::Object::•()
;
get a() → invalid-type
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.modular.expect
index f8a6f85..77e67b6 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.modular.expect
@@ -1,134 +1,64 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as the overridden members don't have a combined signature.
// Try adding an explicit type.
-// get a => null;
+// get a => throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:22:12: Context: This is one of the overridden members.
-// final I1 a = null;
+// final I1 a = throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:26:12: Context: This is one of the overridden members.
-// final I2 a = null;
+// final I2 a = throw '';
// ^
//
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::I1*
+ field core::int x = 0;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends core::Object {
- field core::int* y = null;
- synthetic constructor •() → self::I2*
+ field core::int y = 0;
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I3 extends core::Object implements self::I1, self::I2 {
- field core::int* x = null;
- field core::int* y = null;
- synthetic constructor •() → self::I3*
+ field core::int x = 0;
+ field core::int y = 0;
+ synthetic constructor •() → self::I3
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- final field self::I1* a = null;
- synthetic constructor •() → self::A*
+ final field self::I1 a = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a = null;
- synthetic constructor •() → self::B*
+ final field self::I2 a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
: super core::Object::•()
;
- get a() → self::I3*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I3
+ return throw "";
}
class C2 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
: super core::Object::•()
;
get a() → invalid-type
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.outline.expect
index 19f0100..24991ea 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.outline.expect
@@ -1,128 +1,58 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as the overridden members don't have a combined signature.
// Try adding an explicit type.
-// get a => null;
+// get a => throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:22:12: Context: This is one of the overridden members.
-// final I1 a = null;
+// final I1 a = throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:26:12: Context: This is one of the overridden members.
-// final I2 a = null;
+// final I2 a = throw '';
// ^
//
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::I1*
+ field core::int x;
+ synthetic constructor •() → self::I1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends core::Object {
- field core::int* y;
- synthetic constructor •() → self::I2*
+ field core::int y;
+ synthetic constructor •() → self::I2
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I3 extends core::Object implements self::I1, self::I2 {
- field core::int* x;
- field core::int* y;
- synthetic constructor •() → self::I3*
+ field core::int x;
+ field core::int y;
+ synthetic constructor •() → self::I3
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- final field self::I1* a;
- synthetic constructor •() → self::A*
+ final field self::I1 a;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a;
- synthetic constructor •() → self::B*
+ final field self::I2 a;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
;
- get a() → self::I3*
+ get a() → self::I3
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C2 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
;
get a() → invalid-type
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.transformed.expect
index f8a6f85..77e67b6 100644
--- a/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/conflicts_can_happen2.dart.weak.transformed.expect
@@ -1,134 +1,64 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:34:7: Error: Can't infer a return type for 'a' as the overridden members don't have a combined signature.
// Try adding an explicit type.
-// get a => null;
+// get a => throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:22:12: Context: This is one of the overridden members.
-// final I1 a = null;
+// final I1 a = throw '';
// ^
// pkg/front_end/testcases/inference/conflicts_can_happen2.dart:26:12: Context: This is one of the overridden members.
-// final I2 a = null;
+// final I2 a = throw '';
// ^
//
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::I1*
+ field core::int x = 0;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I2 extends core::Object {
- field core::int* y = null;
- synthetic constructor •() → self::I2*
+ field core::int y = 0;
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class I3 extends core::Object implements self::I1, self::I2 {
- field core::int* x = null;
- field core::int* y = null;
- synthetic constructor •() → self::I3*
+ field core::int x = 0;
+ field core::int y = 0;
+ synthetic constructor •() → self::I3
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- final field self::I1* a = null;
- synthetic constructor •() → self::A*
+ final field self::I1 a = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- final field self::I2* a = null;
- synthetic constructor •() → self::B*
+ final field self::I2 a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C1 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C1*
+ synthetic constructor •() → self::C1
: super core::Object::•()
;
- get a() → self::I3*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get a() → self::I3
+ return throw "";
}
class C2 extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C2*
+ synthetic constructor •() → self::C2
: super core::Object::•()
;
get a() → invalid-type
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart
index f5ab537..a2fdcfc 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,5 +12,5 @@
class Foo<T extends A> {}
void main() {
- Foo<B> foo = new /*@ typeArgs=B* */ Foo();
+ Foo<B> foo = new /*@typeArgs=B*/ Foo();
}
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline.expect
index d0e5e69..3317fee 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {}
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline_modelled.expect
index d0e5e69..3317fee 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {}
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect
index 7a1c1c0..c59de4a 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-class Foo<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::Foo<self::B*>* foo = new self::Foo::•<self::B*>();
+ self::Foo<self::B> foo = new self::Foo::•<self::B>();
}
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.modular.expect
index 7a1c1c0..c59de4a 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.modular.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-class Foo<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::Foo<self::B*>* foo = new self::Foo::•<self::B*>();
+ self::Foo<self::B> foo = new self::Foo::•<self::B>();
}
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect
index 3f5622c..fc7299c 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
-class Foo<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect
index 7a1c1c0..c59de4a 100644
--- a/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_downwards_with_constraint.dart.weak.transformed.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-class Foo<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::Foo<self::B*>* foo = new self::Foo::•<self::B*>();
+ self::Foo<self::B> foo = new self::Foo::•<self::B>();
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart
index de8faf4..d64cd7d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,18 +13,18 @@
}
test() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(42);
+ var /*@type=C<int*>**/ x = new /*@typeArgs=int**/ C(42);
num y;
- C<int> c_int = new /*@ typeArgs=int* */ C(
+ C<int> c_int = new /*@typeArgs=int**/ C(
/*info:DOWN_CAST_IMPLICIT*/ y);
// These hints are not reported because we resolve with a null error listener.
- C<num> c_num = new /*@ typeArgs=num* */ C(123);
- C<num> c_num2 = (new /*@ typeArgs=num* */ C(456)).. /*@target=C.t*/ t = 1.0;
+ C<num> c_num = new /*@typeArgs=num**/ C(123);
+ C<num> c_num2 = (new /*@typeArgs=num**/ C(456)).. /*@target=C.t*/ t = 1.0;
// Don't infer from explicit dynamic.
- var /*@ type=C<dynamic>* */ c_dynamic = new C<dynamic>(42);
+ var /*@type=C<dynamic>**/ c_dynamic = new C<dynamic>(42);
x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.expect
index 1797fc0..6b104ea 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:26:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:28:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
// ^
//
@@ -34,7 +34,7 @@
#t1.{self::C::t} = 1.0;
} =>#t1;
self::C<dynamic>* c_dynamic = new self::C::•<dynamic>(42);
- x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:26:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:28:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
^" in "hello" as{TypeError} core::int*;
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.modular.expect
index 1797fc0..6b104ea 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.modular.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:26:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:28:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
// ^
//
@@ -34,7 +34,7 @@
#t1.{self::C::t} = 1.0;
} =>#t1;
self::C<dynamic>* c_dynamic = new self::C::•<dynamic>(42);
- x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:26:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:28:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
^" in "hello" as{TypeError} core::int*;
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.transformed.expect
index 1797fc0..6b104ea 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:26:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:28:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
// ^
//
@@ -34,7 +34,7 @@
#t1.{self::C::t} = 1.0;
} =>#t1;
self::C<dynamic>* c_dynamic = new self::C::•<dynamic>(42);
- x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:26:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments.dart:28:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
^" in "hello" as{TypeError} core::int*;
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart
new file mode 100644
index 0000000..54da6da
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart
@@ -0,0 +1,27 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class C<T> {
+ T t;
+ C(this.t);
+}
+
+test(num y) {
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(42);
+
+ C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+
+ // These hints are not reported because we resolve with a null error listener.
+ C<num> c_num = new /*@typeArgs=num*/ C(123);
+ C<num> c_num2 = (new /*@typeArgs=num*/ C(456)).. /*@target=C.t*/ t = 1.0;
+
+ // Don't infer from explicit dynamic.
+ var /*@type=C<dynamic>*/ c_dynamic = new C<dynamic>(42);
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.textual_outline.expect
new file mode 100644
index 0000000..49b5d23
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+library test;
+
+class C<T> {
+ T t;
+ C(this.t);
+}
+
+test(num y) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..968dbe1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+library test;
+
+class C<T> {
+ C(this.t);
+ T t;
+}
+
+main() {}
+test(num y) {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.expect
new file mode 100644
index 0000000..ef07c38
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:16:70: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+// C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+// ^
+//
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:24:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
+ : self::C::t = t, super core::Object::•()
+ ;
+}
+static method test(core::num y) → dynamic {
+ self::C<core::int> x = new self::C::•<core::int>(42);
+ self::C<core::int> c_int = new self::C::•<core::int>(invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:16:70: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+ C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int);
+ self::C<core::num> c_num = new self::C::•<core::num>(123);
+ self::C<core::num> c_num2 = let final self::C<core::num> #t1 = new self::C::•<core::num>(456) in block {
+ #t1.{self::C::t} = 1.0;
+ } =>#t1;
+ self::C<dynamic> c_dynamic = new self::C::•<dynamic>(42);
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:24:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.modular.expect
new file mode 100644
index 0000000..ef07c38
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.modular.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:16:70: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+// C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+// ^
+//
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:24:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
+ : self::C::t = t, super core::Object::•()
+ ;
+}
+static method test(core::num y) → dynamic {
+ self::C<core::int> x = new self::C::•<core::int>(42);
+ self::C<core::int> c_int = new self::C::•<core::int>(invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:16:70: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+ C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int);
+ self::C<core::num> c_num = new self::C::•<core::num>(123);
+ self::C<core::num> c_num2 = let final self::C<core::num> #t1 = new self::C::•<core::num>(456) in block {
+ #t1.{self::C::t} = 1.0;
+ } =>#t1;
+ self::C<dynamic> c_dynamic = new self::C::•<dynamic>(42);
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:24:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.outline.expect
new file mode 100644
index 0000000..356ef17
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.outline.expect
@@ -0,0 +1,13 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
+ ;
+}
+static method test(core::num y) → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ef07c38
--- /dev/null
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart.weak.transformed.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:16:70: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+// C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+// ^
+//
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:24:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
+ : self::C::t = t, super core::Object::•()
+ ;
+}
+static method test(core::num y) → dynamic {
+ self::C<core::int> x = new self::C::•<core::int>(42);
+ self::C<core::int> c_int = new self::C::•<core::int>(invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:16:70: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+ C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int);
+ self::C<core::num> c_num = new self::C::•<core::num>(123);
+ self::C<core::num> c_num2 = let final self::C<core::num> #t1 = new self::C::•<core::num>(456) in block {
+ #t1.{self::C::t} = 1.0;
+ } =>#t1;
+ self::C<dynamic> c_dynamic = new self::C::•<dynamic>(42);
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments2.dart:24:55: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart
index 44b6475..5b49250 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,9 +15,9 @@
class NotA {}
-NotA myF() => null;
+NotA myF() => throw '';
-main() {
- var /*@ type=C<NotA*>* */ x =
- new /*error:COULD_NOT_INFER*/ /*@ typeArgs=NotA* */ C(myF);
+test() {
+ var /*@type=C<NotA>*/ x =
+ new /*error:COULD_NOT_INFER*/ /*@typeArgs=NotA*/ C(myF);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline.expect
index fba7458..ffc529d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {}
@@ -11,5 +10,5 @@
class NotA {}
-NotA myF() => null;
-main() {}
+NotA myF() => throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline_modelled.expect
index 3ea62c0..2220411 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-NotA myF() => null;
+NotA myF() => throw '';
class A {}
@@ -11,5 +10,5 @@
class NotA {}
-main() {}
+test() {}
typedef T F<T>();
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect
index cdeaa48..6c16b75 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart:22:59: Error: Inferred type argument 'NotA' doesn't conform to the bound 'A' of the type variable 'T' on 'C'.
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart:22:56: Error: Inferred type argument 'NotA' doesn't conform to the bound 'A' of the type variable 'T' on 'C'.
// - 'NotA' is from 'pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart'.
// - 'A' is from 'pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER*/ /*@ typeArgs=NotA* */ C(myF);
-// ^
+// new /*error:COULD_NOT_INFER*/ /*@typeArgs=NotA*/ C(myF);
+// ^
// pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart:12:9: Context: This is the type variable whose bound isn't conformed to.
// class C<T extends A> {
// ^
@@ -15,56 +15,26 @@
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
+typedef F<T extends core::Object? = dynamic> = () → T%;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends self::A*> extends core::Object {
- constructor •(() →* self::C::T* f) → self::C<self::C::T*>*
+class C<T extends self::A> extends core::Object {
+ constructor •(() → self::C::T f) → self::C<self::C::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class NotA extends core::Object {
- synthetic constructor •() → self::NotA*
+ synthetic constructor •() → self::NotA
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method myF() → self::NotA*
- return null;
-static method main() → dynamic {
- self::C<self::NotA*>* x = new self::C::•<self::NotA*>(#C1);
+static method myF() → self::NotA
+ return throw "";
+static method test() → dynamic {
+ self::C<self::NotA> x = new self::C::•<self::NotA>(#C1);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.modular.expect
index cdeaa48..6c16b75 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart:22:59: Error: Inferred type argument 'NotA' doesn't conform to the bound 'A' of the type variable 'T' on 'C'.
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart:22:56: Error: Inferred type argument 'NotA' doesn't conform to the bound 'A' of the type variable 'T' on 'C'.
// - 'NotA' is from 'pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart'.
// - 'A' is from 'pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER*/ /*@ typeArgs=NotA* */ C(myF);
-// ^
+// new /*error:COULD_NOT_INFER*/ /*@typeArgs=NotA*/ C(myF);
+// ^
// pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart:12:9: Context: This is the type variable whose bound isn't conformed to.
// class C<T extends A> {
// ^
@@ -15,56 +15,26 @@
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
+typedef F<T extends core::Object? = dynamic> = () → T%;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends self::A*> extends core::Object {
- constructor •(() →* self::C::T* f) → self::C<self::C::T*>*
+class C<T extends self::A> extends core::Object {
+ constructor •(() → self::C::T f) → self::C<self::C::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class NotA extends core::Object {
- synthetic constructor •() → self::NotA*
+ synthetic constructor •() → self::NotA
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method myF() → self::NotA*
- return null;
-static method main() → dynamic {
- self::C<self::NotA*>* x = new self::C::•<self::NotA*>(#C1);
+static method myF() → self::NotA
+ return throw "";
+static method test() → dynamic {
+ self::C<self::NotA> x = new self::C::•<self::NotA>(#C1);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect
index 9a32b9b..611f557 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_argument_not_assignable.dart.weak.outline.expect
@@ -1,51 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
+typedef F<T extends core::Object? = dynamic> = () → T%;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<T extends self::A*> extends core::Object {
- constructor •(() →* self::C::T* f) → self::C<self::C::T*>*
+class C<T extends self::A> extends core::Object {
+ constructor •(() → self::C::T f) → self::C<self::C::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class NotA extends core::Object {
- synthetic constructor •() → self::NotA*
+ synthetic constructor •() → self::NotA
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method myF() → self::NotA*
+static method myF() → self::NotA
;
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart
index e6e973c..873d63e 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,5 +11,5 @@
}
main() {
- var /*@ type=C<int*>* */ x = const /*@ typeArgs=int* */ C(42);
+ var /*@type=C<int>*/ x = const /*@typeArgs=int*/ C(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline.expect
index e0d78b7..a3c6d99 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline_modelled.expect
index 860ec7c..5d6c509 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.expect
index 5cf994f..1d13d5d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* t;
- const constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T% t;
+ const constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = #C2;
+ self::C<core::int> x = #C2;
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.modular.expect
index 5cf994f..1d13d5d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* t;
- const constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T% t;
+ const constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = #C2;
+ self::C<core::int> x = #C2;
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.outline.expect
index e1b38bd..601c5d1 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* t;
- const constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T% t;
+ const constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.transformed.expect
index 5cf994f..1d13d5d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* t;
- const constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T% t;
+ const constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = #C2;
+ self::C<core::int> x = #C2;
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart
index e40dbdd..ca876a5 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,7 +15,7 @@
}
void main() {
- const /*@ type=C<int*>* */ c = const /*@ typeArgs=int* */ C(0);
+ const /*@type=C<int>*/ c = const /*@typeArgs=int*/ C(0);
C<int> c2 = c;
- const D<int> d = const /*@ typeArgs=int* */ D();
+ const D<int> d = const /*@typeArgs=int*/ D();
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline.expect
index 901fea0..228e705 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T extends num> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline_modelled.expect
index 81054ee..df658a6 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T extends num> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect
index c79ff6d..6b607e5 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* x;
- const constructor •(self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T x;
+ const constructor •(self::C::T x) → self::C<self::C::T>
: self::C::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::D<self::D::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::C<core::int*>* c2 = #C2;
+ self::C<core::int> c2 = #C2;
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.modular.expect
index c79ff6d..6b607e5 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* x;
- const constructor •(self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T x;
+ const constructor •(self::C::T x) → self::C<self::C::T>
: self::C::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::D<self::D::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::C<core::int*>* c2 = #C2;
+ self::C<core::int> c2 = #C2;
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect
index 0b30da0d..6bdc87c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* x;
- const constructor •(self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T x;
+ const constructor •(self::C::T x) → self::C<self::C::T>
: self::C::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::D<self::D::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect
index c79ff6d..6b607e5 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_const_with_upper_bound.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- final field self::C::T* x;
- const constructor •(self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ final field self::C::T x;
+ const constructor •(self::C::T x) → self::C<self::C::T>
: self::C::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::num*> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::D<self::D::T*>*
+class D<T extends core::num> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::D<self::D::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::C<core::int*>* c2 = #C2;
+ self::C<core::int> c2 = #C2;
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart
index 80b1454..df712d2 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,11 +10,11 @@
}
main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(/*@ typeArgs=int* */ [123]);
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(/*@typeArgs=int*/ [123]);
C<int> y = x;
- var /*@ type=C<dynamic>* */ a = new C<dynamic>(/*@ typeArgs=dynamic */ [123]);
+ var /*@type=C<dynamic>*/ a = new C<dynamic>(/*@ typeArgs=dynamic */ [123]);
// This one however works.
- var /*@ type=C<Object*>* */ b = new C<Object>(/*@ typeArgs=Object* */ [123]);
+ var /*@type=C<Object>*/ b = new C<Object>(/*@typeArgs=Object*/ [123]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline.expect
index ca0af4f..af80416 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline_modelled.expect
index ca0af4f..af80416 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.expect
index 760a01e..33cea17 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* list) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> list) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::•<core::int*>(<core::int*>[123]);
- self::C<core::int*>* y = x;
- self::C<dynamic>* a = new self::C::•<dynamic>(<dynamic>[123]);
- self::C<core::Object*>* b = new self::C::•<core::Object*>(<core::Object*>[123]);
+ self::C<core::int> x = new self::C::•<core::int>(<core::int>[123]);
+ self::C<core::int> y = x;
+ self::C<dynamic> a = new self::C::•<dynamic>(<dynamic>[123]);
+ self::C<core::Object> b = new self::C::•<core::Object>(<core::Object>[123]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.modular.expect
index 760a01e..33cea17 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* list) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> list) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::•<core::int*>(<core::int*>[123]);
- self::C<core::int*>* y = x;
- self::C<dynamic>* a = new self::C::•<dynamic>(<dynamic>[123]);
- self::C<core::Object*>* b = new self::C::•<core::Object*>(<core::Object*>[123]);
+ self::C<core::int> x = new self::C::•<core::int>(<core::int>[123]);
+ self::C<core::int> y = x;
+ self::C<dynamic> a = new self::C::•<dynamic>(<dynamic>[123]);
+ self::C<core::Object> b = new self::C::•<core::Object>(<core::Object>[123]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.outline.expect
index 80c12d2..17babf4 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* list) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> list) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.transformed.expect
index 48ed791..4449734 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_downwards_from_constructor.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::C::T*>* list) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::C::T%> list) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::•<core::int*>(core::_GrowableList::_literal1<core::int*>(123));
- self::C<core::int*>* y = x;
- self::C<dynamic>* a = new self::C::•<dynamic>(core::_GrowableList::_literal1<dynamic>(123));
- self::C<core::Object*>* b = new self::C::•<core::Object*>(core::_GrowableList::_literal1<core::Object*>(123));
+ self::C<core::int> x = new self::C::•<core::int>(core::_GrowableList::_literal1<core::int>(123));
+ self::C<core::int> y = x;
+ self::C<dynamic> a = new self::C::•<dynamic>(core::_GrowableList::_literal1<dynamic>(123));
+ self::C<core::Object> b = new self::C::•<core::Object>(core::_GrowableList::_literal1<core::Object>(123));
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart
index c90e241..3971b9c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart
@@ -1,25 +1,25 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> {
- T t;
+ T? t;
C._();
factory C(T t) {
- var /*@ type=C<C::•::T*>* */ x = new C<T>._();
- t = t;
+ var /*@type=C<C::•::T%>*/ x = new C<T>._();
+ x. /*@target=C.t*/ t = t;
return x;
}
}
test() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(42);
- t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(42);
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline.expect
index 8a2b0f1..90f02bb 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C<T> {
- T t;
+ T? t;
C._();
factory C(T t) {}
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline_modelled.expect
index ea74ff0..c4ff4f4 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C<T> {
C._();
- T t;
+ T? t;
factory C(T t) {}
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.expect
index 32c7a0d..1c335e1 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.expect
@@ -1,39 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:3: Error: Setter not found: 't'.
-// t = /*error:INVALID_ASSIGNMENT*/ 'hello';
-// ^
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:55: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+// ^
//
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor _() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t = null;
+ constructor _() → self::C<self::C::T%>
: super core::Object::•()
;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>* {
- self::C<self::C::•::T*>* x = new self::C::_<self::C::•::T*>();
- t = t;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%> {
+ self::C<self::C::•::T%> x = new self::C::_<self::C::•::T%>();
+ x.{self::C::t} = t;
return x;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- self::C<core::int*>* x = self::C::•<core::int*>(42);
- invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:3: Error: Setter not found: 't'.
- t = /*error:INVALID_ASSIGNMENT*/ 'hello';
- ^";
+ self::C<core::int> x = self::C::•<core::int>(42);
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:55: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.modular.expect
index 32c7a0d..1c335e1 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.modular.expect
@@ -1,39 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:3: Error: Setter not found: 't'.
-// t = /*error:INVALID_ASSIGNMENT*/ 'hello';
-// ^
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:55: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+// ^
//
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor _() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t = null;
+ constructor _() → self::C<self::C::T%>
: super core::Object::•()
;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>* {
- self::C<self::C::•::T*>* x = new self::C::_<self::C::•::T*>();
- t = t;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%> {
+ self::C<self::C::•::T%> x = new self::C::_<self::C::•::T%>();
+ x.{self::C::t} = t;
return x;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- self::C<core::int*>* x = self::C::•<core::int*>(42);
- invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:3: Error: Setter not found: 't'.
- t = /*error:INVALID_ASSIGNMENT*/ 'hello';
- ^";
+ self::C<core::int> x = self::C::•<core::int>(42);
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:55: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.outline.expect
index 6553bf2..875bfab 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor _() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t;
+ constructor _() → self::C<self::C::T%>
;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.transformed.expect
index 32c7a0d..1c335e1 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart.weak.transformed.expect
@@ -1,39 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:3: Error: Setter not found: 't'.
-// t = /*error:INVALID_ASSIGNMENT*/ 'hello';
-// ^
+// pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:55: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+// x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+// ^
//
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor _() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t = null;
+ constructor _() → self::C<self::C::T%>
: super core::Object::•()
;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>* {
- self::C<self::C::•::T*>* x = new self::C::_<self::C::•::T*>();
- t = t;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%> {
+ self::C<self::C::•::T%> x = new self::C::_<self::C::•::T%>();
+ x.{self::C::t} = t;
return x;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- self::C<core::int*>* x = self::C::•<core::int*>(42);
- invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:3: Error: Setter not found: 't'.
- t = /*error:INVALID_ASSIGNMENT*/ 'hello';
- ^";
+ self::C<core::int> x = self::C::•<core::int>(42);
+ x.{self::C::t} = invalid-expression "pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory.dart:22:55: Error: A value of type 'String' can't be assigned to a variable of type 'int?'.
+ x. /*@target=C.t*/ t = /*error:INVALID_ASSIGNMENT*/ 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart
index 1e23664..e2954a9 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A<T> {
- A<T> f = new /*@ typeArgs=A::T* */ A();
+ A<T> f = new /*@typeArgs=A::T%*/ A();
A();
- factory A.factory() => new /*@ typeArgs=A::factory::T* */ A();
- A<T> m() => new /*@ typeArgs=A::T* */ A();
+ factory A.factory() => new /*@typeArgs=A::factory::T%*/ A();
+ A<T> m() => new /*@typeArgs=A::T%*/ A();
}
main() {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline.expect
index 717b03c..e3c1708 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline_modelled.expect
index 0cfefa2..2f3f4f5 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.expect
index ba0e34d..e3935c7 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A<self::A::T*>* f = new self::A::•<self::A::T*>();
- constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A<self::A::T%> f = new self::A::•<self::A::T%>();
+ constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- static factory factory<T extends core::Object* = dynamic>() → self::A<self::A::factory::T*>*
- return new self::A::•<self::A::factory::T*>();
- method m() → self::A<self::A::T*>*
- return new self::A::•<self::A::T*>();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static factory factory<T extends core::Object? = dynamic>() → self::A<self::A::factory::T%>
+ return new self::A::•<self::A::factory::T%>();
+ method m() → self::A<self::A::T%>
+ return new self::A::•<self::A::T%>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.modular.expect
index ba0e34d..e3935c7 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A<self::A::T*>* f = new self::A::•<self::A::T*>();
- constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A<self::A::T%> f = new self::A::•<self::A::T%>();
+ constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- static factory factory<T extends core::Object* = dynamic>() → self::A<self::A::factory::T*>*
- return new self::A::•<self::A::factory::T*>();
- method m() → self::A<self::A::T*>*
- return new self::A::•<self::A::T*>();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static factory factory<T extends core::Object? = dynamic>() → self::A<self::A::factory::T%>
+ return new self::A::•<self::A::factory::T%>();
+ method m() → self::A<self::A::T%>
+ return new self::A::•<self::A::T%>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.outline.expect
index 72615ce..27d253d 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A<self::A::T*>* f;
- constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A<self::A::T%> f;
+ constructor •() → self::A<self::A::T%>
;
- static factory factory<T extends core::Object* = dynamic>() → self::A<self::A::factory::T*>*
+ static factory factory<T extends core::Object? = dynamic>() → self::A<self::A::factory::T%>
;
- method m() → self::A<self::A::T*>*
+ method m() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.transformed.expect
index ba0e34d..e3935c7 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_factory_calls_constructor.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A<self::A::T*>* f = new self::A::•<self::A::T*>();
- constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A<self::A::T%> f = new self::A::•<self::A::T%>();
+ constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- static factory factory<T extends core::Object* = dynamic>() → self::A<self::A::factory::T*>*
- return new self::A::•<self::A::factory::T*>();
- method m() → self::A<self::A::T*>*
- return new self::A::•<self::A::T*>();
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static factory factory<T extends core::Object? = dynamic>() → self::A<self::A::factory::T%>
+ return new self::A::•<self::A::factory::T%>();
+ method m() → self::A<self::A::T%>
+ return new self::A::•<self::A::T%>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart
index 2ad9bf8..e7e4dba 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart
@@ -1,15 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> {
- T t;
C.named(List<T> t);
}
main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C.named(<int>[]);
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C.named(<int>[]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline.expect
index 0d236fee..fb42f63 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline.expect
@@ -1,8 +1,6 @@
-// @dart = 2.9
library test;
class C<T> {
- T t;
C.named(List<T> t);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline_modelled.expect
index ba064ef..fb42f63 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.textual_outline_modelled.expect
@@ -1,9 +1,7 @@
-// @dart = 2.9
library test;
class C<T> {
C.named(List<T> t);
- T t;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.expect
index adf0647..a4bb3ba 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.expect
@@ -1,23 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::named<core::int*>(<core::int*>[]);
+ self::C<core::int> x = new self::C::named<core::int>(<core::int>[]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.modular.expect
index adf0647..a4bb3ba 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.modular.expect
@@ -1,23 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::named<core::int*>(<core::int*>[]);
+ self::C<core::int> x = new self::C::named<core::int>(<core::int>[]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.outline.expect
index 20b7987..a9b6283 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.outline.expect
@@ -1,21 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.transformed.expect
index dda1a71..6f0a3c9 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named.dart.weak.transformed.expect
@@ -1,23 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::named<core::int*>(core::_GrowableList::•<core::int*>(0));
+ self::C<core::int> x = new self::C::named<core::int>(core::_GrowableList::•<core::int>(0));
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart
index cfa49e8..d4c86f5 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart
@@ -1,21 +1,21 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> {
- T t;
+ T? t;
C();
factory C.named(T t) {
- var /*@ type=C<C::named::T*>* */ x = new C<T>();
+ var /*@type=C<C::named::T%>*/ x = new C<T>();
x. /*@target=C.t*/ t = t;
return x;
}
}
main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C.named(42);
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C.named(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline.expect
index 4894a2a..c01c3cc 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C<T> {
- T t;
+ T? t;
C();
factory C.named(T t) {}
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline_modelled.expect
index 5230dc3..ae1caeb 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C<T> {
C();
- T t;
+ T? t;
factory C.named(T t) {}
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.expect
index c030443..0706981 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t = null;
+ constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static factory named<T extends core::Object* = dynamic>(self::C::named::T* t) → self::C<self::C::named::T*>* {
- self::C<self::C::named::T*>* x = new self::C::•<self::C::named::T*>();
+ static factory named<T extends core::Object? = dynamic>(self::C::named::T% t) → self::C<self::C::named::T%> {
+ self::C<self::C::named::T%> x = new self::C::•<self::C::named::T%>();
x.{self::C::t} = t;
return x;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = self::C::named<core::int*>(42);
+ self::C<core::int> x = self::C::named<core::int>(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.modular.expect
index c030443..0706981 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t = null;
+ constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static factory named<T extends core::Object* = dynamic>(self::C::named::T* t) → self::C<self::C::named::T*>* {
- self::C<self::C::named::T*>* x = new self::C::•<self::C::named::T*>();
+ static factory named<T extends core::Object? = dynamic>(self::C::named::T% t) → self::C<self::C::named::T%> {
+ self::C<self::C::named::T%> x = new self::C::•<self::C::named::T%>();
x.{self::C::t} = t;
return x;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = self::C::named<core::int*>(42);
+ self::C<core::int> x = self::C::named<core::int>(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.outline.expect
index 42a6d2b..7f16f7c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t;
+ constructor •() → self::C<self::C::T%>
;
- static factory named<T extends core::Object* = dynamic>(self::C::named::T* t) → self::C<self::C::named::T*>*
+ static factory named<T extends core::Object? = dynamic>(self::C::named::T% t) → self::C<self::C::named::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.transformed.expect
index c030443..0706981 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_named_factory.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t = null;
- constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T? t = null;
+ constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- static factory named<T extends core::Object* = dynamic>(self::C::named::T* t) → self::C<self::C::named::T*>* {
- self::C<self::C::named::T*>* x = new self::C::•<self::C::named::T*>();
+ static factory named<T extends core::Object? = dynamic>(self::C::named::T% t) → self::C<self::C::named::T%> {
+ self::C<self::C::named::T%> x = new self::C::•<self::C::named::T%>();
x.{self::C::t} = t;
return x;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = self::C::named<core::int*>(42);
+ self::C<core::int> x = self::C::named<core::int>(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart
index 9f4c5f5..13a8145 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,5 +12,5 @@
}
main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C.named(<int>[42]);
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C.named(<int>[42]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline.expect
index cc112fa..ca7d831 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline_modelled.expect
index 46dfa95..010a7db 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.expect
index b9202f7..32a214f 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
- : this self::C::•(t.{core::List::[]}(0){(core::int*) →* self::C::T*})
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
+ : this self::C::•(t.{core::List::[]}(0){(core::int) → self::C::T%})
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::named<core::int*>(<core::int*>[42]);
+ self::C<core::int> x = new self::C::named<core::int>(<core::int>[42]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.modular.expect
index b9202f7..32a214f 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
- : this self::C::•(t.{core::List::[]}(0){(core::int*) →* self::C::T*})
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
+ : this self::C::•(t.{core::List::[]}(0){(core::int) → self::C::T%})
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::named<core::int*>(<core::int*>[42]);
+ self::C<core::int> x = new self::C::named<core::int>(<core::int>[42]);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.outline.expect
index 0424549..26641dd 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.transformed.expect
index f41db2a..896d4a9 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- constructor named(core::List<self::C::T*>* t) → self::C<self::C::T*>*
- : this self::C::•(t.{core::List::[]}(0){(core::int*) →* self::C::T*})
+ constructor named(core::List<self::C::T%> t) → self::C<self::C::T%>
+ : this self::C::•(t.{core::List::[]}(0){(core::int) → self::C::T%})
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::C::named<core::int*>(core::_GrowableList::_literal1<core::int*>(42));
+ self::C<core::int> x = new self::C::named<core::int>(core::_GrowableList::_literal1<core::int>(42));
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart
index 9c530b1..da3d4db 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -18,5 +18,5 @@
}
main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(42);
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline.expect
index a657987..86de0c0 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline_modelled.expect
index dca6c03..8bc935e 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect
index 7f8c3dd..3a5146c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return new self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return new self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor •(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor •(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
: self::CImpl::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::CImpl::•<core::int*>(42);
+ self::C<core::int> x = new self::CImpl::•<core::int>(42);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.modular.expect
index 7f8c3dd..3a5146c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.modular.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return new self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return new self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor •(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor •(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
: self::CImpl::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::CImpl::•<core::int*>(42);
+ self::C<core::int> x = new self::CImpl::•<core::int>(42);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect
index f6167ed..fcaf9fe 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[self::C::•];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return new self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[self::C::•]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return new self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor •(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor •(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect
index 7f8c3dd..3a5146c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory.dart.weak.transformed.expect
@@ -1,42 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return new self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return new self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor •(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor •(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
: self::CImpl::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* x = new self::CImpl::•<core::int*>(42);
+ self::C<core::int> x = new self::CImpl::•<core::int>(42);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart
index b084bd2..a8e2eaf 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,9 +15,9 @@
class CImpl<T> implements C<T> {
T t;
CImpl._(this.t);
- factory CImpl(T t) => new /*@ typeArgs=CImpl::•::T* */ CImpl._(t);
+ factory CImpl(T t) => new /*@typeArgs=CImpl::•::T%*/ CImpl._(t);
}
main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(42);
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(42);
}
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline.expect
index 1980fe9..f75f8c2 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline_modelled.expect
index 1b8090f..2ee205e 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class C<T> {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect
index a2fd0ae..e01038c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor _(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor _(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
: self::CImpl::t = t, super core::Object::•()
;
- static factory •<T extends core::Object* = dynamic>(self::CImpl::•::T* t) → self::CImpl<self::CImpl::•::T*>*
- return new self::CImpl::_<self::CImpl::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static factory •<T extends core::Object? = dynamic>(self::CImpl::•::T% t) → self::CImpl<self::CImpl::•::T%>
+ return new self::CImpl::_<self::CImpl::•::T%>(t);
}
static method main() → dynamic {
- self::C<core::int*>* x = self::CImpl::•<core::int*>(42);
+ self::C<core::int> x = self::CImpl::•<core::int>(42);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.modular.expect
index a2fd0ae..e01038c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor _(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor _(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
: self::CImpl::t = t, super core::Object::•()
;
- static factory •<T extends core::Object* = dynamic>(self::CImpl::•::T* t) → self::CImpl<self::CImpl::•::T*>*
- return new self::CImpl::_<self::CImpl::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static factory •<T extends core::Object? = dynamic>(self::CImpl::•::T% t) → self::CImpl<self::CImpl::•::T%>
+ return new self::CImpl::_<self::CImpl::•::T%>(t);
}
static method main() → dynamic {
- self::C<core::int*>* x = self::CImpl::•<core::int*>(42);
+ self::C<core::int> x = self::CImpl::•<core::int>(42);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect
index 0980409..32423e6 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[self::C::•];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[self::C::•]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor _(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor _(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
;
- static factory •<T extends core::Object* = dynamic>(self::CImpl::•::T* t) → self::CImpl<self::CImpl::•::T*>*
+ static factory •<T extends core::Object? = dynamic>(self::CImpl::•::T% t) → self::CImpl<self::CImpl::•::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect
index a2fd0ae..e01038c 100644
--- a/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_infer_from_arguments_redirecting_factory_to_factory.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<T extends core::Object* = dynamic> extends core::Object {
- static final field dynamic _redirecting# = <dynamic>[#C1];
- abstract get t() → self::C::T*;
- abstract set t(covariant-by-class self::C::T* x) → void;
- static factory •<T extends core::Object* = dynamic>(self::C::•::T* t) → self::C<self::C::•::T*>*
- return self::CImpl::•<self::C::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+abstract class C<T extends core::Object? = dynamic> extends core::Object {
+ static final field dynamic _redirecting# = <dynamic>[#C1]/*isLegacy*/;
+ abstract get t() → self::C::T%;
+ abstract set t(covariant-by-class self::C::T% x) → void;
+ static factory •<T extends core::Object? = dynamic>(self::C::•::T% t) → self::C<self::C::•::T%>
+ return self::CImpl::•<self::C::•::T%>(t);
}
-class CImpl<T extends core::Object* = dynamic> extends core::Object implements self::C<self::CImpl::T*> {
- covariant-by-class field self::CImpl::T* t;
- constructor _(self::CImpl::T* t) → self::CImpl<self::CImpl::T*>*
+class CImpl<T extends core::Object? = dynamic> extends core::Object implements self::C<self::CImpl::T%> {
+ covariant-by-class field self::CImpl::T% t;
+ constructor _(self::CImpl::T% t) → self::CImpl<self::CImpl::T%>
: self::CImpl::t = t, super core::Object::•()
;
- static factory •<T extends core::Object* = dynamic>(self::CImpl::•::T* t) → self::CImpl<self::CImpl::•::T*>*
- return new self::CImpl::_<self::CImpl::•::T*>(t);
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static factory •<T extends core::Object? = dynamic>(self::CImpl::•::T% t) → self::CImpl<self::CImpl::•::T%>
+ return new self::CImpl::_<self::CImpl::•::T%>(t);
}
static method main() → dynamic {
- self::C<core::int*>* x = self::CImpl::•<core::int*>(42);
+ self::C<core::int> x = self::CImpl::•<core::int>(42);
}
constants {
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart
index 00a371ba..e5dda42 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart
@@ -1,24 +1,23 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class Cloneable<T> {}
class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
- T t;
- U u;
+ T? t;
+ U? u;
Pair(this.t, this.u);
Pair._();
- Pair<U, T> get reversed => new /*@ typeArgs=Pair::U*, Pair::T* */ Pair(
- /*@target=Pair.u*/ u,
- /*@target=Pair.t*/ t);
+ Pair<U, T> get reversed => new /*@typeArgs=Pair::U, Pair::T*/ Pair(
+ /*@target=Pair.u*/ u, /*@target=Pair.t*/ t);
}
main() {
- final /*@ type=Pair<Cloneable<dynamic>*, Cloneable<dynamic>*>* */ x =
- new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
+ final /*@type=Pair<Cloneable<Object?>, Cloneable<Object?>>*/ x =
+ new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
._();
}
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline.expect
index f4bb286..017f473 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
library test;
class Cloneable<T> {}
class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
- T t;
- U u;
+ T? t;
+ U? u;
Pair(this.t, this.u);
Pair._();
Pair<U, T> get reversed => new Pair(u, t);
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline_modelled.expect
index 0e51936..abd5141 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Cloneable<T> {}
@@ -7,8 +6,8 @@
Pair(this.t, this.u);
Pair._();
Pair<U, T> get reversed => new Pair(u, t);
- T t;
- U u;
+ T? t;
+ U? u;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.expect
index 5ef8772..2b7a760 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.expect
@@ -1,21 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:22:116: Error: Inferred type argument 'Cloneable<dynamic>' doesn't conform to the bound 'Cloneable<T>' of the type variable 'T' on 'Pair'.
+// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:21:112: Error: Inferred type argument 'Cloneable<Object?>' doesn't conform to the bound 'Cloneable<T>' of the type variable 'T' on 'Pair'.
// - 'Cloneable' is from 'pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
-// ^
+// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
+// ^
// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:10:12: Context: This is the type variable whose bound isn't conformed to.
// class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
// ^
//
-// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:22:116: Error: Inferred type argument 'Cloneable<dynamic>' doesn't conform to the bound 'Cloneable<U>' of the type variable 'U' on 'Pair'.
+// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:21:112: Error: Inferred type argument 'Cloneable<Object?>' doesn't conform to the bound 'Cloneable<U>' of the type variable 'U' on 'Pair'.
// - 'Cloneable' is from 'pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
-// ^
+// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
+// ^
// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:10:36: Context: This is the type variable whose bound isn't conformed to.
// class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
// ^
@@ -23,43 +25,23 @@
import self as self;
import "dart:core" as core;
-class Cloneable<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Cloneable<self::Cloneable::T*>*
+class Cloneable<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Cloneable<self::Cloneable::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Pair<T extends self::Cloneable<self::Pair::T*>* = self::Cloneable<dynamic>*, U extends self::Cloneable<self::Pair::U*>* = self::Cloneable<dynamic>*> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends self::Cloneable<self::Pair::T> = self::Cloneable<dynamic>, U extends self::Cloneable<self::Pair::U> = self::Cloneable<dynamic>> extends core::Object {
+ covariant-by-class field self::Pair::T? t;
+ covariant-by-class field self::Pair::U? u;
+ constructor •(self::Pair::T? t, self::Pair::U? u) → self::Pair<self::Pair::T, self::Pair::U>
: self::Pair::t = t, self::Pair::u = u, super core::Object::•()
;
- constructor _() → self::Pair<self::Pair::T*, self::Pair::U*>*
+ constructor _() → self::Pair<self::Pair::T, self::Pair::U>
: self::Pair::u = null, self::Pair::t = null, super core::Object::•()
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
- return new self::Pair::•<self::Pair::U*, self::Pair::T*>(this.{self::Pair::u}{self::Pair::U*}, this.{self::Pair::t}{self::Pair::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get reversed() → self::Pair<self::Pair::U, self::Pair::T>
+ return new self::Pair::•<self::Pair::U, self::Pair::T>(this.{self::Pair::u}{self::Pair::U?}, this.{self::Pair::t}{self::Pair::T?});
}
static method main() → dynamic {
- final self::Pair<self::Cloneable<dynamic>*, self::Cloneable<dynamic>*>* x = new self::Pair::_<self::Cloneable<dynamic>*, self::Cloneable<dynamic>*>();
+ final self::Pair<self::Cloneable<core::Object?>, self::Cloneable<core::Object?>> x = new self::Pair::_<self::Cloneable<core::Object?>, self::Cloneable<core::Object?>>();
}
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.modular.expect
index 5ef8772..2b7a760 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.modular.expect
@@ -1,21 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:22:116: Error: Inferred type argument 'Cloneable<dynamic>' doesn't conform to the bound 'Cloneable<T>' of the type variable 'T' on 'Pair'.
+// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:21:112: Error: Inferred type argument 'Cloneable<Object?>' doesn't conform to the bound 'Cloneable<T>' of the type variable 'T' on 'Pair'.
// - 'Cloneable' is from 'pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
-// ^
+// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
+// ^
// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:10:12: Context: This is the type variable whose bound isn't conformed to.
// class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
// ^
//
-// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:22:116: Error: Inferred type argument 'Cloneable<dynamic>' doesn't conform to the bound 'Cloneable<U>' of the type variable 'U' on 'Pair'.
+// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:21:112: Error: Inferred type argument 'Cloneable<Object?>' doesn't conform to the bound 'Cloneable<U>' of the type variable 'U' on 'Pair'.
// - 'Cloneable' is from 'pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
-// ^
+// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
+// ^
// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:10:36: Context: This is the type variable whose bound isn't conformed to.
// class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
// ^
@@ -23,43 +25,23 @@
import self as self;
import "dart:core" as core;
-class Cloneable<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Cloneable<self::Cloneable::T*>*
+class Cloneable<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Cloneable<self::Cloneable::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Pair<T extends self::Cloneable<self::Pair::T*>* = self::Cloneable<dynamic>*, U extends self::Cloneable<self::Pair::U*>* = self::Cloneable<dynamic>*> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends self::Cloneable<self::Pair::T> = self::Cloneable<dynamic>, U extends self::Cloneable<self::Pair::U> = self::Cloneable<dynamic>> extends core::Object {
+ covariant-by-class field self::Pair::T? t;
+ covariant-by-class field self::Pair::U? u;
+ constructor •(self::Pair::T? t, self::Pair::U? u) → self::Pair<self::Pair::T, self::Pair::U>
: self::Pair::t = t, self::Pair::u = u, super core::Object::•()
;
- constructor _() → self::Pair<self::Pair::T*, self::Pair::U*>*
+ constructor _() → self::Pair<self::Pair::T, self::Pair::U>
: self::Pair::u = null, self::Pair::t = null, super core::Object::•()
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
- return new self::Pair::•<self::Pair::U*, self::Pair::T*>(this.{self::Pair::u}{self::Pair::U*}, this.{self::Pair::t}{self::Pair::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get reversed() → self::Pair<self::Pair::U, self::Pair::T>
+ return new self::Pair::•<self::Pair::U, self::Pair::T>(this.{self::Pair::u}{self::Pair::U?}, this.{self::Pair::t}{self::Pair::T?});
}
static method main() → dynamic {
- final self::Pair<self::Cloneable<dynamic>*, self::Cloneable<dynamic>*>* x = new self::Pair::_<self::Cloneable<dynamic>*, self::Cloneable<dynamic>*>();
+ final self::Pair<self::Cloneable<core::Object?>, self::Cloneable<core::Object?>> x = new self::Pair::_<self::Cloneable<core::Object?>, self::Cloneable<core::Object?>>();
}
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.outline.expect
index e628b1f..b4fcb25 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Cloneable<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Cloneable<self::Cloneable::T*>*
+class Cloneable<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Cloneable<self::Cloneable::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Pair<T extends self::Cloneable<self::Pair::T*>* = self::Cloneable<dynamic>*, U extends self::Cloneable<self::Pair::U*>* = self::Cloneable<dynamic>*> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends self::Cloneable<self::Pair::T> = self::Cloneable<dynamic>, U extends self::Cloneable<self::Pair::U> = self::Cloneable<dynamic>> extends core::Object {
+ covariant-by-class field self::Pair::T? t;
+ covariant-by-class field self::Pair::U? u;
+ constructor •(self::Pair::T? t, self::Pair::U? u) → self::Pair<self::Pair::T, self::Pair::U>
;
- constructor _() → self::Pair<self::Pair::T*, self::Pair::U*>*
+ constructor _() → self::Pair<self::Pair::T, self::Pair::U>
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
+ get reversed() → self::Pair<self::Pair::U, self::Pair::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.transformed.expect
index 5ef8772..2b7a760 100644
--- a/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart.weak.transformed.expect
@@ -1,21 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:22:116: Error: Inferred type argument 'Cloneable<dynamic>' doesn't conform to the bound 'Cloneable<T>' of the type variable 'T' on 'Pair'.
+// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:21:112: Error: Inferred type argument 'Cloneable<Object?>' doesn't conform to the bound 'Cloneable<T>' of the type variable 'T' on 'Pair'.
// - 'Cloneable' is from 'pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
-// ^
+// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
+// ^
// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:10:12: Context: This is the type variable whose bound isn't conformed to.
// class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
// ^
//
-// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:22:116: Error: Inferred type argument 'Cloneable<dynamic>' doesn't conform to the bound 'Cloneable<U>' of the type variable 'U' on 'Pair'.
+// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:21:112: Error: Inferred type argument 'Cloneable<Object?>' doesn't conform to the bound 'Cloneable<U>' of the type variable 'U' on 'Pair'.
// - 'Cloneable' is from 'pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@ typeArgs=Cloneable<dynamic>*, Cloneable<dynamic>* */ Pair
-// ^
+// new /*error:COULD_NOT_INFER,error:COULD_NOT_INFER*/ /*@typeArgs=Cloneable<Object?>, Cloneable<Object?>*/ Pair
+// ^
// pkg/front_end/testcases/inference/constructors_inference_f_bounded.dart:10:36: Context: This is the type variable whose bound isn't conformed to.
// class Pair<T extends Cloneable<T>, U extends Cloneable<U>> {
// ^
@@ -23,43 +25,23 @@
import self as self;
import "dart:core" as core;
-class Cloneable<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Cloneable<self::Cloneable::T*>*
+class Cloneable<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Cloneable<self::Cloneable::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Pair<T extends self::Cloneable<self::Pair::T*>* = self::Cloneable<dynamic>*, U extends self::Cloneable<self::Pair::U*>* = self::Cloneable<dynamic>*> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends self::Cloneable<self::Pair::T> = self::Cloneable<dynamic>, U extends self::Cloneable<self::Pair::U> = self::Cloneable<dynamic>> extends core::Object {
+ covariant-by-class field self::Pair::T? t;
+ covariant-by-class field self::Pair::U? u;
+ constructor •(self::Pair::T? t, self::Pair::U? u) → self::Pair<self::Pair::T, self::Pair::U>
: self::Pair::t = t, self::Pair::u = u, super core::Object::•()
;
- constructor _() → self::Pair<self::Pair::T*, self::Pair::U*>*
+ constructor _() → self::Pair<self::Pair::T, self::Pair::U>
: self::Pair::u = null, self::Pair::t = null, super core::Object::•()
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
- return new self::Pair::•<self::Pair::U*, self::Pair::T*>(this.{self::Pair::u}{self::Pair::U*}, this.{self::Pair::t}{self::Pair::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get reversed() → self::Pair<self::Pair::U, self::Pair::T>
+ return new self::Pair::•<self::Pair::U, self::Pair::T>(this.{self::Pair::u}{self::Pair::U?}, this.{self::Pair::t}{self::Pair::T?});
}
static method main() → dynamic {
- final self::Pair<self::Cloneable<dynamic>*, self::Cloneable<dynamic>*>* x = new self::Pair::_<self::Cloneable<dynamic>*, self::Cloneable<dynamic>*>();
+ final self::Pair<self::Cloneable<core::Object?>, self::Cloneable<core::Object?>> x = new self::Pair::_<self::Cloneable<core::Object?>, self::Cloneable<core::Object?>>();
}
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart
index 3349db6..d968e39 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
T t;
U u;
Pair(this.t, this.u);
- Pair<U, T> get reversed => new /*@ typeArgs=Pair::U*, Pair::T* */ Pair(
+ Pair<U, T> get reversed => new /*@typeArgs=Pair::U%, Pair::T%*/ Pair(
/*@target=Pair.u*/ u,
/*@target=Pair.t*/ t);
}
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline.expect
index ebdd53b..08b5285 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Pair<T, U> {
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline_modelled.expect
index d85d459..32b945d 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Pair<T, U> {
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.expect
index f36fcca..265bb28 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Pair<T extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::Pair::T% t;
+ covariant-by-class field self::Pair::U% u;
+ constructor •(self::Pair::T% t, self::Pair::U% u) → self::Pair<self::Pair::T%, self::Pair::U%>
: self::Pair::t = t, self::Pair::u = u, super core::Object::•()
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
- return new self::Pair::•<self::Pair::U*, self::Pair::T*>(this.{self::Pair::u}{self::Pair::U*}, this.{self::Pair::t}{self::Pair::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get reversed() → self::Pair<self::Pair::U%, self::Pair::T%>
+ return new self::Pair::•<self::Pair::U%, self::Pair::T%>(this.{self::Pair::u}{self::Pair::U%}, this.{self::Pair::t}{self::Pair::T%});
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.modular.expect
index f36fcca..265bb28 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.modular.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Pair<T extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::Pair::T% t;
+ covariant-by-class field self::Pair::U% u;
+ constructor •(self::Pair::T% t, self::Pair::U% u) → self::Pair<self::Pair::T%, self::Pair::U%>
: self::Pair::t = t, self::Pair::u = u, super core::Object::•()
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
- return new self::Pair::•<self::Pair::U*, self::Pair::T*>(this.{self::Pair::u}{self::Pair::U*}, this.{self::Pair::t}{self::Pair::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get reversed() → self::Pair<self::Pair::U%, self::Pair::T%>
+ return new self::Pair::•<self::Pair::U%, self::Pair::T%>(this.{self::Pair::u}{self::Pair::U%}, this.{self::Pair::t}{self::Pair::T%});
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.outline.expect
index cc30784..126b913 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Pair<T extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::Pair::T% t;
+ covariant-by-class field self::Pair::U% u;
+ constructor •(self::Pair::T% t, self::Pair::U% u) → self::Pair<self::Pair::T%, self::Pair::U%>
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
+ get reversed() → self::Pair<self::Pair::U%, self::Pair::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.transformed.expect
index f36fcca..265bb28 100644
--- a/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_reverse_type_parameters.dart.weak.transformed.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Pair<T extends core::Object* = dynamic, U extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::Pair::T* t;
- covariant-by-class field self::Pair::U* u;
- constructor •(self::Pair::T* t, self::Pair::U* u) → self::Pair<self::Pair::T*, self::Pair::U*>*
+class Pair<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::Pair::T% t;
+ covariant-by-class field self::Pair::U% u;
+ constructor •(self::Pair::T% t, self::Pair::U% u) → self::Pair<self::Pair::T%, self::Pair::U%>
: self::Pair::t = t, self::Pair::u = u, super core::Object::•()
;
- get reversed() → self::Pair<self::Pair::U*, self::Pair::T*>*
- return new self::Pair::•<self::Pair::U*, self::Pair::T*>(this.{self::Pair::u}{self::Pair::U*}, this.{self::Pair::t}{self::Pair::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get reversed() → self::Pair<self::Pair::U%, self::Pair::T%>
+ return new self::Pair::•<self::Pair::U%, self::Pair::T%>(this.{self::Pair::u}{self::Pair::U%}, this.{self::Pair::t}{self::Pair::T%});
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart
index 4e6dac5..d86e54c 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline.expect
index 6ad4007..d3ee256 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {}
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline_modelled.expect
index d5f3bae..a4a2d50 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {}
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.expect
index 63ca562..9bebe19 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,20 +13,10 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
invalid-type a = invalid-expression "pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart:11:77: Error: Too many positional arguments: 0 allowed, but 1 found.
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.modular.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.modular.expect
index 63ca562..9bebe19 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,20 +13,10 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
invalid-type a = invalid-expression "pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart:11:77: Error: Too many positional arguments: 0 allowed, but 1 found.
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.outline.expect
index 18fed36..b2e2f48 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.transformed.expect
index 63ca562..9bebe19 100644
--- a/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,20 +13,10 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
invalid-type a = invalid-expression "pkg/front_end/testcases/inference/constructors_too_many_positional_arguments.dart:11:77: Error: Too many positional arguments: 0 allowed, but 1 found.
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart
index 4a101da..fa6454f 100644
--- a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart
+++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline.expect b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline.expect
index a65782b..27f0e71 100644
--- a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline_modelled.expect
index a65782b..27f0e71 100644
--- a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.expect b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.expect
index 51015b3..dcc1780 100644
--- a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,41 +14,21 @@
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x = 2;
- synthetic constructor •() → self::A*
+ final field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
get x() → dynamic
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.modular.expect b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.modular.expect
index 51015b3..dcc1780 100644
--- a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,41 +14,21 @@
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x = 2;
- synthetic constructor •() → self::A*
+ final field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
get x() → dynamic
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.outline.expect b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.outline.expect
index 984aa8b..5051ad7 100644
--- a/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,35 +14,15 @@
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x;
- synthetic constructor •() → self::A*
+ final field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
get x() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart
index 4697354..3eacb18 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline.expect
index 93c66f2..0114cbd 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = null;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline_modelled.expect
index 93932dc..295e0ea 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.expect
index 9adf7a2..2d8933a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static field dynamic x = null;
- static field core::int* y = 3;
+ static field core::int y = 3;
field dynamic x2 = null;
- field core::int* y2 = 3;
- synthetic constructor •() → self::A*
+ field core::int y2 = 3;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static field dynamic x = null;
-static field core::int* y = 3;
+static field core::int y = 3;
static method main() → dynamic {
self::x;
self::y;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.modular.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.modular.expect
index 9adf7a2..2d8933a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static field dynamic x = null;
- static field core::int* y = 3;
+ static field core::int y = 3;
field dynamic x2 = null;
- field core::int* y2 = 3;
- synthetic constructor •() → self::A*
+ field core::int y2 = 3;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static field dynamic x = null;
-static field core::int* y = 3;
+static field core::int y = 3;
static method main() → dynamic {
self::x;
self::y;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.outline.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.outline.expect
index 5a64a8d..918c34c 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static field dynamic x;
- static field core::int* y;
+ static field core::int y;
field dynamic x2;
- field core::int* y2;
- synthetic constructor •() → self::A*
+ field core::int y2;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static field dynamic x;
-static field core::int* y;
+static field core::int y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.transformed.expect
index 9adf7a2..2d8933a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_field_type_when_initializer_is_null.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static field dynamic x = null;
- static field core::int* y = 3;
+ static field core::int y = 3;
field dynamic x2 = null;
- field core::int* y2 = 3;
- synthetic constructor •() → self::A*
+ field core::int y2 = 3;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static field dynamic x = null;
-static field core::int* y = 3;
+static field core::int y = 3;
static method main() → dynamic {
self::x;
self::y;
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart
index 30e4cdb..7df2348 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline.expect
index 84bb5b3..c70c84a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test() {}
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline_modelled.expect
index 630ead4..10819ea 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.expect
index 6fc489d..dca80ed 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.modular.expect
index 6fc489d..dca80ed 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.outline.expect
index 8e85697..100b8e9 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.transformed.expect
index 6fc489d..dca80ed 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_on_dynamic.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart
index 20848d3..de4b6f0 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline.expect
index 84bb5b3..c70c84a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test() {}
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline_modelled.expect
index 630ead4..10819ea 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.expect
index 9364af3..a93c28a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.modular.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.modular.expect
index 9364af3..a93c28a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.outline.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.outline.expect
index 8e85697..100b8e9 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.transformed.expect
index 9364af3..a93c28a 100644
--- a/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/dont_infer_type_when_initializer_is_null.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic {
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart
index 2e7f935..b66480a 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart
@@ -1,21 +1,18 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:math';
// T max<T extends num>(T x, T y);
-f() {
- num x;
- dynamic y;
-
- num a = /*@ typeArgs=num* */ max(
+f(num x, dynamic y) {
+ num a = /*@typeArgs=num*/ max(
x,
/*info:DYNAMIC_CAST*/ y);
- Object b = /*@ typeArgs=num* */ max(
+ Object b = /*@typeArgs=num*/ max(
x,
/*info:DYNAMIC_CAST*/ y);
dynamic c = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(x, y);
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline.expect
index 27f2e8e..7c39dc6 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
import 'dart:math';
-f() {}
+f(num x, dynamic y) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline_modelled.expect
index 27f2e8e..7c39dc6 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
import 'dart:math';
-f() {}
+f(num x, dynamic y) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.expect b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.expect
index c7d6e17..a6aefc2 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:21:65: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
+// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:18:65: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// dynamic c = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(x, y);
// ^
//
-// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:22:81: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
+// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:19:81: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var /*@ type=dynamic */ d = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(
// ^
@@ -18,11 +18,9 @@
import "dart:math";
-static method f() → dynamic {
- core::num* x;
- dynamic y;
- core::num* a = math::max<core::num*>(x, y as{TypeError,ForDynamic} core::num*);
- core::Object* b = math::max<core::num*>(x, y as{TypeError,ForDynamic} core::num*);
+static method f(core::num x, dynamic y) → dynamic {
+ core::num a = math::max<core::num>(x, y as{TypeError,ForDynamic,ForNonNullableByDefault} core::num);
+ core::Object b = math::max<core::num>(x, y as{TypeError,ForDynamic,ForNonNullableByDefault} core::num);
dynamic c = math::max<dynamic>(x, y);
dynamic d = math::max<dynamic>(x, y);
}
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.modular.expect
index c7d6e17..a6aefc2 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:21:65: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
+// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:18:65: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// dynamic c = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(x, y);
// ^
//
-// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:22:81: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
+// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:19:81: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var /*@ type=dynamic */ d = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(
// ^
@@ -18,11 +18,9 @@
import "dart:math";
-static method f() → dynamic {
- core::num* x;
- dynamic y;
- core::num* a = math::max<core::num*>(x, y as{TypeError,ForDynamic} core::num*);
- core::Object* b = math::max<core::num*>(x, y as{TypeError,ForDynamic} core::num*);
+static method f(core::num x, dynamic y) → dynamic {
+ core::num a = math::max<core::num>(x, y as{TypeError,ForDynamic,ForNonNullableByDefault} core::num);
+ core::Object b = math::max<core::num>(x, y as{TypeError,ForDynamic,ForNonNullableByDefault} core::num);
dynamic c = math::max<dynamic>(x, y);
dynamic d = math::max<dynamic>(x, y);
}
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.outline.expect
index 4cd4875..1dc4a7a 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.outline.expect
@@ -1,9 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
import "dart:math";
-static method f() → dynamic
+static method f(core::num x, dynamic y) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.transformed.expect
index c7d6e17..a6aefc2 100644
--- a/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:21:65: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
+// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:18:65: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// dynamic c = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(x, y);
// ^
//
-// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:22:81: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
+// pkg/front_end/testcases/inference/downward_inference_fixes_no_upwards_errors.dart:19:81: Error: Inferred type argument 'dynamic' doesn't conform to the bound 'num' of the type variable 'T' on 'max'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var /*@ type=dynamic */ d = /*error:COULD_NOT_INFER*/ /*@ typeArgs=dynamic */ max(
// ^
@@ -18,11 +18,9 @@
import "dart:math";
-static method f() → dynamic {
- core::num* x;
- dynamic y;
- core::num* a = math::max<core::num*>(x, y as{TypeError,ForDynamic} core::num*);
- core::Object* b = math::max<core::num*>(x, y as{TypeError,ForDynamic} core::num*);
+static method f(core::num x, dynamic y) → dynamic {
+ core::num a = math::max<core::num>(x, y as{TypeError,ForDynamic,ForNonNullableByDefault} core::num);
+ core::Object b = math::max<core::num>(x, y as{TypeError,ForDynamic,ForNonNullableByDefault} core::num);
dynamic c = math::max<dynamic>(x, y);
dynamic d = math::max<dynamic>(x, y);
}
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart
index 8aaf516..2795bc9 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,16 +15,16 @@
void main() {
{
// Variables, nested literals
- var /*@ type=String* */ x = "hello";
- var /*@ type=int* */ y = 3;
+ var /*@type=String*/ x = "hello";
+ var /*@type=int*/ y = 3;
void f(List<Map<int, String>> l) {}
;
- f(/*@ typeArgs=Map<int*, String*>* */ [
- /*@ typeArgs=int*, String* */ {y: x}
+ f(/*@typeArgs=Map<int, String>*/ [
+ /*@typeArgs=int, String*/ {y: x}
]);
}
{
int f(int x) => 0;
- A<int> a = new /*@ typeArgs=int* */ A(f);
+ A<int> a = new /*@typeArgs=int*/ A(f);
}
}
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline.expect
index 9cf6047..f36fe08 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef T Function2<S, T>(S x);
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline_modelled.expect
index 2349108..697ff80 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.expect
index 9ecd2a9..430da8b 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field (self::A::T*) →* self::A::T* x;
- constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field (self::A::T%) → self::A::T% x;
+ constructor •((self::A::T%) → self::A::T% x) → self::A<self::A::T%>
: self::A::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
{
- core::String* x = "hello";
- core::int* y = 3;
- function f(core::List<core::Map<core::int*, core::String*>*>* l) → void {}
+ core::String x = "hello";
+ core::int y = 3;
+ function f(core::List<core::Map<core::int, core::String>> l) → void {}
;
- f(<core::Map<core::int*, core::String*>*>[<core::int*, core::String*>{y: x}]){(core::List<core::Map<core::int*, core::String*>*>*) →* void};
+ f(<core::Map<core::int, core::String>>[<core::int, core::String>{y: x}]){(core::List<core::Map<core::int, core::String>>) → void};
}
{
- function f(core::int* x) → core::int*
+ function f(core::int x) → core::int
return 0;
- self::A<core::int*>* a = new self::A::•<core::int*>(f);
+ self::A<core::int> a = new self::A::•<core::int>(f);
}
}
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.modular.expect
index 9ecd2a9..430da8b 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.modular.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field (self::A::T*) →* self::A::T* x;
- constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field (self::A::T%) → self::A::T% x;
+ constructor •((self::A::T%) → self::A::T% x) → self::A<self::A::T%>
: self::A::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
{
- core::String* x = "hello";
- core::int* y = 3;
- function f(core::List<core::Map<core::int*, core::String*>*>* l) → void {}
+ core::String x = "hello";
+ core::int y = 3;
+ function f(core::List<core::Map<core::int, core::String>> l) → void {}
;
- f(<core::Map<core::int*, core::String*>*>[<core::int*, core::String*>{y: x}]){(core::List<core::Map<core::int*, core::String*>*>*) →* void};
+ f(<core::Map<core::int, core::String>>[<core::int, core::String>{y: x}]){(core::List<core::Map<core::int, core::String>>) → void};
}
{
- function f(core::int* x) → core::int*
+ function f(core::int x) → core::int
return 0;
- self::A<core::int*>* a = new self::A::•<core::int*>(f);
+ self::A<core::int> a = new self::A::•<core::int>(f);
}
}
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.outline.expect
index a40472f..55312ff 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field (self::A::T*) →* self::A::T* x;
- constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field (self::A::T%) → self::A::T% x;
+ constructor •((self::A::T%) → self::A::T% x) → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.transformed.expect
index d687121..0898f40 100644
--- a/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downward_inference_miscellaneous.dart.weak.transformed.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field (self::A::T*) →* self::A::T* x;
- constructor •((self::A::T*) →* self::A::T* x) → self::A<self::A::T*>*
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field (self::A::T%) → self::A::T% x;
+ constructor •((self::A::T%) → self::A::T% x) → self::A<self::A::T%>
: self::A::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
{
- core::String* x = "hello";
- core::int* y = 3;
- function f(core::List<core::Map<core::int*, core::String*>*>* l) → void {}
+ core::String x = "hello";
+ core::int y = 3;
+ function f(core::List<core::Map<core::int, core::String>> l) → void {}
;
- f(core::_GrowableList::_literal1<core::Map<core::int*, core::String*>*>(<core::int*, core::String*>{y: x})){(core::List<core::Map<core::int*, core::String*>*>*) →* void};
+ f(core::_GrowableList::_literal1<core::Map<core::int, core::String>>(<core::int, core::String>{y: x})){(core::List<core::Map<core::int, core::String>>) → void};
}
{
- function f(core::int* x) → core::int*
+ function f(core::int x) → core::int
return 0;
- self::A<core::int*>* a = new self::A::•<core::int*>(f);
+ self::A<core::int> a = new self::A::•<core::int>(f);
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart
index 6da207b..a2a520c 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
class B implements A {
- final foo = /*@ typeArgs=String* */ const [];
+ final foo = /*@typeArgs=String*/ const [];
}
void main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline.expect
index b5cf4d6..16ed9ce 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline_modelled.expect
index b5cf4d6..16ed9ce 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.expect
index 350439b..33f9e2a 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get foo() → core::Iterable<core::String*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get foo() → core::Iterable<core::String>;
}
class B extends core::Object implements self::A {
- final field core::Iterable<core::String*>* foo = #C1;
- synthetic constructor •() → self::B*
+ final field core::Iterable<core::String> foo = #C1;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {}
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.modular.expect
index 350439b..33f9e2a 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get foo() → core::Iterable<core::String*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get foo() → core::Iterable<core::String>;
}
class B extends core::Object implements self::A {
- final field core::Iterable<core::String*>* foo = #C1;
- synthetic constructor •() → self::B*
+ final field core::Iterable<core::String> foo = #C1;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {}
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.outline.expect
index f44e1f0..b5dea20 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get foo() → core::Iterable<core::String*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get foo() → core::Iterable<core::String>;
}
class B extends core::Object implements self::A {
- final field core::Iterable<core::String*>* foo;
- synthetic constructor •() → self::B*
+ final field core::Iterable<core::String> foo;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.transformed.expect
index 350439b..33f9e2a 100644
--- a/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_context_from_inferred_field_type.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get foo() → core::Iterable<core::String*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get foo() → core::Iterable<core::String>;
}
class B extends core::Object implements self::A {
- final field core::Iterable<core::String*>* foo = #C1;
- synthetic constructor •() → self::B*
+ final field core::Iterable<core::String> foo = #C1;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart
index 1539c9e..24a4701 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,10 +10,10 @@
const Foo.named(List<String> l);
}
-@Foo(/*@ typeArgs=String* */ const [])
+@Foo(/*@typeArgs=String*/ const [])
class Bar {}
-@Foo.named(/*@ typeArgs=String* */ const [])
+@Foo.named(/*@typeArgs=String*/ const [])
class Baz {}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline.expect
index 588cdaf..fb5daf2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline_modelled.expect
index 80453be..af71307 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
@Foo(const [])
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.expect
index 5fdfe4d..d3633ff 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.expect
@@ -1,56 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- const constructor named(core::List<core::String*>* l) → self::Foo*
+ const constructor named(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@#C1
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@#C1
class Baz extends core::Object {
- synthetic constructor •() → self::Baz*
+ synthetic constructor •() → self::Baz
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.modular.expect
index 5fdfe4d..d3633ff 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.modular.expect
@@ -1,56 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- const constructor named(core::List<core::String*>* l) → self::Foo*
+ const constructor named(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@#C1
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@#C1
class Baz extends core::Object {
- synthetic constructor •() → self::Baz*
+ synthetic constructor •() → self::Baz
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.outline.expect
index 1cea698..9efa2e0 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.outline.expect
@@ -1,54 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- const constructor named(core::List<core::String*>* l) → self::Foo*
+ const constructor named(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-@self::Foo::•(const <core::String*>[])
+@self::Foo::•(const <core::String>[])
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-@self::Foo::named(const <core::String*>[])
+@self::Foo::named(const <core::String>[])
class Baz extends core::Object {
- synthetic constructor •() → self::Baz*
+ synthetic constructor •() → self::Baz
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.transformed.expect
index 5fdfe4d..d3633ff 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations.dart.weak.transformed.expect
@@ -1,56 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- const constructor named(core::List<core::String*>* l) → self::Foo*
+ const constructor named(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@#C1
class Bar extends core::Object {
- synthetic constructor •() → self::Bar*
+ synthetic constructor •() → self::Bar
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
@#C1
class Baz extends core::Object {
- synthetic constructor •() → self::Baz*
+ synthetic constructor •() → self::Baz
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart
index 0282769..239edeb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,13 +10,13 @@
}
abstract class Bar {
- @Foo(/*@ typeArgs=String* */ const [])
+ @Foo(/*@typeArgs=String*/ const [])
Bar();
- @Foo(/*@ typeArgs=String* */ const [])
+ @Foo(/*@typeArgs=String*/ const [])
var x;
- @Foo(/*@ typeArgs=String* */ const [])
+ @Foo(/*@typeArgs=String*/ const [])
void f();
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline.expect
index d4b4367..3cc94f4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline_modelled.expect
index d046fed..900fab8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class Bar {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.expect
index bc1bc95..e89b037 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class Bar extends core::Object {
@#C1
field dynamic x = null;
@#C1
- constructor •() → self::Bar*
+ constructor •() → self::Bar
: super core::Object::•()
;
@#C1
abstract method f() → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.modular.expect
index bc1bc95..e89b037 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.modular.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class Bar extends core::Object {
@#C1
field dynamic x = null;
@#C1
- constructor •() → self::Bar*
+ constructor •() → self::Bar
: super core::Object::•()
;
@#C1
abstract method f() → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.outline.expect
index f6d0c76..53a65ad 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class Bar extends core::Object {
- @self::Foo::•(const <core::String*>[])
+ @self::Foo::•(const <core::String>[])
field dynamic x;
- @self::Foo::•(const <core::String*>[])
- constructor •() → self::Bar*
+ @self::Foo::•(const <core::String>[])
+ constructor •() → self::Bar
;
- @self::Foo::•(const <core::String*>[])
+ @self::Foo::•(const <core::String>[])
abstract method f() → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.transformed.expect
index bc1bc95..e89b037 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_class_members.dart.weak.transformed.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class Bar extends core::Object {
@#C1
field dynamic x = null;
@#C1
- constructor •() → self::Bar*
+ constructor •() → self::Bar
: super core::Object::•()
;
@#C1
abstract method f() → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart
index 494a5215..df9bd2f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,12 +10,11 @@
}
void test() {
- for (@Foo(/*@ typeArgs=String* */ const [])
+ for (@Foo(/*@typeArgs=String*/ const [])
int i = 0;
i /*@target=num.<*/ < 1;
i /*@target=num.+*/ ++) {}
- for (@Foo(/*@ typeArgs=String* */ const [])
- int i in /*@ typeArgs=int* */ [0]) {}
+ for (@Foo(/*@typeArgs=String*/ const []) int i in /*@typeArgs=int*/ [0]) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline.expect
index 5d83904..d40f333 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline_modelled.expect
index 92182d0..0818562 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.expect
index c56e8ad..f763483 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- for (@#C1 core::int* i = 0; i.{core::num::<}(1){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ for (@#C1 core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (@#C1 core::int* i in <core::int*>[0]) {
+ for (@#C1 core::int i in <core::int>[0]) {
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.modular.expect
index c56e8ad..f763483 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- for (@#C1 core::int* i = 0; i.{core::num::<}(1){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ for (@#C1 core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
- for (@#C1 core::int* i in <core::int*>[0]) {
+ for (@#C1 core::int i in <core::int>[0]) {
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.outline.expect
index 434e2c5..1e4e2e1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.transformed.expect
index 03d1390..aae71dc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_for_loop_variable.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- for (@#C1 core::int* i = 0; i.{core::num::<}(1){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
+ for (@#C1 core::int i = 0; i.{core::num::<}(1){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
}
{
- core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal1<core::int*>(0).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+ core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal1<core::int>(0).{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- @#C1 core::int* i = :sync-for-iterator.{core::Iterator::current}{core::int*};
+ @#C1 core::int i = :sync-for-iterator.{core::Iterator::current}{core::int};
{}
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart
index f554d74..f35daca 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,10 +10,10 @@
}
void test() {
- @Foo(/*@ typeArgs=String* */ const [])
+ @Foo(/*@typeArgs=String*/ const [])
var /*@ type=dynamic */ x;
- @Foo(/*@ typeArgs=String* */ const [])
+ @Foo(/*@typeArgs=String*/ const [])
void f() {}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline.expect
index 5d83904..d40f333 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline_modelled.expect
index 92182d0..0818562 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.expect
index bd79165..45a1c08 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
@#C1 dynamic x;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.modular.expect
index bd79165..45a1c08 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
@#C1 dynamic x;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.outline.expect
index 434e2c5..1e4e2e1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.transformed.expect
index bd79165..45a1c08 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
@#C1 dynamic x;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart
index 8afdbce..ccd993f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,15 +10,15 @@
}
void test() {
- const /*@ type=int* */ x = 0;
+ const /*@type=int*/ x = 0;
- @Foo(/*@ typeArgs=int* */ const [x])
+ @Foo(/*@typeArgs=int*/ const [x])
var /*@ type=dynamic */ y;
- @Foo(/*@ typeArgs=int* */ const [x])
+ @Foo(/*@typeArgs=int*/ const [x])
void bar() {}
- void baz(@Foo(/*@ typeArgs=int* */ const [x]) dynamic formal) {}
+ void baz(@Foo(/*@typeArgs=int*/ const [x]) dynamic formal) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline.expect
index 5a9b8f3..45f63cd 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline_modelled.expect
index f166401..109def4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.expect
index 4f025f27..2fe85fc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(dynamic l) → self::Foo*
+ const constructor •(dynamic l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
@#C1 dynamic y;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.modular.expect
index 4f025f27..2fe85fc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(dynamic l) → self::Foo*
+ const constructor •(dynamic l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
@#C1 dynamic y;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.outline.expect
index 263860e..5025006 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(dynamic l) → self::Foo*
+ const constructor •(dynamic l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.transformed.expect
index 4f025f27..2fe85fc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_locals_referring_to_locals.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(dynamic l) → self::Foo*
+ const constructor •(dynamic l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
@#C1 dynamic y;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart
index cf8f7a3..7b0ab28 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,10 +9,10 @@
const Foo(List<String> l);
}
-void f(@Foo(/*@ typeArgs=String* */ const []) x) {}
+void f(@Foo(/*@typeArgs=String*/ const []) x) {}
class C {
- void m(@Foo(/*@ typeArgs=String* */ const []) x) {}
+ void m(@Foo(/*@typeArgs=String*/ const []) x) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline.expect
index 7e7e66a..85424cc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline_modelled.expect
index a0810602..3d34b57 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.expect
index d7a402b..9ce8fd2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method m(@#C1 dynamic x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f(@#C1 dynamic x) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.modular.expect
index d7a402b..9ce8fd2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.modular.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method m(@#C1 dynamic x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f(@#C1 dynamic x) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.outline.expect
index 8d020a5..fc5afb5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method m(dynamic x) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f(dynamic x) → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.transformed.expect
index d7a402b..9ce8fd2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter.dart.weak.transformed.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method m(@#C1 dynamic x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f(@#C1 dynamic x) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart
index f0cc5f4..6c847b4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,8 +10,8 @@
}
void test() {
- void f(@Foo(/*@ typeArgs=String* */ const []) /*@ type=dynamic */ x) {}
- var /*@ type=(dynamic) ->* Null */ x = /*@ returnType=Null */ (@Foo(/*@ typeArgs=String* */ const []) /*@ type=dynamic */
+ void f(@Foo(/*@typeArgs=String*/ const []) /*@ type=dynamic */ x) {}
+ var /*@type=(dynamic) -> Null*/ x = /*@ returnType=Null */ (@Foo(/*@typeArgs=String*/ const []) /*@ type=dynamic */
x) {};
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline.expect
index 5d83904..d40f333 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline_modelled.expect
index 92182d0..0818562 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.expect
index b72210d..f909b9a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
function f(@#C1 dynamic x) → void {}
- (dynamic) →* Null x = (@#C1 dynamic x) → Null {};
+ (dynamic) → Null x = (@#C1 dynamic x) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.modular.expect
index b72210d..f909b9a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
function f(@#C1 dynamic x) → void {}
- (dynamic) →* Null x = (@#C1 dynamic x) → Null {};
+ (dynamic) → Null x = (@#C1 dynamic x) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.outline.expect
index 434e2c5..1e4e2e1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.transformed.expect
index b72210d..f909b9a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_parameter_local.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
function f(@#C1 dynamic x) → void {}
- (dynamic) →* Null x = (@#C1 dynamic x) → Null {};
+ (dynamic) → Null x = (@#C1 dynamic x) → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart
index 5937e4a..a5ecbcb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,14 +9,14 @@
const Foo(List<String> l);
}
-class C<@Foo(/*@typeArgs=String**/ const []) T> {}
+class C<@Foo(/*@typeArgs=String*/ const []) T> {}
-typedef void F<@Foo(/*@typeArgs=String**/ const []) T>();
+typedef void F<@Foo(/*@typeArgs=String*/ const []) T>();
-void f<@Foo(/*@typeArgs=String**/ const []) T>() {}
+void f<@Foo(/*@typeArgs=String*/ const []) T>() {}
class D {
- void m<@Foo(/*@typeArgs=String**/ const []) T>() {}
+ void m<@Foo(/*@typeArgs=String*/ const []) T>() {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline.expect
index 0cfa516..fdc2d82 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline_modelled.expect
index 6afcb3b..26f3f04 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<@Foo(const []) T> {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.expect
index 60436b4..32d9ea9 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<@#C1 unrelated T extends core::Object* = dynamic> = () →* void;
+typedef F<@#C1 unrelated T extends core::Object? = dynamic> = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<@#C1 T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<@#C1 T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- method m<@#C1 T extends core::Object* = dynamic>() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<@#C1 T extends core::Object? = dynamic>() → void {}
}
-static method f<@#C1 T extends core::Object* = dynamic>() → void {}
+static method f<@#C1 T extends core::Object? = dynamic>() → void {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.modular.expect
index 60436b4..32d9ea9 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.modular.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<@#C1 unrelated T extends core::Object* = dynamic> = () →* void;
+typedef F<@#C1 unrelated T extends core::Object? = dynamic> = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<@#C1 T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<@#C1 T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- method m<@#C1 T extends core::Object* = dynamic>() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<@#C1 T extends core::Object? = dynamic>() → void {}
}
-static method f<@#C1 T extends core::Object* = dynamic>() → void {}
+static method f<@#C1 T extends core::Object? = dynamic>() → void {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.outline.expect
index c523b74..f9bb47d 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.outline.expect
@@ -1,54 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<@self::Foo::•(const <core::String*>[]) unrelated T extends core::Object* = dynamic> = () →* void;
+typedef F<@self::Foo::•(const <core::String>[]) unrelated T extends core::Object? = dynamic> = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<@self::Foo::•(const <core::String*>[]) T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<@self::Foo::•(const <core::String>[]) T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- method m<@self::Foo::•(const <core::String*>[]) T extends core::Object* = dynamic>() → void
+ method m<@self::Foo::•(const <core::String>[]) T extends core::Object? = dynamic>() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<@self::Foo::•(const <core::String*>[]) T extends core::Object* = dynamic>() → void
+static method f<@self::Foo::•(const <core::String>[]) T extends core::Object? = dynamic>() → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.transformed.expect
index 60436b4..32d9ea9 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable.dart.weak.transformed.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<@#C1 unrelated T extends core::Object* = dynamic> = () →* void;
+typedef F<@#C1 unrelated T extends core::Object? = dynamic> = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<@#C1 T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<@#C1 T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- method m<@#C1 T extends core::Object* = dynamic>() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<@#C1 T extends core::Object? = dynamic>() → void {}
}
-static method f<@#C1 T extends core::Object* = dynamic>() → void {}
+static method f<@#C1 T extends core::Object? = dynamic>() → void {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart
index eb3ea6b..1d10efd 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,9 +10,9 @@
}
void test() {
- void f<@Foo(/*@ typeArgs=String* */ const []) T>() {}
- var /*@ type=<T extends Object* = dynamic>() ->* Null */ x =
- <@Foo(/*@ typeArgs=String* */ const []) T> /*@ returnType=Null */ () {};
+ void f<@Foo(/*@typeArgs=String*/ const []) T>() {}
+ var /*@type=<T extends Object? = dynamic>() -> Null*/ x =
+ <@Foo(/*@typeArgs=String*/ const []) T> /*@ returnType=Null */ () {};
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline.expect
index 5d83904..d40f333 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline_modelled.expect
index 92182d0..0818562 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.expect
index 59529f1..b650eaa 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- function f<@#C1 T extends core::Object* = dynamic>() → void {}
- <T extends core::Object* = dynamic>() →* Null x = <@#C1 T extends core::Object* = dynamic>() → Null {};
+ function f<@#C1 T extends core::Object? = dynamic>() → void {}
+ <T extends core::Object? = dynamic>() → Null x = <@#C1 T extends core::Object? = dynamic>() → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.modular.expect
index 59529f1..b650eaa 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- function f<@#C1 T extends core::Object* = dynamic>() → void {}
- <T extends core::Object* = dynamic>() →* Null x = <@#C1 T extends core::Object* = dynamic>() → Null {};
+ function f<@#C1 T extends core::Object? = dynamic>() → void {}
+ <T extends core::Object? = dynamic>() → Null x = <@#C1 T extends core::Object? = dynamic>() → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.outline.expect
index 434e2c5..1e4e2e1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.transformed.expect
index 59529f1..b650eaa 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_type_variable_local.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- function f<@#C1 T extends core::Object* = dynamic>() → void {}
- <T extends core::Object* = dynamic>() →* Null x = <@#C1 T extends core::Object* = dynamic>() → Null {};
+ function f<@#C1 T extends core::Object? = dynamic>() → void {}
+ <T extends core::Object? = dynamic>() → Null x = <@#C1 T extends core::Object? = dynamic>() → Null {};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart
index d23836f2..6158bc5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
const Foo(List<String> l);
}
-@Foo(/*@ typeArgs=String* */ const [])
+@Foo(/*@typeArgs=String*/ const [])
typedef void F();
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline.expect
index 8c597df..e7416ab 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline_modelled.expect
index 47100a9..7d31ff1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.expect
index 17384f4..b68c2bb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
@#C1
-typedef F = () →* void;
+typedef F = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.modular.expect
index 17384f4..b68c2bb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
@#C1
-typedef F = () →* void;
+typedef F = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.outline.expect
index a88013f..5e3500c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-@self::Foo::•(const <core::String*>[])
-typedef F = () →* void;
+@self::Foo::•(const <core::String>[])
+typedef F = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.transformed.expect
index 17384f4..b68c2bb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_annotations_typedef.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
@#C1
-typedef F = () →* void;
+typedef F = () → void;
class Foo extends core::Object /*hasConstConstructor*/ {
- const constructor •(core::List<core::String*>* l) → self::Foo*
+ const constructor •(core::List<core::String> l) → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart
index d57ee4f..b294ba1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test() {
List<int> l;
- l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
- l = (l = /*@ typeArgs=int* */ [1]);
+ l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
+ l = (l = /*@typeArgs=int*/ [1]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.expect
index c16d9c4..377b16c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
+// ^
//
import self as self;
import "dart:core" as core;
static method test() → void {
- core::List<core::int*>* l;
- l = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
- ^" in "hello" as{TypeError} core::int*];
- l = l = <core::int*>[1];
+ core::List<core::int> l;
+ l = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int];
+ l = l = <core::int>[1];
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.modular.expect
index c16d9c4..377b16c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.modular.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
+// ^
//
import self as self;
import "dart:core" as core;
static method test() → void {
- core::List<core::int*>* l;
- l = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
- ^" in "hello" as{TypeError} core::int*];
- l = l = <core::int*>[1];
+ core::List<core::int> l;
+ l = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int];
+ l = l = <core::int>[1];
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.transformed.expect
index 4f1b279..1234982 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart.weak.transformed.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"];
+// ^
//
import self as self;
import "dart:core" as core;
static method test() → void {
- core::List<core::int*>* l;
- l = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- l = /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
- ^" in "hello" as{TypeError} core::int*);
- l = l = core::_GrowableList::_literal1<core::int*>(1);
+ core::List<core::int> l;
+ l = core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_assignment_statements.dart:10:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ l = /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"];
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ l = l = core::_GrowableList::_literal1<core::int>(1);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart
index 4ebd7ac..4baff59 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
Future main() async {
dynamic d;
- List<int> l0 = await /*@ typeArgs=int* */ [/*info:DYNAMIC_CAST*/ d];
- List<int> l1 = await new /*@ typeArgs=List<int*>* */ Future.value(
- /*@ typeArgs=int* */ [d]);
+ List<int> l0 = await /*@typeArgs=int*/ [/*info:DYNAMIC_CAST*/ d];
+ List<int> l1 =
+ await new /*@typeArgs=List<int>*/ Future.value(/*@typeArgs=int*/ [d]);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline.expect
index 43e5899..122c5de 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline_modelled.expect
index 43e5899..122c5de 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.expect
index 031ded2..52c1ca8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method main() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method main() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
dynamic d;
- core::List<core::int*>* l0 = await<core::int*>[d as{TypeError,ForDynamic} core::int*];
- core::List<core::int*>* l1 = await asy::Future::value<core::List<core::int*>*>(<core::int*>[d as{TypeError,ForDynamic} core::int*]);
+ core::List<core::int> l0 = await<core::int>[d as{TypeError,ForDynamic,ForNonNullableByDefault} core::int];
+ core::List<core::int> l1 = await asy::Future::value<core::List<core::int>>(<core::int>[d as{TypeError,ForDynamic,ForNonNullableByDefault} core::int]);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.modular.expect
index 031ded2..52c1ca8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method main() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method main() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
dynamic d;
- core::List<core::int*>* l0 = await<core::int*>[d as{TypeError,ForDynamic} core::int*];
- core::List<core::int*>* l1 = await asy::Future::value<core::List<core::int*>*>(<core::int*>[d as{TypeError,ForDynamic} core::int*]);
+ core::List<core::int> l0 = await<core::int>[d as{TypeError,ForDynamic,ForNonNullableByDefault} core::int];
+ core::List<core::int> l1 = await asy::Future::value<core::List<core::int>>(<core::int>[d as{TypeError,ForDynamic,ForNonNullableByDefault} core::int]);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.outline.expect
index 55795d5..e7fb778 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:async";
-static method main() → asy::Future<dynamic>* async
+static method main() → asy::Future<dynamic> async
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.transformed.expect
index 9b9355c..80948f4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_async_await.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method main() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method main() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
dynamic d;
- core::List<core::int*>* l0 = await core::_GrowableList::_literal1<core::int*>(d as{TypeError,ForDynamic} core::int*);
- core::List<core::int*>* l1 = await asy::Future::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(d as{TypeError,ForDynamic} core::int*));
+ core::List<core::int> l0 = await core::_GrowableList::_literal1<core::int>(d as{TypeError,ForDynamic,ForNonNullableByDefault} core::int);
+ core::List<core::int> l1 = await asy::Future::value<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(d as{TypeError,ForDynamic,ForNonNullableByDefault} core::int));
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart
index ae50255..7718b3a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart
@@ -1,37 +1,37 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
-T F<T>() => null;
+T F<T>() => throw '';
Future f() async {
dynamic d;
Object o;
- for (var /*@ type=dynamic */ x in /*@ typeArgs=Iterable<dynamic>* */ F()) {}
- for (dynamic x in /*@ typeArgs=Iterable<dynamic>* */ F()) {}
- for (Object x in /*@ typeArgs=Iterable<Object*>* */ F()) {}
- for (d in /*@ typeArgs=Iterable<dynamic>* */ F()) {}
- for (o in /*@ typeArgs=Iterable<Object*>* */ F()) {}
- await for (var /*@ type=dynamic */ x in /*@ typeArgs=Stream<dynamic>* */ F()) {}
- await for (dynamic x in /*@ typeArgs=Stream<dynamic>* */ F()) {}
- await for (Object x in /*@ typeArgs=Stream<Object*>* */ F()) {}
- await for (d in /*@ typeArgs=Stream<dynamic>* */ F()) {}
- await for (o in /*@ typeArgs=Stream<Object*>* */ F()) {}
+ for (var /*@type=Object?*/ x in /*@typeArgs=Iterable<Object?>*/ F()) {}
+ for (dynamic x in /*@typeArgs=Iterable<dynamic>*/ F()) {}
+ for (Object x in /*@typeArgs=Iterable<Object>*/ F()) {}
+ for (d in /*@typeArgs=Iterable<dynamic>*/ F()) {}
+ for (o in /*@typeArgs=Iterable<Object>*/ F()) {}
+ await for (var /*@type=Object?*/ x in /*@typeArgs=Stream<Object?>*/ F()) {}
+ await for (dynamic x in /*@typeArgs=Stream<dynamic>*/ F()) {}
+ await for (Object x in /*@typeArgs=Stream<Object>*/ F()) {}
+ await for (d in /*@typeArgs=Stream<dynamic>*/ F()) {}
+ await for (o in /*@typeArgs=Stream<Object>*/ F()) {}
}
Future main() async {
- for (int x in /*@ typeArgs=int* */ [1, 2, 3]) {}
- for (num x in /*@ typeArgs=num* */ [1, 2, 3]) {}
- for (var /*@ type=int* */ x in /*@ typeArgs=int* */ [1, 2, 3]) {}
- await for (int x in new /*@ typeArgs=int* */ MyStream()) {}
- await for (var /*@ type=int* */ x in new MyStream<int>()) {}
+ for (int x in /*@typeArgs=int*/ [1, 2, 3]) {}
+ for (num x in /*@typeArgs=num*/ [1, 2, 3]) {}
+ for (var /*@type=int*/ x in /*@typeArgs=int*/ [1, 2, 3]) {}
+ await for (int x in new /*@typeArgs=int*/ MyStream()) {}
+ await for (var /*@type=int*/ x in new MyStream<int>()) {}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline.expect
index 8927e57..7acdb8a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
import 'dart:async';
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
-T F<T>() => null;
+T F<T>() => throw '';
Future f() async {}
Future main() async {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline_modelled.expect
index 036efeb..208f895 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
import 'dart:async';
Future f() async {}
Future main() async {}
-T F<T>() => null;
+T F<T>() => throw '';
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.expect
index 6d06f17..c9c2491 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.expect
@@ -1,105 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
-static method F<T extends core::Object* = dynamic>() → self::F::T*
- return null;
-static method f() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method F<T extends core::Object? = dynamic>() → self::F::T%
+ return throw "";
+static method f() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
dynamic d;
- core::Object* o;
- for (dynamic x in self::F<core::Iterable<dynamic>*>()) {
+ core::Object o;
+ for (core::Object? x in self::F<core::Iterable<core::Object?>>()) {
}
- for (dynamic x in self::F<core::Iterable<dynamic>*>()) {
+ for (dynamic x in self::F<core::Iterable<dynamic>>()) {
}
- for (core::Object* x in self::F<core::Iterable<core::Object*>*>()) {
+ for (core::Object x in self::F<core::Iterable<core::Object>>()) {
}
- for (final dynamic #t1 in self::F<core::Iterable<dynamic>*>()) {
+ for (final dynamic #t1 in self::F<core::Iterable<dynamic>>()) {
d = #t1;
}
- for (final core::Object* #t2 in self::F<core::Iterable<core::Object*>*>()) {
+ for (final core::Object #t2 in self::F<core::Iterable<core::Object>>()) {
o = #t2;
}
- await for (dynamic x in self::F<asy::Stream<dynamic>*>()) {
+ await for (core::Object? x in self::F<asy::Stream<core::Object?>>()) {
}
- await for (dynamic x in self::F<asy::Stream<dynamic>*>()) {
+ await for (dynamic x in self::F<asy::Stream<dynamic>>()) {
}
- await for (core::Object* x in self::F<asy::Stream<core::Object*>*>()) {
+ await for (core::Object x in self::F<asy::Stream<core::Object>>()) {
}
- await for (final dynamic #t3 in self::F<asy::Stream<dynamic>*>()) {
+ await for (final dynamic #t3 in self::F<asy::Stream<dynamic>>()) {
d = #t3;
}
- await for (final core::Object* #t4 in self::F<asy::Stream<core::Object*>*>()) {
+ await for (final core::Object #t4 in self::F<asy::Stream<core::Object>>()) {
o = #t4;
}
}
-static method main() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
- for (core::int* x in <core::int*>[1, 2, 3]) {
+static method main() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
+ for (core::int x in <core::int>[1, 2, 3]) {
}
- for (core::num* x in <core::num*>[1, 2, 3]) {
+ for (core::num x in <core::num>[1, 2, 3]) {
}
- for (core::int* x in <core::int*>[1, 2, 3]) {
+ for (core::int x in <core::int>[1, 2, 3]) {
}
- await for (core::int* x in self::MyStream::•<core::int*>()) {
+ await for (core::int x in self::MyStream::•<core::int>()) {
}
- await for (core::int* x in self::MyStream::•<core::int*>()) {
+ await for (core::int x in self::MyStream::•<core::int>()) {
}
}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.modular.expect
index 6d06f17..c9c2491 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.modular.expect
@@ -1,105 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
-static method F<T extends core::Object* = dynamic>() → self::F::T*
- return null;
-static method f() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method F<T extends core::Object? = dynamic>() → self::F::T%
+ return throw "";
+static method f() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
dynamic d;
- core::Object* o;
- for (dynamic x in self::F<core::Iterable<dynamic>*>()) {
+ core::Object o;
+ for (core::Object? x in self::F<core::Iterable<core::Object?>>()) {
}
- for (dynamic x in self::F<core::Iterable<dynamic>*>()) {
+ for (dynamic x in self::F<core::Iterable<dynamic>>()) {
}
- for (core::Object* x in self::F<core::Iterable<core::Object*>*>()) {
+ for (core::Object x in self::F<core::Iterable<core::Object>>()) {
}
- for (final dynamic #t1 in self::F<core::Iterable<dynamic>*>()) {
+ for (final dynamic #t1 in self::F<core::Iterable<dynamic>>()) {
d = #t1;
}
- for (final core::Object* #t2 in self::F<core::Iterable<core::Object*>*>()) {
+ for (final core::Object #t2 in self::F<core::Iterable<core::Object>>()) {
o = #t2;
}
- await for (dynamic x in self::F<asy::Stream<dynamic>*>()) {
+ await for (core::Object? x in self::F<asy::Stream<core::Object?>>()) {
}
- await for (dynamic x in self::F<asy::Stream<dynamic>*>()) {
+ await for (dynamic x in self::F<asy::Stream<dynamic>>()) {
}
- await for (core::Object* x in self::F<asy::Stream<core::Object*>*>()) {
+ await for (core::Object x in self::F<asy::Stream<core::Object>>()) {
}
- await for (final dynamic #t3 in self::F<asy::Stream<dynamic>*>()) {
+ await for (final dynamic #t3 in self::F<asy::Stream<dynamic>>()) {
d = #t3;
}
- await for (final core::Object* #t4 in self::F<asy::Stream<core::Object*>*>()) {
+ await for (final core::Object #t4 in self::F<asy::Stream<core::Object>>()) {
o = #t4;
}
}
-static method main() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
- for (core::int* x in <core::int*>[1, 2, 3]) {
+static method main() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
+ for (core::int x in <core::int>[1, 2, 3]) {
}
- for (core::num* x in <core::num*>[1, 2, 3]) {
+ for (core::num x in <core::num>[1, 2, 3]) {
}
- for (core::int* x in <core::int*>[1, 2, 3]) {
+ for (core::int x in <core::int>[1, 2, 3]) {
}
- await for (core::int* x in self::MyStream::•<core::int*>()) {
+ await for (core::int x in self::MyStream::•<core::int>()) {
}
- await for (core::int* x in self::MyStream::•<core::int*>()) {
+ await for (core::int x in self::MyStream::•<core::int>()) {
}
}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.outline.expect
index 8b72842..5c80fc4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.outline.expect
@@ -1,64 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError, () →* void onDone, core::bool* cancelOnError}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
}
-static method F<T extends core::Object* = dynamic>() → self::F::T*
+static method F<T extends core::Object? = dynamic>() → self::F::T%
;
-static method f() → asy::Future<dynamic>* async
+static method f() → asy::Future<dynamic> async
;
-static method main() → asy::Future<dynamic>* async
+static method main() → asy::Future<dynamic> async
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.transformed.expect
index e9a5f94..2973ad5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_for_each.dart.weak.transformed.expect
@@ -1,89 +1,42 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
-static method F<T extends core::Object* = dynamic>() → self::F::T*
- return null;
-static method f() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method F<T extends core::Object? = dynamic>() → self::F::T%
+ return throw "";
+static method f() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
dynamic d;
- core::Object* o;
+ core::Object o;
{
- core::Iterator<dynamic>* :sync-for-iterator = self::F<core::Iterable<dynamic>*>().{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ core::Iterator<core::Object?> :sync-for-iterator = self::F<core::Iterable<core::Object?>>().{core::Iterable::iterator}{core::Iterator<core::Object?>};
+ for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+ core::Object? x = :sync-for-iterator.{core::Iterator::current}{core::Object?};
+ {}
+ }
+ }
+ {
+ core::Iterator<dynamic> :sync-for-iterator = self::F<core::Iterable<dynamic>>().{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic x = :sync-for-iterator.{core::Iterator::current}{dynamic};
{}
}
}
{
- core::Iterator<dynamic>* :sync-for-iterator = self::F<core::Iterable<dynamic>*>().{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ core::Iterator<core::Object> :sync-for-iterator = self::F<core::Iterable<core::Object>>().{core::Iterable::iterator}{core::Iterator<core::Object>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- dynamic x = :sync-for-iterator.{core::Iterator::current}{dynamic};
+ core::Object x = :sync-for-iterator.{core::Iterator::current}{core::Object};
{}
}
}
{
- core::Iterator<core::Object*>* :sync-for-iterator = self::F<core::Iterable<core::Object*>*>().{core::Iterable::iterator}{core::Iterator<core::Object*>*};
- for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- core::Object* x = :sync-for-iterator.{core::Iterator::current}{core::Object*};
- {}
- }
- }
- {
- core::Iterator<dynamic>* :sync-for-iterator = self::F<core::Iterable<dynamic>*>().{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ core::Iterator<dynamic> :sync-for-iterator = self::F<core::Iterable<dynamic>>().{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t1 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
@@ -92,29 +45,29 @@
}
}
{
- core::Iterator<core::Object*>* :sync-for-iterator = self::F<core::Iterable<core::Object*>*>().{core::Iterable::iterator}{core::Iterator<core::Object*>*};
+ core::Iterator<core::Object> :sync-for-iterator = self::F<core::Iterable<core::Object>>().{core::Iterable::iterator}{core::Iterator<core::Object>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final core::Object* #t2 = :sync-for-iterator.{core::Iterator::current}{core::Object*};
+ final core::Object #t2 = :sync-for-iterator.{core::Iterator::current}{core::Object};
{
o = #t2;
}
}
}
{
- asy::Stream<dynamic>* :stream = self::F<asy::Stream<dynamic>*>();
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ asy::Stream<core::Object?> :stream = self::F<asy::Stream<core::Object?>>();
+ asy::_StreamIterator<core::Object?>? :for-iterator = new asy::_StreamIterator::•<core::Object?>(:stream);
try
while (let dynamic #t3 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- dynamic x = :for-iterator.{asy::_StreamIterator::current}{dynamic};
+ core::Object? x = :for-iterator.{asy::_StreamIterator::current}{core::Object?};
{}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::Object?>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- asy::Stream<dynamic>* :stream = self::F<asy::Stream<dynamic>*>();
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ asy::Stream<dynamic> :stream = self::F<asy::Stream<dynamic>>();
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t4 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
dynamic x = :for-iterator.{asy::_StreamIterator::current}{dynamic};
@@ -125,20 +78,20 @@
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- asy::Stream<core::Object*>* :stream = self::F<asy::Stream<core::Object*>*>();
- asy::_StreamIterator<core::Object*>* :for-iterator = new asy::_StreamIterator::•<core::Object*>(:stream);
+ asy::Stream<core::Object> :stream = self::F<asy::Stream<core::Object>>();
+ asy::_StreamIterator<core::Object>? :for-iterator = new asy::_StreamIterator::•<core::Object>(:stream);
try
while (let dynamic #t5 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- core::Object* x = :for-iterator.{asy::_StreamIterator::current}{core::Object*};
+ core::Object x = :for-iterator.{asy::_StreamIterator::current}{core::Object};
{}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::Object*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::Object>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- asy::Stream<dynamic>* :stream = self::F<asy::Stream<dynamic>*>();
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ asy::Stream<dynamic> :stream = self::F<asy::Stream<dynamic>>();
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t6 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
final dynamic #t7 = :for-iterator.{asy::_StreamIterator::current}{dynamic};
@@ -151,69 +104,64 @@
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- asy::Stream<core::Object*>* :stream = self::F<asy::Stream<core::Object*>*>();
- asy::_StreamIterator<core::Object*>* :for-iterator = new asy::_StreamIterator::•<core::Object*>(:stream);
+ asy::Stream<core::Object> :stream = self::F<asy::Stream<core::Object>>();
+ asy::_StreamIterator<core::Object>? :for-iterator = new asy::_StreamIterator::•<core::Object>(:stream);
try
while (let dynamic #t8 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final core::Object* #t9 = :for-iterator.{asy::_StreamIterator::current}{core::Object*};
+ final core::Object #t9 = :for-iterator.{asy::_StreamIterator::current}{core::Object};
{
o = #t9;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::Object*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::Object>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
}
-static method main() → asy::Future<dynamic>* async /* futureValueType= dynamic */ {
+static method main() → asy::Future<dynamic> async /* futureValueType= dynamic */ {
{
- core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+ core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- core::int* x = :sync-for-iterator.{core::Iterator::current}{core::int*};
+ core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
{}
}
}
{
- core::Iterator<core::num*>* :sync-for-iterator = core::_GrowableList::_literal3<core::num*>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::num*>*};
+ core::Iterator<core::num> :sync-for-iterator = core::_GrowableList::_literal3<core::num>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::num>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- core::num* x = :sync-for-iterator.{core::Iterator::current}{core::num*};
+ core::num x = :sync-for-iterator.{core::Iterator::current}{core::num};
{}
}
}
{
- core::Iterator<core::int*>* :sync-for-iterator = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int*>*};
+ core::Iterator<core::int> :sync-for-iterator = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::iterator}{core::Iterator<core::int>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- core::int* x = :sync-for-iterator.{core::Iterator::current}{core::int*};
+ core::int x = :sync-for-iterator.{core::Iterator::current}{core::int};
{}
}
}
{
- self::MyStream<core::int*>* :stream = self::MyStream::•<core::int*>();
- asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
+ self::MyStream<core::int> :stream = self::MyStream::•<core::int>();
+ asy::_StreamIterator<core::int>? :for-iterator = new asy::_StreamIterator::•<core::int>(:stream);
try
while (let dynamic #t10 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- core::int* x = :for-iterator.{asy::_StreamIterator::current}{core::int*};
+ core::int x = :for-iterator.{asy::_StreamIterator::current}{core::int};
{}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- self::MyStream<core::int*>* :stream = self::MyStream::•<core::int*>();
- asy::_StreamIterator<core::int*>* :for-iterator = new asy::_StreamIterator::•<core::int*>(:stream);
+ self::MyStream<core::int> :stream = self::MyStream::•<core::int>();
+ asy::_StreamIterator<core::int>? :for-iterator = new asy::_StreamIterator::•<core::int>(:stream);
try
while (let dynamic #t11 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- core::int* x = :for-iterator.{asy::_StreamIterator::current}{core::int*};
+ core::int x = :for-iterator.{asy::_StreamIterator::current}{core::int};
{}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::int>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart
index 95feae8..ce900d0 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,14 +9,14 @@
class Foo {
List<int> x;
- Foo([this.x = /*@ typeArgs=int* */ const [1]]);
- Foo.named([List<int> x = /*@ typeArgs=int* */ const [1]]);
+ Foo([this.x = /*@typeArgs=int*/ const [1]]);
+ Foo.named([List<int> x = /*@typeArgs=int*/ const [1]]) : this.x = x;
}
-void f([List<int> l = /*@ typeArgs=int* */ const [1]]) {}
+void f([List<int> l = /*@typeArgs=int*/ const [1]]) {}
// We do this inference in an early task but don't preserve the infos.
-Function2<List<int>, String> g = /*@ returnType=String* */ (
- [/*@ type=List<int*>* */ llll = /*@ typeArgs=int* */ const [1]]) =>
+Function2<List<int>, String> g = /*@returnType=String*/ (
+ [/*@type=List<int>*/ llll = /*@typeArgs=int*/ const [1]]) =>
"hello";
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline.expect
index bdfd52e..27d0ae8 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef T Function2<S, T>([S x]);
@@ -6,7 +5,7 @@
class Foo {
List<int> x;
Foo([this.x = const [1]]);
- Foo.named([List<int> x = const [1]]);
+ Foo.named([List<int> x = const [1]]) : this.x = x;
}
void f([List<int> l = const [1]]) {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline_modelled.expect
index 450e126..86b443e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.textual_outline_modelled.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
library test;
Function2<List<int>, String> g = ([llll = const [1]]) => "hello";
class Foo {
Foo([this.x = const [1]]);
- Foo.named([List<int> x = const [1]]);
+ Foo.named([List<int> x = const [1]]) : this.x = x;
List<int> x;
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.expect
index 1283bb2..72f1d8b 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = ([S%]) → T%;
class Foo extends core::Object {
- field core::List<core::int*>* x;
- constructor •([core::List<core::int*>* x = #C2]) → self::Foo*
+ field core::List<core::int> x;
+ constructor •([core::List<core::int> x = #C2]) → self::Foo
: self::Foo::x = x, super core::Object::•()
;
- constructor named([core::List<core::int*>* x = #C2]) → self::Foo*
- : self::Foo::x = null, super core::Object::•()
+ constructor named([core::List<core::int> x = #C2]) → self::Foo
+ : self::Foo::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field ([core::List<core::int*>*]) →* core::String* g = ([core::List<core::int*>* llll = #C2]) → core::String* => "hello";
-static method f([core::List<core::int*>* l = #C2]) → void {}
+static field ([core::List<core::int>]) → core::String g = ([core::List<core::int> llll = #C2]) → core::String => "hello";
+static method f([core::List<core::int> l = #C2]) → void {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.modular.expect
index 1283bb2..72f1d8b 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = ([S%]) → T%;
class Foo extends core::Object {
- field core::List<core::int*>* x;
- constructor •([core::List<core::int*>* x = #C2]) → self::Foo*
+ field core::List<core::int> x;
+ constructor •([core::List<core::int> x = #C2]) → self::Foo
: self::Foo::x = x, super core::Object::•()
;
- constructor named([core::List<core::int*>* x = #C2]) → self::Foo*
- : self::Foo::x = null, super core::Object::•()
+ constructor named([core::List<core::int> x = #C2]) → self::Foo
+ : self::Foo::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field ([core::List<core::int*>*]) →* core::String* g = ([core::List<core::int*>* llll = #C2]) → core::String* => "hello";
-static method f([core::List<core::int*>* l = #C2]) → void {}
+static field ([core::List<core::int>]) → core::String g = ([core::List<core::int> llll = #C2]) → core::String => "hello";
+static method f([core::List<core::int> l = #C2]) → void {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.outline.expect
index a132459..c298228 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.outline.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = ([S%]) → T%;
class Foo extends core::Object {
- field core::List<core::int*>* x;
- constructor •([core::List<core::int*>* x = const <core::int*>[1]]) → self::Foo*
+ field core::List<core::int> x;
+ constructor •([core::List<core::int> x = const <core::int>[1]]) → self::Foo
;
- constructor named([core::List<core::int*>* x = const <core::int*>[1]]) → self::Foo*
+ constructor named([core::List<core::int> x = const <core::int>[1]]) → self::Foo
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field ([core::List<core::int*>*]) →* core::String* g;
-static method f([has-declared-initializer core::List<core::int*>* l]) → void
+static field ([core::List<core::int>]) → core::String g;
+static method f([has-declared-initializer core::List<core::int> l]) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: ListLiteral @ org-dartlang-testcase:///downwards_inference_initializing_formal_default_formal.dart:12:38 -> ListConstant(const <int*>[1])
-Evaluated: ListLiteral @ org-dartlang-testcase:///downwards_inference_initializing_formal_default_formal.dart:13:49 -> ListConstant(const <int*>[1])
+Evaluated: ListLiteral @ org-dartlang-testcase:///downwards_inference_initializing_formal_default_formal.dart:12:35 -> ListConstant(const <int*>[1])
+Evaluated: ListLiteral @ org-dartlang-testcase:///downwards_inference_initializing_formal_default_formal.dart:13:46 -> ListConstant(const <int*>[1])
Extra constant evaluation: evaluated: 2, effectively constant: 2
diff --git a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.transformed.expect
index 1283bb2..72f1d8b 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_initializing_formal_default_formal.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = ([S*]) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = ([S%]) → T%;
class Foo extends core::Object {
- field core::List<core::int*>* x;
- constructor •([core::List<core::int*>* x = #C2]) → self::Foo*
+ field core::List<core::int> x;
+ constructor •([core::List<core::int> x = #C2]) → self::Foo
: self::Foo::x = x, super core::Object::•()
;
- constructor named([core::List<core::int*>* x = #C2]) → self::Foo*
- : self::Foo::x = null, super core::Object::•()
+ constructor named([core::List<core::int> x = #C2]) → self::Foo
+ : self::Foo::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field ([core::List<core::int*>*]) →* core::String* g = ([core::List<core::int*>* llll = #C2]) → core::String* => "hello";
-static method f([core::List<core::int*>* l = #C2]) → void {}
+static field ([core::List<core::int>]) → core::String g = ([core::List<core::int> llll = #C2]) → core::String => "hello";
+static method f([core::List<core::int> l = #C2]) → void {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart
index 5cba3e8..ff9d767 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart
@@ -1,19 +1,19 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- B<int> b;
+ late B<int> b;
}
class B<T> {
B(T x);
}
-var t1 = new A().. /*@target=A.b*/ b = new /*@ typeArgs=int* */ B(1);
-var t2 = <B<int>>[new /*@ typeArgs=int* */ B(2)];
+var t1 = new A().. /*@target=A.b*/ b = new /*@typeArgs=int*/ B(1);
+var t2 = <B<int>>[new /*@typeArgs=int*/ B(2)];
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline.expect
index 85e66f8..8ab9e1a 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- B<int> b;
+ late B<int> b;
}
class B<T> {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect
index 142e356..5c360c1 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- B<int> b;
+ late B<int> b;
}
class B<T> {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.expect
index c66599a..ddce8f7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ late field self::B<core::int> b;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* t1 = let final self::A* #t1 = new self::A::•() in block {
- #t1.{self::A::b} = new self::B::•<core::int*>(1);
+static field self::A t1 = let final self::A #t1 = new self::A::•() in block {
+ #t1.{self::A::b} = new self::B::•<core::int>(1);
} =>#t1;
-static field core::List<self::B<core::int*>*>* t2 = <self::B<core::int*>*>[new self::B::•<core::int*>(2)];
+static field core::List<self::B<core::int>> t2 = <self::B<core::int>>[new self::B::•<core::int>(2)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.modular.expect
index c66599a..ddce8f7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ late field self::B<core::int> b;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* t1 = let final self::A* #t1 = new self::A::•() in block {
- #t1.{self::A::b} = new self::B::•<core::int*>(1);
+static field self::A t1 = let final self::A #t1 = new self::A::•() in block {
+ #t1.{self::A::b} = new self::B::•<core::int>(1);
} =>#t1;
-static field core::List<self::B<core::int*>*>* t2 = <self::B<core::int*>*>[new self::B::•<core::int*>(2)];
+static field core::List<self::B<core::int>> t2 = <self::B<core::int>>[new self::B::•<core::int>(2)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.outline.expect
index d5b65c4..5f8aff4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b;
- synthetic constructor •() → self::A*
+ late field self::B<core::int> b;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* t1;
-static field core::List<self::B<core::int*>*>* t2;
+static field self::A t1;
+static field core::List<self::B<core::int>> t2;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.transformed.expect
index dd5383b..af752dc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ late field self::B<core::int> b;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* t1 = let final self::A* #t1 = new self::A::•() in block {
- #t1.{self::A::b} = new self::B::•<core::int*>(1);
+static field self::A t1 = let final self::A #t1 = new self::A::•() in block {
+ #t1.{self::A::b} = new self::B::•<core::int>(1);
} =>#t1;
-static field core::List<self::B<core::int*>*>* t2 = core::_GrowableList::_literal1<self::B<core::int*>*>(new self::B::•<core::int*>(2));
+static field core::List<self::B<core::int>> t2 = core::_GrowableList::_literal1<self::B<core::int>>(new self::B::•<core::int>(2));
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart
index 358dccc..aec027f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,6 +9,6 @@
A(T x);
}
-var t1 = <A<int>>[new /*@ typeArgs=int* */ A(1)];
+var t1 = <A<int>>[new /*@typeArgs=int*/ A(1)];
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline.expect
index db8f06b..0c60385 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect
index 4191a01..84d90fc 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.expect
index 69f8074..50e399e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t1 = <self::A<core::int*>*>[new self::A::•<core::int*>(1)];
+static field core::List<self::A<core::int>> t1 = <self::A<core::int>>[new self::A::•<core::int>(1)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.modular.expect
index 69f8074..50e399e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t1 = <self::A<core::int*>*>[new self::A::•<core::int*>(1)];
+static field core::List<self::A<core::int>> t1 = <self::A<core::int>>[new self::A::•<core::int>(1)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.outline.expect
index 73c7a83..372daf9 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t1;
+static field core::List<self::A<core::int>> t1;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.transformed.expect
index 425c3c2..3a0b539 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_inside_top_level_2.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t1 = core::_GrowableList::_literal1<self::A<core::int*>*>(new self::A::•<core::int*>(1));
+static field core::List<self::A<core::int>> t1 = core::_GrowableList::_literal1<self::A<core::int>>(new self::A::•<core::int>(1));
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart
index 32cc135..c9e4eaa 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
class F1 {
- F1({List<int> a}) {}
+ F1({required List<int> a}) {}
}
class F2 {
@@ -22,60 +22,60 @@
}
class F4 {
- F4({Iterable<Iterable<int>> a}) {}
+ F4({required Iterable<Iterable<int>> a}) {}
}
void test() {
- new F0(/*@ typeArgs=int* */ []);
- new F0(/*@ typeArgs=int* */ [3]);
+ new F0(/*@typeArgs=int*/ []);
+ new F0(/*@typeArgs=int*/ [3]);
new F0(
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- new F0(/*@ typeArgs=int* */ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ new F0(/*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- new F1(a: /*@ typeArgs=int* */ []);
- new F1(a: /*@ typeArgs=int* */ [3]);
- new F1(a: /*@ typeArgs=int* */ [
+ new F1(a: /*@typeArgs=int*/ []);
+ new F1(a: /*@typeArgs=int*/ [3]);
+ new F1(a: /*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
]);
- new F1(a: /*@ typeArgs=int* */ [
+ new F1(a: /*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- new F2(/*@ typeArgs=int* */ []);
- new F2(/*@ typeArgs=int* */ [3]);
+ new F2(/*@typeArgs=int*/ []);
+ new F2(/*@typeArgs=int*/ [3]);
new F2(
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- new F2(/*@ typeArgs=int* */ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ new F2(/*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- new F3(/*@ typeArgs=Iterable<int*>* */ []);
- new F3(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ new F3(/*@typeArgs=Iterable<int>*/ []);
+ new F3(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- new F3(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+ new F3(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
]);
- new F3(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
- /*@ typeArgs=int* */ [3]
+ new F3(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+ /*@typeArgs=int*/ [3]
]);
- new F4(a: /*@ typeArgs=Iterable<int*>* */ []);
- new F4(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ new F4(a: /*@typeArgs=Iterable<int>*/ []);
+ new F4(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- new F4(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+ new F4(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
]);
- new F4(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
- /*@ typeArgs=int* */ [3]
+ new F4(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+ /*@typeArgs=int*/ [3]
]);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline.expect
index 46e2c41..8f6abae 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class F0 {
@@ -6,7 +5,7 @@
}
class F1 {
- F1({List<int> a}) {}
+ F1({required List<int> a}) {}
}
class F2 {
@@ -18,7 +17,7 @@
}
class F4 {
- F4({Iterable<Iterable<int>> a}) {}
+ F4({required Iterable<Iterable<int>> a}) {}
}
void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect
index 80a1502..ab2e691 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class F0 {
@@ -6,7 +5,7 @@
}
class F1 {
- F1({List<int> a}) {}
+ F1({required List<int> a}) {}
}
class F2 {
@@ -18,7 +17,7 @@
}
class F4 {
- F4({Iterable<Iterable<int>> a}) {}
+ F4({required Iterable<Iterable<int>> a}) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.expect
index 3550c19..c762419 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
@@ -18,144 +18,94 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
class F0 extends core::Object {
- constructor •(core::List<core::int*>* a) → self::F0*
+ constructor •(core::List<core::int> a) → self::F0
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F1 extends core::Object {
- constructor •({core::List<core::int*>* a = #C1}) → self::F1*
+ constructor •({required core::List<core::int> a = #C1}) → self::F1
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F2 extends core::Object {
- constructor •(core::Iterable<core::int*>* a) → self::F2*
+ constructor •(core::Iterable<core::int> a) → self::F2
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F3 extends core::Object {
- constructor •(core::Iterable<core::Iterable<core::int*>*>* a) → self::F3*
+ constructor •(core::Iterable<core::Iterable<core::int>> a) → self::F3
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F4 extends core::Object {
- constructor •({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → self::F4*
+ constructor •({required core::Iterable<core::Iterable<core::int>> a = #C1}) → self::F4
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- new self::F0::•(<core::int*>[]);
- new self::F0::•(<core::int*>[3]);
- new self::F0::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F0::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ new self::F0::•(<core::int>[]);
+ new self::F0::•(<core::int>[3]);
+ new self::F0::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F0::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F1::•(a: <core::int*>[]);
- new self::F1::•(a: <core::int*>[3]);
- new self::F1::•(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F1::•(a: <core::int>[]);
+ new self::F1::•(a: <core::int>[3]);
+ new self::F1::•(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*]);
- new self::F1::•(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F1::•(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F2::•(<core::int*>[]);
- new self::F2::•(<core::int*>[3]);
- new self::F2::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F2::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F2::•(<core::int>[]);
+ new self::F2::•(<core::int>[3]);
+ new self::F2::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F2::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F3::•(<core::Iterable<core::int*>*>[]);
- new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F3::•(<core::Iterable<core::int>>[]);
+ new self::F3::•(<core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F3::•(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F3::•(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ new self::F4::•(a: <core::Iterable<core::int>>[]);
+ new self::F4::•(a: <core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F4::•(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F4::•(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.modular.expect
index 3550c19..c762419 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
@@ -18,144 +18,94 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
class F0 extends core::Object {
- constructor •(core::List<core::int*>* a) → self::F0*
+ constructor •(core::List<core::int> a) → self::F0
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F1 extends core::Object {
- constructor •({core::List<core::int*>* a = #C1}) → self::F1*
+ constructor •({required core::List<core::int> a = #C1}) → self::F1
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F2 extends core::Object {
- constructor •(core::Iterable<core::int*>* a) → self::F2*
+ constructor •(core::Iterable<core::int> a) → self::F2
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F3 extends core::Object {
- constructor •(core::Iterable<core::Iterable<core::int*>*>* a) → self::F3*
+ constructor •(core::Iterable<core::Iterable<core::int>> a) → self::F3
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F4 extends core::Object {
- constructor •({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → self::F4*
+ constructor •({required core::Iterable<core::Iterable<core::int>> a = #C1}) → self::F4
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- new self::F0::•(<core::int*>[]);
- new self::F0::•(<core::int*>[3]);
- new self::F0::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F0::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ new self::F0::•(<core::int>[]);
+ new self::F0::•(<core::int>[3]);
+ new self::F0::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F0::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F1::•(a: <core::int*>[]);
- new self::F1::•(a: <core::int*>[3]);
- new self::F1::•(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F1::•(a: <core::int>[]);
+ new self::F1::•(a: <core::int>[3]);
+ new self::F1::•(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*]);
- new self::F1::•(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F1::•(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F2::•(<core::int*>[]);
- new self::F2::•(<core::int*>[3]);
- new self::F2::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F2::•(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F2::•(<core::int>[]);
+ new self::F2::•(<core::int>[3]);
+ new self::F2::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F2::•(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F3::•(<core::Iterable<core::int*>*>[]);
- new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F3::•(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F4::•(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F3::•(<core::Iterable<core::int>>[]);
+ new self::F3::•(<core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F3::•(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F3::•(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ new self::F4::•(a: <core::Iterable<core::int>>[]);
+ new self::F4::•(a: <core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F4::•(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F4::•(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.outline.expect
index f77a3ad..72e6292 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.outline.expect
@@ -1,76 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class F0 extends core::Object {
- constructor •(core::List<core::int*>* a) → self::F0*
+ constructor •(core::List<core::int> a) → self::F0
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F1 extends core::Object {
- constructor •({core::List<core::int*>* a = null}) → self::F1*
+ constructor •({required core::List<core::int> a = null}) → self::F1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F2 extends core::Object {
- constructor •(core::Iterable<core::int*>* a) → self::F2*
+ constructor •(core::Iterable<core::int> a) → self::F2
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F3 extends core::Object {
- constructor •(core::Iterable<core::Iterable<core::int*>*>* a) → self::F3*
+ constructor •(core::Iterable<core::Iterable<core::int>> a) → self::F3
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F4 extends core::Object {
- constructor •({core::Iterable<core::Iterable<core::int*>*>* a = null}) → self::F4*
+ constructor •({required core::Iterable<core::Iterable<core::int>> a = null}) → self::F4
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.transformed.expect
index e7bd5e3..95174f5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
@@ -18,144 +18,94 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
class F0 extends core::Object {
- constructor •(core::List<core::int*>* a) → self::F0*
+ constructor •(core::List<core::int> a) → self::F0
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F1 extends core::Object {
- constructor •({core::List<core::int*>* a = #C1}) → self::F1*
+ constructor •({required core::List<core::int> a = #C1}) → self::F1
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F2 extends core::Object {
- constructor •(core::Iterable<core::int*>* a) → self::F2*
+ constructor •(core::Iterable<core::int> a) → self::F2
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F3 extends core::Object {
- constructor •(core::Iterable<core::Iterable<core::int*>*>* a) → self::F3*
+ constructor •(core::Iterable<core::Iterable<core::int>> a) → self::F3
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F4 extends core::Object {
- constructor •({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → self::F4*
+ constructor •({required core::Iterable<core::Iterable<core::int>> a = #C1}) → self::F4
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- new self::F0::•(core::_GrowableList::•<core::int*>(0));
- new self::F0::•(core::_GrowableList::_literal1<core::int*>(3));
- new self::F0::•(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- new self::F0::•(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ new self::F0::•(core::_GrowableList::•<core::int>(0));
+ new self::F0::•(core::_GrowableList::_literal1<core::int>(3));
+ new self::F0::•(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ new self::F0::•(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- new self::F1::•(a: core::_GrowableList::•<core::int*>(0));
- new self::F1::•(a: core::_GrowableList::_literal1<core::int*>(3));
- new self::F1::•(a: core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ new self::F1::•(a: core::_GrowableList::•<core::int>(0));
+ new self::F1::•(a: core::_GrowableList::_literal1<core::int>(3));
+ new self::F1::•(a: core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*));
- new self::F1::•(a: core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ new self::F1::•(a: core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- new self::F2::•(core::_GrowableList::•<core::int*>(0));
- new self::F2::•(core::_GrowableList::_literal1<core::int*>(3));
- new self::F2::•(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- new self::F2::•(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ new self::F2::•(core::_GrowableList::•<core::int>(0));
+ new self::F2::•(core::_GrowableList::_literal1<core::int>(3));
+ new self::F2::•(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ new self::F2::•(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- new self::F3::•(core::_GrowableList::•<core::Iterable<core::int*>*>(0));
- new self::F3::•(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- new self::F3::•(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*)));
- new self::F3::•(core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
- new self::F4::•(a: core::_GrowableList::•<core::Iterable<core::int*>*>(0));
- new self::F4::•(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- new self::F4::•(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*)));
- new self::F4::•(a: core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ new self::F3::•(core::_GrowableList::•<core::Iterable<core::int>>(0));
+ new self::F3::•(core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ new self::F3::•(core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int)));
+ new self::F3::•(core::_GrowableList::_literal2<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), core::_GrowableList::_literal1<core::int>(3)));
+ new self::F4::•(a: core::_GrowableList::•<core::Iterable<core::int>>(0));
+ new self::F4::•(a: core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ new self::F4::•(a: core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int)));
+ new self::F4::•(a: core::_GrowableList::_literal2<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), core::_GrowableList::_literal1<core::int>(3)));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart
index e783c2b..07da96e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart
@@ -1,56 +1,56 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void f0(List<int> a) {}
-void f1({List<int> a}) {}
+void f1({required List<int> a}) {}
void f2(Iterable<int> a) {}
void f3(Iterable<Iterable<int>> a) {}
-void f4({Iterable<Iterable<int>> a}) {}
+void f4({required Iterable<Iterable<int>> a}) {}
void test() {
- f0(/*@ typeArgs=int* */ []);
- f0(/*@ typeArgs=int* */ [3]);
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+ f0(/*@typeArgs=int*/ []);
+ f0(/*@typeArgs=int*/ [3]);
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
- f1(a: /*@ typeArgs=int* */ []);
- f1(a: /*@ typeArgs=int* */ [3]);
- f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- f1(a: /*@ typeArgs=int* */ [
+ f1(a: /*@typeArgs=int*/ []);
+ f1(a: /*@typeArgs=int*/ [3]);
+ f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ f1(a: /*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- f2(/*@ typeArgs=int* */ []);
- f2(/*@ typeArgs=int* */ [3]);
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+ f2(/*@typeArgs=int*/ []);
+ f2(/*@typeArgs=int*/ [3]);
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
- f3(/*@ typeArgs=Iterable<int*>* */ []);
- f3(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ f3(/*@typeArgs=Iterable<int>*/ []);
+ f3(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- f3(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+ f3(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
]);
- f3(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
- /*@ typeArgs=int* */ [3]
+ f3(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+ /*@typeArgs=int*/ [3]
]);
- f4(a: /*@ typeArgs=Iterable<int*>* */ []);
- f4(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ f4(a: /*@typeArgs=Iterable<int>*/ []);
+ f4(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- f4(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+ f4(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
]);
- f4(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
- /*@ typeArgs=int* */ [3]
+ f4(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+ /*@typeArgs=int*/ [3]
]);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline.expect
index d154090..ca0da7e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
void f0(List<int> a) {}
-void f1({List<int> a}) {}
+void f1({required List<int> a}) {}
void f2(Iterable<int> a) {}
void f3(Iterable<Iterable<int>> a) {}
-void f4({Iterable<Iterable<int>> a}) {}
+void f4({required Iterable<Iterable<int>> a}) {}
void test() {}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline_modelled.expect
index ba53e1c..8ce3846 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
main() {}
void f0(List<int> a) {}
-void f1({List<int> a}) {}
+void f1({required List<int> a}) {}
void f2(Iterable<int> a) {}
void f3(Iterable<Iterable<int>> a) {}
-void f4({Iterable<Iterable<int>> a}) {}
+void f4({required Iterable<Iterable<int>> a}) {}
void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.expect
index 5fd719d..e591145 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.expect
@@ -1,96 +1,96 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
-static method f0(core::List<core::int*>* a) → void {}
-static method f1({core::List<core::int*>* a = #C1}) → void {}
-static method f2(core::Iterable<core::int*>* a) → void {}
-static method f3(core::Iterable<core::Iterable<core::int*>*>* a) → void {}
-static method f4({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → void {}
+static method f0(core::List<core::int> a) → void {}
+static method f1({required core::List<core::int> a = #C1}) → void {}
+static method f2(core::Iterable<core::int> a) → void {}
+static method f3(core::Iterable<core::Iterable<core::int>> a) → void {}
+static method f4({required core::Iterable<core::Iterable<core::int>> a = #C1}) → void {}
static method test() → void {
- self::f0(<core::int*>[]);
- self::f0(<core::int*>[3]);
- self::f0(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- self::f0(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
- ^" in "hello" as{TypeError} core::int*, 3]);
- self::f1(a: <core::int*>[]);
- self::f1(a: <core::int*>[3]);
- self::f1(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- self::f1(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ self::f0(<core::int>[]);
+ self::f0(<core::int>[3]);
+ self::f0(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ self::f0(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ self::f1(a: <core::int>[]);
+ self::f1(a: <core::int>[3]);
+ self::f1(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ self::f1(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- self::f2(<core::int*>[]);
- self::f2(<core::int*>[3]);
- self::f2(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- self::f2(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
- ^" in "hello" as{TypeError} core::int*, 3]);
- self::f3(<core::Iterable<core::int*>*>[]);
- self::f3(<core::Iterable<core::int*>*>[<core::int*>[3]]);
- self::f3(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- self::f3(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- self::f4(a: <core::Iterable<core::int*>*>[]);
- self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
- self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ self::f2(<core::int>[]);
+ self::f2(<core::int>[3]);
+ self::f2(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ self::f2(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ self::f3(<core::Iterable<core::int>>[]);
+ self::f3(<core::Iterable<core::int>>[<core::int>[3]]);
+ self::f3(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ self::f3(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ self::f4(a: <core::Iterable<core::int>>[]);
+ self::f4(a: <core::Iterable<core::int>>[<core::int>[3]]);
+ self::f4(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ self::f4(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.modular.expect
index 5fd719d..e591145 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.modular.expect
@@ -1,96 +1,96 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
-static method f0(core::List<core::int*>* a) → void {}
-static method f1({core::List<core::int*>* a = #C1}) → void {}
-static method f2(core::Iterable<core::int*>* a) → void {}
-static method f3(core::Iterable<core::Iterable<core::int*>*>* a) → void {}
-static method f4({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → void {}
+static method f0(core::List<core::int> a) → void {}
+static method f1({required core::List<core::int> a = #C1}) → void {}
+static method f2(core::Iterable<core::int> a) → void {}
+static method f3(core::Iterable<core::Iterable<core::int>> a) → void {}
+static method f4({required core::Iterable<core::Iterable<core::int>> a = #C1}) → void {}
static method test() → void {
- self::f0(<core::int*>[]);
- self::f0(<core::int*>[3]);
- self::f0(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- self::f0(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
- ^" in "hello" as{TypeError} core::int*, 3]);
- self::f1(a: <core::int*>[]);
- self::f1(a: <core::int*>[3]);
- self::f1(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- self::f1(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ self::f0(<core::int>[]);
+ self::f0(<core::int>[3]);
+ self::f0(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ self::f0(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ self::f1(a: <core::int>[]);
+ self::f1(a: <core::int>[3]);
+ self::f1(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ self::f1(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- self::f2(<core::int*>[]);
- self::f2(<core::int*>[3]);
- self::f2(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- self::f2(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
- ^" in "hello" as{TypeError} core::int*, 3]);
- self::f3(<core::Iterable<core::int*>*>[]);
- self::f3(<core::Iterable<core::int*>*>[<core::int*>[3]]);
- self::f3(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- self::f3(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- self::f4(a: <core::Iterable<core::int*>*>[]);
- self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
- self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- self::f4(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ self::f2(<core::int>[]);
+ self::f2(<core::int>[3]);
+ self::f2(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ self::f2(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ self::f3(<core::Iterable<core::int>>[]);
+ self::f3(<core::Iterable<core::int>>[<core::int>[3]]);
+ self::f3(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ self::f3(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ self::f4(a: <core::Iterable<core::int>>[]);
+ self::f4(a: <core::Iterable<core::int>>[<core::int>[3]]);
+ self::f4(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ self::f4(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.outline.expect
index 2037825..bc4be5e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.outline.expect
@@ -1,16 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f0(core::List<core::int*>* a) → void
+static method f0(core::List<core::int> a) → void
;
-static method f1({core::List<core::int*>* a}) → void
+static method f1({required core::List<core::int> a}) → void
;
-static method f2(core::Iterable<core::int*>* a) → void
+static method f2(core::Iterable<core::int> a) → void
;
-static method f3(core::Iterable<core::Iterable<core::int*>*>* a) → void
+static method f3(core::Iterable<core::Iterable<core::int>> a) → void
;
-static method f4({core::Iterable<core::Iterable<core::int*>*>* a}) → void
+static method f4({required core::Iterable<core::Iterable<core::int>> a}) → void
;
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.transformed.expect
index 8b9a883..64e0ec6 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart.weak.transformed.expect
@@ -1,96 +1,96 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello", 3]);
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
-static method f0(core::List<core::int*>* a) → void {}
-static method f1({core::List<core::int*>* a = #C1}) → void {}
-static method f2(core::Iterable<core::int*>* a) → void {}
-static method f3(core::Iterable<core::Iterable<core::int*>*>* a) → void {}
-static method f4({core::Iterable<core::Iterable<core::int*>*>* a = #C1}) → void {}
+static method f0(core::List<core::int> a) → void {}
+static method f1({required core::List<core::int> a = #C1}) → void {}
+static method f2(core::Iterable<core::int> a) → void {}
+static method f3(core::Iterable<core::Iterable<core::int>> a) → void {}
+static method f4({required core::Iterable<core::Iterable<core::int>> a = #C1}) → void {}
static method test() → void {
- self::f0(core::_GrowableList::•<core::int*>(0));
- self::f0(core::_GrowableList::_literal1<core::int*>(3));
- self::f0(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- self::f0(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f0(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
- ^" in "hello" as{TypeError} core::int*, 3));
- self::f1(a: core::_GrowableList::•<core::int*>(0));
- self::f1(a: core::_GrowableList::_literal1<core::int*>(3));
- self::f1(a: core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:74: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f1(a: /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- self::f1(a: core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ self::f0(core::_GrowableList::•<core::int>(0));
+ self::f0(core::_GrowableList::_literal1<core::int>(3));
+ self::f0(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:16:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ self::f0(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:17:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f0(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ self::f1(a: core::_GrowableList::•<core::int>(0));
+ self::f1(a: core::_GrowableList::_literal1<core::int>(3));
+ self::f1(a: core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:21:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f1(a: /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ self::f1(a: core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:23:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- self::f2(core::_GrowableList::•<core::int*>(0));
- self::f2(core::_GrowableList::_literal1<core::int*>(3));
- self::f2(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- self::f2(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:71: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- f2(/*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
- ^" in "hello" as{TypeError} core::int*, 3));
- self::f3(core::_GrowableList::•<core::Iterable<core::int*>*>(0));
- self::f3(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- self::f3(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*)));
- self::f3(core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
- self::f4(a: core::_GrowableList::•<core::Iterable<core::int*>*>(0));
- self::f4(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- self::f4(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*)));
- self::f4(a: core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ self::f2(core::_GrowableList::•<core::int>(0));
+ self::f2(core::_GrowableList::_literal1<core::int>(3));
+ self::f2(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:29:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ self::f2(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:30:68: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ f2(/*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\", 3]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ self::f3(core::_GrowableList::•<core::Iterable<core::int>>(0));
+ self::f3(core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ self::f3(core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:37:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int)));
+ self::f3(core::_GrowableList::_literal2<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:40:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), core::_GrowableList::_literal1<core::int>(3)));
+ self::f4(a: core::_GrowableList::•<core::Iterable<core::int>>(0));
+ self::f4(a: core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ self::f4(a: core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:49:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int)));
+ self::f4(a: core::_GrowableList::_literal2<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_arguments_infer_downwards.dart:52:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), core::_GrowableList::_literal1<core::int>(3)));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
index a183cd0..b54bfa4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,60 +9,62 @@
void test() {
{
- Function2<int, String> l0 = /*@ returnType=Null */ (int x) => null;
- Function2<int, String> l1 = /*@ returnType=String* */ (int x) => "hello";
+ Function2<int, String> l0 = /*@returnType=Never*/ (int x) => throw '';
+ Function2<int, String> l1 = /*@returnType=String*/ (int x) => "hello";
Function2<int, String>
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
"hello";
Function2<int, String>
- l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
- Function2<int, String> l4 = /*@ returnType=String* */ (int x) {
+ l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+ Function2<int, String> l4 = /*@returnType=String*/ (int x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
};
}
{
- Function2<int, String> l0 = /*@ returnType=Null */ (/*@ type=int* */ x) => null;
- Function2<int, String> l1 = /*@ returnType=String* */ (/*@ type=int* */ x) =>
+ Function2<int, String> l0 = /*@returnType=Never*/ (/*@type=int*/ x) =>
+ throw '';
+ Function2<int, String> l1 = /*@returnType=String*/ (/*@type=int*/ x) =>
"hello";
Function2<int, String>
- l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (/*@ type=int* */ x) =>
+ l2 = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (/*@type=int*/ x) =>
3;
- Function2<int, String> l3 = /*@ returnType=String* */ (/*@ type=int* */ x) {
+ Function2<int, String> l3 = /*@returnType=String*/ (/*@type=int*/ x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
};
- Function2<int, String> l4 = /*@ returnType=String* */ (/*@ type=int* */ x) {
+ Function2<int, String> l4 = /*@returnType=String*/ (/*@type=int*/ x) {
return /*error:RETURN_OF_INVALID_TYPE*/ x;
};
}
{
- Function2<int, List<String>> l0 = /*@ returnType=Null */ (int x) => null;
- Function2<int, List<String>> l1 = /*@ returnType=List<String*>* */ (int
- x) => /*@ typeArgs=String* */ ["hello"];
+ Function2<int, List<String>> l0 = /*@returnType=Never*/ (int x) =>
+ throw '';
+ Function2<int, List<String>> l1 = /*@returnType=List<String>*/ (int
+ x) => /*@typeArgs=String*/ ["hello"];
Function2<int, List<String>>
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
- x) => /*@ typeArgs=String* */ ["hello"];
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+ x) => /*@typeArgs=String*/ ["hello"];
Function2<int, List<String>>
- l3 = /*@ returnType=List<String*>* */ (int x) => /*@ typeArgs=String* */ [
+ l3 = /*@returnType=List<String>*/ (int x) => /*@typeArgs=String*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
];
- Function2<int, List<String>> l4 = /*@ returnType=List<String*>* */ (int x) {
- return /*@ typeArgs=String* */ [
+ Function2<int, List<String>> l4 = /*@returnType=List<String>*/ (int x) {
+ return /*@typeArgs=String*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
];
};
}
{
- Function2<int, int> l0 = /*@ returnType=int* */ (/*@ type=int* */ x) => x;
- Function2<int, int> l1 = /*@ returnType=int* */ (/*@ type=int* */ x) =>
+ Function2<int, int> l0 = /*@returnType=int*/ (/*@type=int*/ x) => x;
+ Function2<int, int> l1 = /*@returnType=int*/ (/*@type=int*/ x) =>
x /*@target=num.+*/ + 1;
Function2<int, String>
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (/*@ type=int* */ x) =>
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (/*@type=int*/ x) =>
x;
Function2<int, String>
- l3 = /*@ returnType=String* */ (/*@ type=int* */ x) => /*info:DYNAMIC_CAST, info:DYNAMIC_INVOKE*/ x
+ l3 = /*@returnType=String*/ (/*@type=int*/ x) => /*info:DYNAMIC_CAST, info:DYNAMIC_INVOKE*/ x
.substring(3);
Function2<String, String>
- l4 = /*@ returnType=String* */ (/*@ type=String* */ x) =>
+ l4 = /*@returnType=String*/ (/*@type=String*/ x) =>
x. /*@target=String.substring*/ substring(3);
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline.expect
index 03e8557..c66b28f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef T Function2<S, T>(S x);
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline_modelled.expect
index 65dac34..894e031 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.expect
index f4f3e7f..325a143 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.expect
@@ -1,49 +1,49 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
-// l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
+// l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:80: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+// l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:30:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
// - 'List' is from 'dart:core'.
-// l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
-// ^
+// l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:62:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'substring'.
// .substring(3);
// ^^^^^^^^^
@@ -51,67 +51,67 @@
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
static method test() → void {
{
- (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
- (core::int*) →* core::String* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
- ^" in ((core::String* x) → core::String* => "hello") as{TypeError} (core::int*) →* core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:80: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
- ^" in 3 as{TypeError} core::String*;
- (core::int*) →* core::String* l4 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l0 = (core::int x) → Never => throw "";
+ (core::int) → core::String l1 = (core::int x) → core::String => "hello";
+ (core::int) → core::String l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
+ ^" in ((core::String x) → core::String => "hello") as{TypeError,ForNonNullableByDefault} (core::int) → core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+ l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l4 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
- (core::int*) →* core::String* l2 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l0 = (core::int x) → Never => throw "";
+ (core::int) → core::String l1 = (core::int x) → core::String => "hello";
+ (core::int) → core::String l2 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:30:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
3;
- ^" in 3 as{TypeError} core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
- (core::int*) →* core::String* l4 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l4 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
- (core::int*) →* core::List<core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
+ (core::int) → core::List<core::String> l0 = (core::int x) → Never => throw "";
+ (core::int) → core::List<core::String> l1 = (core::int x) → core::List<core::String> => <core::String>["hello"];
+ (core::int) → core::List<core::String> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
- 'List' is from 'dart:core'.
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
- ^" in ((core::String* x) → core::List<core::String*>* => <core::String*>["hello"]) as{TypeError} (core::int*) →* core::List<core::String*>*;
- (core::int*) →* core::List<core::String*>* l3 = (core::int* x) → core::List<core::String*>* => <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+ ^" in ((core::String x) → core::List<core::String> => <core::String>["hello"]) as{TypeError,ForNonNullableByDefault} (core::int) → core::List<core::String>;
+ (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
- (core::int*) →* core::List<core::String*>* l4 = (core::int* x) → core::List<core::String*>* {
- return <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
+ (core::int) → core::List<core::String> l4 = (core::int x) → core::List<core::String> {
+ return <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
};
}
{
- (core::int*) →* core::int* l0 = (core::int* x) → core::int* => x;
- (core::int*) →* core::int* l1 = (core::int* x) → core::int* => x.{core::num::+}(1){(core::num*) →* core::int*};
- (core::int*) →* core::String* l2 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::int l0 = (core::int x) → core::int => x;
+ (core::int) → core::int l1 = (core::int x) → core::int => x.{core::num::+}(1){(core::num) → core::int};
+ (core::int) → core::String l2 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:62:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
x;
- ^" in x as{TypeError} core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'int'.
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'substring'.
.substring(3);
- ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic} core::String*;
- (core::String*) →* core::String* l4 = (core::String* x) → core::String* => x.{core::String::substring}(3){(core::int*, [core::int*]) →* core::String*};
+ ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ (core::String) → core::String l4 = (core::String x) → core::String => x.{core::String::substring}(3){(core::int, [core::int?]) → core::String};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.modular.expect
index f4f3e7f..325a143 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.modular.expect
@@ -1,49 +1,49 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
-// l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
+// l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:80: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+// l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:30:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
// - 'List' is from 'dart:core'.
-// l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
-// ^
+// l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:62:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'substring'.
// .substring(3);
// ^^^^^^^^^
@@ -51,67 +51,67 @@
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
static method test() → void {
{
- (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
- (core::int*) →* core::String* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
- ^" in ((core::String* x) → core::String* => "hello") as{TypeError} (core::int*) →* core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:80: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
- ^" in 3 as{TypeError} core::String*;
- (core::int*) →* core::String* l4 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l0 = (core::int x) → Never => throw "";
+ (core::int) → core::String l1 = (core::int x) → core::String => "hello";
+ (core::int) → core::String l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
+ ^" in ((core::String x) → core::String => "hello") as{TypeError,ForNonNullableByDefault} (core::int) → core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+ l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l4 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
- (core::int*) →* core::String* l2 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l0 = (core::int x) → Never => throw "";
+ (core::int) → core::String l1 = (core::int x) → core::String => "hello";
+ (core::int) → core::String l2 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:30:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
3;
- ^" in 3 as{TypeError} core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
- (core::int*) →* core::String* l4 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l4 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
- (core::int*) →* core::List<core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
+ (core::int) → core::List<core::String> l0 = (core::int x) → Never => throw "";
+ (core::int) → core::List<core::String> l1 = (core::int x) → core::List<core::String> => <core::String>["hello"];
+ (core::int) → core::List<core::String> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
- 'List' is from 'dart:core'.
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
- ^" in ((core::String* x) → core::List<core::String*>* => <core::String*>["hello"]) as{TypeError} (core::int*) →* core::List<core::String*>*;
- (core::int*) →* core::List<core::String*>* l3 = (core::int* x) → core::List<core::String*>* => <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+ ^" in ((core::String x) → core::List<core::String> => <core::String>["hello"]) as{TypeError,ForNonNullableByDefault} (core::int) → core::List<core::String>;
+ (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
- (core::int*) →* core::List<core::String*>* l4 = (core::int* x) → core::List<core::String*>* {
- return <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
+ (core::int) → core::List<core::String> l4 = (core::int x) → core::List<core::String> {
+ return <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
};
}
{
- (core::int*) →* core::int* l0 = (core::int* x) → core::int* => x;
- (core::int*) →* core::int* l1 = (core::int* x) → core::int* => x.{core::num::+}(1){(core::num*) →* core::int*};
- (core::int*) →* core::String* l2 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::int l0 = (core::int x) → core::int => x;
+ (core::int) → core::int l1 = (core::int x) → core::int => x.{core::num::+}(1){(core::num) → core::int};
+ (core::int) → core::String l2 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:62:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
x;
- ^" in x as{TypeError} core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'int'.
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'substring'.
.substring(3);
- ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic} core::String*;
- (core::String*) →* core::String* l4 = (core::String* x) → core::String* => x.{core::String::substring}(3){(core::int*, [core::int*]) →* core::String*};
+ ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ (core::String) → core::String l4 = (core::String x) → core::String => x.{core::String::substring}(3){(core::int, [core::int?]) → core::String};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.outline.expect
index 86b1ec1..3d540b7 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
static method test() → void
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.transformed.expect
index 35a455f..237bf02 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart.weak.transformed.expect
@@ -1,49 +1,49 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
-// l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
+// l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:80: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+// l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:30:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
// - 'List' is from 'dart:core'.
-// l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
-// ^
+// l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:62:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'int'.
// Try correcting the name to the name of an existing method, or defining a method named 'substring'.
// .substring(3);
// ^^^^^^^^^
@@ -51,67 +51,67 @@
import self as self;
import "dart:core" as core;
-typedef Function2<contravariant S extends core::Object* = dynamic, T extends core::Object* = dynamic> = (S*) →* T*;
+typedef Function2<contravariant S extends core::Object? = dynamic, T extends core::Object? = dynamic> = (S%) → T%;
static method test() → void {
{
- (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
- (core::int*) →* core::String* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:69: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (String x) =>
- ^" in ((core::String* x) → core::String* => "hello") as{TypeError} (core::int*) →* core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:80: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- l3 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=String* */ (int x) => 3;
- ^" in 3 as{TypeError} core::String*;
- (core::int*) →* core::String* l4 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l0 = (core::int x) → Never => throw "";
+ (core::int) → core::String l1 = (core::int x) → core::String => "hello";
+ (core::int) → core::String l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:15:66: Error: A value of type 'String Function(String)' can't be assigned to a variable of type 'String Function(int)'.
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (String x) =>
+ ^" in ((core::String x) → core::String => "hello") as{TypeError,ForNonNullableByDefault} (core::int) → core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:18:77: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+ l3 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=String*/ (int x) => 3;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l4 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:20:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- (core::int*) →* core::String* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::String* l1 = (core::int* x) → core::String* => "hello";
- (core::int*) →* core::String* l2 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:29:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l0 = (core::int x) → Never => throw "";
+ (core::int) → core::String l1 = (core::int x) → core::String => "hello";
+ (core::int) → core::String l2 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:30:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
3;
- ^" in 3 as{TypeError} core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:31:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:32:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
- (core::int*) →* core::String* l4 = (core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:34:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::String l4 = (core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:35:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- (core::int*) →* core::List<core::String*>* l0 = (core::int* x) → Null => null;
- (core::int*) →* core::List<core::String*>* l1 = (core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello");
- (core::int*) →* core::List<core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:42:76: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
+ (core::int) → core::List<core::String> l0 = (core::int x) → Never => throw "";
+ (core::int) → core::List<core::String> l1 = (core::int x) → core::List<core::String> => core::_GrowableList::_literal1<core::String>("hello");
+ (core::int) → core::List<core::String> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:44:72: Error: A value of type 'List<String> Function(String)' can't be assigned to a variable of type 'List<String> Function(int)'.
- 'List' is from 'dart:core'.
- l2 = /*error:INVALID_ASSIGNMENT*/ /*@ returnType=List<String*>* */ (String
- ^" in ((core::String* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello")) as{TypeError} (core::int*) →* core::List<core::String*>*;
- (core::int*) →* core::List<core::String*>* l3 = (core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:46:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ l2 = /*error:INVALID_ASSIGNMENT*/ /*@returnType=List<String>*/ (String
+ ^" in ((core::String x) → core::List<core::String> => core::_GrowableList::_literal1<core::String>("hello")) as{TypeError,ForNonNullableByDefault} (core::int) → core::List<core::String>;
+ (core::int) → core::List<core::String> l3 = (core::int x) → core::List<core::String> => core::_GrowableList::_literal1<core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:48:58: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*);
- (core::int*) →* core::List<core::String*>* l4 = (core::int* x) → core::List<core::String*>* {
- return core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ (core::int) → core::List<core::String> l4 = (core::int x) → core::List<core::String> {
+ return core::_GrowableList::_literal1<core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:52:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
};
}
{
- (core::int*) →* core::int* l0 = (core::int* x) → core::int* => x;
- (core::int*) →* core::int* l1 = (core::int* x) → core::int* => x.{core::num::+}(1){(core::num*) →* core::int*};
- (core::int*) →* core::String* l2 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:60:13: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ (core::int) → core::int l0 = (core::int x) → core::int => x;
+ (core::int) → core::int l1 = (core::int x) → core::int => x.{core::num::+}(1){(core::num) → core::int};
+ (core::int) → core::String l2 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:62:13: Error: A value of type 'int' can't be returned from a function with return type 'String'.
x;
- ^" in x as{TypeError} core::String*;
- (core::int*) →* core::String* l3 = (core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:63:14: Error: The method 'substring' isn't defined for the class 'int'.
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
+ (core::int) → core::String l3 = (core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_function_expressions.dart:65:14: Error: The method 'substring' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'substring'.
.substring(3);
^^^^^^^^^" in x{<unresolved>}.substring(3);
- (core::String*) →* core::String* l4 = (core::String* x) → core::String* => x.{core::String::substring}(3){(core::int*, [core::int*]) →* core::String*};
+ (core::String) → core::String l4 = (core::String x) → core::String => x.{core::String::substring}(3){(core::int, [core::int?]) → core::String};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart
index 4fdbfdb..709fdec 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart
@@ -1,25 +1,25 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void main() {
{
- T f<T>(T x) => null;
- var /*@type=<T extends Object* = dynamic>(T*) ->* T**/ v1 = f;
- v1 = <S> /*@returnType=S**/ (/*@type=S**/ x) => x;
+ T f<T>(T x) => throw '';
+ var /*@type=<T extends Object? = dynamic>(T%) -> T%*/ v1 = f;
+ v1 = <S> /*@returnType=S%*/ (/*@type=S%*/ x) => x;
}
{
- List<T> f<T>(T x) => null;
- var /*@type=<T extends Object* = dynamic>(T*) ->* List<T*>**/ v2 = f;
- v2 = <S> /*@returnType=List<S*>**/
- (/*@type=S**/ x) => /*@typeArgs=S**/ [x];
- Iterable<int> r = v2 /*@typeArgs=int**/ (42);
- Iterable<String> s = v2 /*@typeArgs=String**/ ('hello');
- Iterable<List<int>> t = v2 /*@typeArgs=List<int*>**/ (<int>[]);
- Iterable<num> u = v2 /*@typeArgs=num**/ (42);
+ List<T> f<T>(T x) => throw '';
+ var /*@type=<T extends Object? = dynamic>(T%) -> List<T%>*/ v2 = f;
+ v2 = <S> /*@returnType=List<S%>*/
+ (/*@type=S%*/ x) => /*@typeArgs=S%*/ [x];
+ Iterable<int> r = v2 /*@typeArgs=int*/ (42);
+ Iterable<String> s = v2 /*@typeArgs=String*/ ('hello');
+ Iterable<List<int>> t = v2 /*@typeArgs=List<int>*/ (<int>[]);
+ Iterable<num> u = v2 /*@typeArgs=num*/ (42);
Iterable<num> v = v2<num>(42);
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline.expect
index 91e6295..c07c403 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline_modelled.expect
index 91e6295..c07c403 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.expect
index a686107..3818c27 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → void {
{
- function f<T extends core::Object* = dynamic>(T* x) → T*
- return null;
- <T extends core::Object* = dynamic>(T*) →* T* v1 = f;
- v1 = <S extends core::Object* = dynamic>(S* x) → S* => x;
+ function f<T extends core::Object? = dynamic>(T% x) → T%
+ return throw "";
+ <T extends core::Object? = dynamic>(T%) → T% v1 = f;
+ v1 = <S extends core::Object? = dynamic>(S% x) → S% => x;
}
{
- function f<T extends core::Object* = dynamic>(T* x) → core::List<T*>*
- return null;
- <T extends core::Object* = dynamic>(T*) →* core::List<T*>* v2 = f;
- v2 = <S extends core::Object* = dynamic>(S* x) → core::List<S*>* => <S*>[x];
- core::Iterable<core::int*>* r = v2<core::int*>(42){(core::int*) →* core::List<core::int*>*};
- core::Iterable<core::String*>* s = v2<core::String*>("hello"){(core::String*) →* core::List<core::String*>*};
- core::Iterable<core::List<core::int*>*>* t = v2<core::List<core::int*>*>(<core::int*>[]){(core::List<core::int*>*) →* core::List<core::List<core::int*>*>*};
- core::Iterable<core::num*>* u = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*};
- core::Iterable<core::num*>* v = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*};
+ function f<T extends core::Object? = dynamic>(T% x) → core::List<T%>
+ return throw "";
+ <T extends core::Object? = dynamic>(T%) → core::List<T%> v2 = f;
+ v2 = <S extends core::Object? = dynamic>(S% x) → core::List<S%> => <S%>[x];
+ core::Iterable<core::int> r = v2<core::int>(42){(core::int) → core::List<core::int>};
+ core::Iterable<core::String> s = v2<core::String>("hello"){(core::String) → core::List<core::String>};
+ core::Iterable<core::List<core::int>> t = v2<core::List<core::int>>(<core::int>[]){(core::List<core::int>) → core::List<core::List<core::int>>};
+ core::Iterable<core::num> u = v2<core::num>(42){(core::num) → core::List<core::num>};
+ core::Iterable<core::num> v = v2<core::num>(42){(core::num) → core::List<core::num>};
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.modular.expect
index a686107..3818c27 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.modular.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → void {
{
- function f<T extends core::Object* = dynamic>(T* x) → T*
- return null;
- <T extends core::Object* = dynamic>(T*) →* T* v1 = f;
- v1 = <S extends core::Object* = dynamic>(S* x) → S* => x;
+ function f<T extends core::Object? = dynamic>(T% x) → T%
+ return throw "";
+ <T extends core::Object? = dynamic>(T%) → T% v1 = f;
+ v1 = <S extends core::Object? = dynamic>(S% x) → S% => x;
}
{
- function f<T extends core::Object* = dynamic>(T* x) → core::List<T*>*
- return null;
- <T extends core::Object* = dynamic>(T*) →* core::List<T*>* v2 = f;
- v2 = <S extends core::Object* = dynamic>(S* x) → core::List<S*>* => <S*>[x];
- core::Iterable<core::int*>* r = v2<core::int*>(42){(core::int*) →* core::List<core::int*>*};
- core::Iterable<core::String*>* s = v2<core::String*>("hello"){(core::String*) →* core::List<core::String*>*};
- core::Iterable<core::List<core::int*>*>* t = v2<core::List<core::int*>*>(<core::int*>[]){(core::List<core::int*>*) →* core::List<core::List<core::int*>*>*};
- core::Iterable<core::num*>* u = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*};
- core::Iterable<core::num*>* v = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*};
+ function f<T extends core::Object? = dynamic>(T% x) → core::List<T%>
+ return throw "";
+ <T extends core::Object? = dynamic>(T%) → core::List<T%> v2 = f;
+ v2 = <S extends core::Object? = dynamic>(S% x) → core::List<S%> => <S%>[x];
+ core::Iterable<core::int> r = v2<core::int>(42){(core::int) → core::List<core::int>};
+ core::Iterable<core::String> s = v2<core::String>("hello"){(core::String) → core::List<core::String>};
+ core::Iterable<core::List<core::int>> t = v2<core::List<core::int>>(<core::int>[]){(core::List<core::int>) → core::List<core::List<core::int>>};
+ core::Iterable<core::num> u = v2<core::num>(42){(core::num) → core::List<core::num>};
+ core::Iterable<core::num> v = v2<core::num>(42){(core::num) → core::List<core::num>};
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.outline.expect
index 27b374a..27fd207 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → void
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.transformed.expect
index 6660189..86411e5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_function_of_t_using_the_t.dart.weak.transformed.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → void {
{
- function f<T extends core::Object* = dynamic>(T* x) → T*
- return null;
- <T extends core::Object* = dynamic>(T*) →* T* v1 = f;
- v1 = <S extends core::Object* = dynamic>(S* x) → S* => x;
+ function f<T extends core::Object? = dynamic>(T% x) → T%
+ return throw "";
+ <T extends core::Object? = dynamic>(T%) → T% v1 = f;
+ v1 = <S extends core::Object? = dynamic>(S% x) → S% => x;
}
{
- function f<T extends core::Object* = dynamic>(T* x) → core::List<T*>*
- return null;
- <T extends core::Object* = dynamic>(T*) →* core::List<T*>* v2 = f;
- v2 = <S extends core::Object* = dynamic>(S* x) → core::List<S*>* => core::_GrowableList::_literal1<S*>(x);
- core::Iterable<core::int*>* r = v2<core::int*>(42){(core::int*) →* core::List<core::int*>*};
- core::Iterable<core::String*>* s = v2<core::String*>("hello"){(core::String*) →* core::List<core::String*>*};
- core::Iterable<core::List<core::int*>*>* t = v2<core::List<core::int*>*>(core::_GrowableList::•<core::int*>(0)){(core::List<core::int*>*) →* core::List<core::List<core::int*>*>*};
- core::Iterable<core::num*>* u = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*};
- core::Iterable<core::num*>* v = v2<core::num*>(42){(core::num*) →* core::List<core::num*>*};
+ function f<T extends core::Object? = dynamic>(T% x) → core::List<T%>
+ return throw "";
+ <T extends core::Object? = dynamic>(T%) → core::List<T%> v2 = f;
+ v2 = <S extends core::Object? = dynamic>(S% x) → core::List<S%> => core::_GrowableList::_literal1<S%>(x);
+ core::Iterable<core::int> r = v2<core::int>(42){(core::int) → core::List<core::int>};
+ core::Iterable<core::String> s = v2<core::String>("hello"){(core::String) → core::List<core::String>};
+ core::Iterable<core::List<core::int>> t = v2<core::List<core::int>>(core::_GrowableList::•<core::int>(0)){(core::List<core::int>) → core::List<core::List<core::int>>};
+ core::Iterable<core::num> u = v2<core::num>(42){(core::num) → core::List<core::num>};
+ core::Iterable<core::num> v = v2<core::num>(42){(core::num) → core::List<core::num>};
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart
index 55b4fa9..c8d4f0f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,10 +10,10 @@
}
class F4<T> {
- F4({Iterable<Iterable<T>> a}) {}
+ F4({required Iterable<Iterable<T>> a}) {}
}
void main() {
- new /*@ typeArgs=dynamic */ F3(/*@ typeArgs=Iterable<dynamic>* */ []);
- new /*@ typeArgs=dynamic */ F4(a: /*@ typeArgs=Iterable<dynamic>* */ []);
+ new /*@typeArgs=Object?*/ F3(/*@typeArgs=Iterable<Object?>*/ []);
+ new /*@typeArgs=Object?*/ F4(a: /*@typeArgs=Iterable<Object?>*/ []);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline.expect
index efe4677..e53cfca 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class F3<T> {
@@ -6,7 +5,7 @@
}
class F4<T> {
- F4({Iterable<Iterable<T>> a}) {}
+ F4({required Iterable<Iterable<T>> a}) {}
}
void main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline_modelled.expect
index efe4677..e53cfca 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class F3<T> {
@@ -6,7 +5,7 @@
}
class F4<T> {
- F4({Iterable<Iterable<T>> a}) {}
+ F4({required Iterable<Iterable<T>> a}) {}
}
void main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.expect
index 81acf78..0fc19cb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = #C1}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = #C1}) → self::F4<self::F4::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- new self::F3::•<dynamic>(<core::Iterable<dynamic>*>[]);
- new self::F4::•<dynamic>(a: <core::Iterable<dynamic>*>[]);
+ new self::F3::•<core::Object?>(<core::Iterable<core::Object?>>[]);
+ new self::F4::•<core::Object?>(a: <core::Iterable<core::Object?>>[]);
}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.modular.expect
index 81acf78..0fc19cb 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = #C1}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = #C1}) → self::F4<self::F4::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- new self::F3::•<dynamic>(<core::Iterable<dynamic>*>[]);
- new self::F4::•<dynamic>(a: <core::Iterable<dynamic>*>[]);
+ new self::F3::•<core::Object?>(<core::Iterable<core::Object?>>[]);
+ new self::F4::•<core::Object?>(a: <core::Iterable<core::Object?>>[]);
}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.outline.expect
index 568d09d..fd072ec 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.outline.expect
@@ -1,34 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = null}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = null}) → self::F4<self::F4::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.transformed.expect
index 70d6890..c863dec 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_empty_list.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = #C1}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = #C1}) → self::F4<self::F4::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- new self::F3::•<dynamic>(core::_GrowableList::•<core::Iterable<dynamic>*>(0));
- new self::F4::•<dynamic>(a: core::_GrowableList::•<core::Iterable<dynamic>*>(0));
+ new self::F3::•<core::Object?>(core::_GrowableList::•<core::Iterable<core::Object?>>(0));
+ new self::F4::•<core::Object?>(a: core::_GrowableList::•<core::Iterable<core::Object?>>(0));
}
constants {
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart
index ef16150..4d367e0 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
class F1<T> {
- F1({List<T> a}) {}
+ F1({required List<T> a}) {}
}
class F2<T> {
@@ -22,86 +22,86 @@
}
class F4<T> {
- F4({Iterable<Iterable<T>> a}) {}
+ F4({required Iterable<Iterable<T>> a}) {}
}
void test() {
- new F0<int>(/*@ typeArgs=int* */ []);
- new F0<int>(/*@ typeArgs=int* */ [3]);
+ new F0<int>(/*@typeArgs=int*/ []);
+ new F0<int>(/*@typeArgs=int*/ [3]);
new F0<int>(
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- new F0<int>(/*@ typeArgs=int* */ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ new F0<int>(/*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- new F1<int>(a: /*@ typeArgs=int* */ []);
- new F1<int>(a: /*@ typeArgs=int* */ [3]);
- new F1<int>(a: /*@ typeArgs=int* */ [
+ new F1<int>(a: /*@typeArgs=int*/ []);
+ new F1<int>(a: /*@typeArgs=int*/ [3]);
+ new F1<int>(a: /*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
]);
- new F1<int>(a: /*@ typeArgs=int* */ [
+ new F1<int>(a: /*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- new F2<int>(/*@ typeArgs=int* */ []);
- new F2<int>(/*@ typeArgs=int* */ [3]);
+ new F2<int>(/*@typeArgs=int*/ []);
+ new F2<int>(/*@typeArgs=int*/ [3]);
new F2<int>(
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
- new F2<int>(/*@ typeArgs=int* */ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+ new F2<int>(/*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
]);
- new F3<int>(/*@ typeArgs=Iterable<int*>* */ []);
- new F3<int>(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ new F3<int>(/*@typeArgs=Iterable<int>*/ []);
+ new F3<int>(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- new F3<int>(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+ new F3<int>(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
]);
- new F3<int>(/*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
- /*@ typeArgs=int* */ [3]
+ new F3<int>(/*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+ /*@typeArgs=int*/ [3]
]);
- new F4<int>(a: /*@ typeArgs=Iterable<int*>* */ []);
- new F4<int>(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ new F4<int>(a: /*@typeArgs=Iterable<int>*/ []);
+ new F4<int>(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- new F4<int>(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+ new F4<int>(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
]);
- new F4<int>(a: /*@ typeArgs=Iterable<int*>* */ [
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
- /*@ typeArgs=int* */ [3]
+ new F4<int>(a: /*@typeArgs=Iterable<int>*/ [
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+ /*@typeArgs=int*/ [3]
]);
- new /*@ typeArgs=dynamic */ F3(/*@ typeArgs=Iterable<dynamic>* */ []);
- var /*@ type=F3<int*>* */ f31 = new /*@ typeArgs=int* */ F3(/*@ typeArgs=List<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ new /*@typeArgs=Object?*/ F3(/*@typeArgs=Iterable<Object?>*/ []);
+ var /*@type=F3<int>*/ f31 = new /*@typeArgs=int*/ F3(/*@typeArgs=List<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- var /*@ type=F3<String*>* */ f32 =
- new /*@ typeArgs=String* */ F3(/*@ typeArgs=List<String*>* */ [
- /*@ typeArgs=String* */ ["hello"]
+ var /*@type=F3<String>*/ f32 =
+ new /*@typeArgs=String*/ F3(/*@typeArgs=List<String>*/ [
+ /*@typeArgs=String*/ ["hello"]
]);
- var /*@ type=F3<Object*>* */ f33 =
- new /*@ typeArgs=Object* */ F3(/*@ typeArgs=List<Object*>* */ [
- /*@ typeArgs=String* */ ["hello"],
- /*@ typeArgs=int* */ [3]
+ var /*@type=F3<Object>*/ f33 =
+ new /*@typeArgs=Object*/ F3(/*@typeArgs=List<Object>*/ [
+ /*@typeArgs=String*/ ["hello"],
+ /*@typeArgs=int*/ [3]
]);
- new /*@ typeArgs=dynamic */ F4(a: /*@ typeArgs=Iterable<dynamic>* */ []);
- new /*@ typeArgs=int* */ F4(a: /*@ typeArgs=List<int*>* */ [
- /*@ typeArgs=int* */ [3]
+ new /*@typeArgs=Object?*/ F4(a: /*@typeArgs=Iterable<Object?>*/ []);
+ new /*@typeArgs=int*/ F4(a: /*@typeArgs=List<int>*/ [
+ /*@typeArgs=int*/ [3]
]);
- new /*@ typeArgs=String* */ F4(a: /*@ typeArgs=List<String*>* */ [
- /*@ typeArgs=String* */ ["hello"]
+ new /*@typeArgs=String*/ F4(a: /*@typeArgs=List<String>*/ [
+ /*@typeArgs=String*/ ["hello"]
]);
- new /*@ typeArgs=Object* */ F4(a: /*@ typeArgs=List<Object*>* */ [
- /*@ typeArgs=String* */ ["hello"],
- /*@ typeArgs=int* */ [3]
+ new /*@typeArgs=Object*/ F4(a: /*@typeArgs=List<Object>*/ [
+ /*@typeArgs=String*/ ["hello"],
+ /*@typeArgs=int*/ [3]
]);
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline.expect
index f8fc25b..0416911 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class F0<T> {
@@ -6,7 +5,7 @@
}
class F1<T> {
- F1({List<T> a}) {}
+ F1({required List<T> a}) {}
}
class F2<T> {
@@ -18,7 +17,7 @@
}
class F4<T> {
- F4({Iterable<Iterable<T>> a}) {}
+ F4({required Iterable<Iterable<T>> a}) {}
}
void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect
index 4b8ade4..ca29a79 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class F0<T> {
@@ -6,7 +5,7 @@
}
class F1<T> {
- F1({List<T> a}) {}
+ F1({required List<T> a}) {}
}
class F2<T> {
@@ -18,7 +17,7 @@
}
class F4<T> {
- F4({Iterable<Iterable<T>> a}) {}
+ F4({required Iterable<Iterable<T>> a}) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.expect
index 6d35ee8..1a6d71f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
@@ -18,152 +18,102 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
-class F0<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::F0::T*>* a) → self::F0<self::F0::T*>*
+class F0<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::F0::T%> a) → self::F0<self::F0::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F1<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::List<self::F1::T*>* a = #C1}) → self::F1<self::F1::T*>*
+class F1<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::List<self::F1::T%> a = #C1}) → self::F1<self::F1::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F2<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<self::F2::T*>* a) → self::F2<self::F2::T*>*
+class F2<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<self::F2::T%> a) → self::F2<self::F2::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = #C1}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = #C1}) → self::F4<self::F4::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- new self::F0::•<core::int*>(<core::int*>[]);
- new self::F0::•<core::int*>(<core::int*>[3]);
- new self::F0::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F0::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ new self::F0::•<core::int>(<core::int>[]);
+ new self::F0::•<core::int>(<core::int>[3]);
+ new self::F0::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F0::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F1::•<core::int*>(a: <core::int*>[]);
- new self::F1::•<core::int*>(a: <core::int*>[3]);
- new self::F1::•<core::int*>(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F1::•<core::int>(a: <core::int>[]);
+ new self::F1::•<core::int>(a: <core::int>[3]);
+ new self::F1::•<core::int>(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*]);
- new self::F1::•<core::int*>(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F1::•<core::int>(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F2::•<core::int*>(<core::int*>[]);
- new self::F2::•<core::int*>(<core::int*>[3]);
- new self::F2::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F2::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F2::•<core::int>(<core::int>[]);
+ new self::F2::•<core::int>(<core::int>[3]);
+ new self::F2::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F2::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- new self::F3::•<dynamic>(<core::Iterable<dynamic>*>[]);
- self::F3<core::int*>* f31 = new self::F3::•<core::int*>(<core::List<core::int*>*>[<core::int*>[3]]);
- self::F3<core::String*>* f32 = new self::F3::•<core::String*>(<core::List<core::String*>*>[<core::String*>["hello"]]);
- self::F3<core::Object*>* f33 = new self::F3::•<core::Object*>(<core::List<core::Object*>*>[<core::String*>["hello"], <core::int*>[3]]);
- new self::F4::•<dynamic>(a: <core::Iterable<dynamic>*>[]);
- new self::F4::•<core::int*>(a: <core::List<core::int*>*>[<core::int*>[3]]);
- new self::F4::•<core::String*>(a: <core::List<core::String*>*>[<core::String*>["hello"]]);
- new self::F4::•<core::Object*>(a: <core::List<core::Object*>*>[<core::String*>["hello"], <core::int*>[3]]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ new self::F3::•<core::Object?>(<core::Iterable<core::Object?>>[]);
+ self::F3<core::int> f31 = new self::F3::•<core::int>(<core::List<core::int>>[<core::int>[3]]);
+ self::F3<core::String> f32 = new self::F3::•<core::String>(<core::List<core::String>>[<core::String>["hello"]]);
+ self::F3<core::Object> f33 = new self::F3::•<core::Object>(<core::List<core::Object>>[<core::String>["hello"], <core::int>[3]]);
+ new self::F4::•<core::Object?>(a: <core::Iterable<core::Object?>>[]);
+ new self::F4::•<core::int>(a: <core::List<core::int>>[<core::int>[3]]);
+ new self::F4::•<core::String>(a: <core::List<core::String>>[<core::String>["hello"]]);
+ new self::F4::•<core::Object>(a: <core::List<core::Object>>[<core::String>["hello"], <core::int>[3]]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.modular.expect
index 6d35ee8..1a6d71f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
@@ -18,152 +18,102 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
-class F0<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::F0::T*>* a) → self::F0<self::F0::T*>*
+class F0<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::F0::T%> a) → self::F0<self::F0::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F1<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::List<self::F1::T*>* a = #C1}) → self::F1<self::F1::T*>*
+class F1<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::List<self::F1::T%> a = #C1}) → self::F1<self::F1::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F2<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<self::F2::T*>* a) → self::F2<self::F2::T*>*
+class F2<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<self::F2::T%> a) → self::F2<self::F2::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = #C1}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = #C1}) → self::F4<self::F4::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- new self::F0::•<core::int*>(<core::int*>[]);
- new self::F0::•<core::int*>(<core::int*>[3]);
- new self::F0::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F0::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ new self::F0::•<core::int>(<core::int>[]);
+ new self::F0::•<core::int>(<core::int>[3]);
+ new self::F0::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F0::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F1::•<core::int*>(a: <core::int*>[]);
- new self::F1::•<core::int*>(a: <core::int*>[3]);
- new self::F1::•<core::int*>(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F1::•<core::int>(a: <core::int>[]);
+ new self::F1::•<core::int>(a: <core::int>[3]);
+ new self::F1::•<core::int>(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*]);
- new self::F1::•<core::int*>(a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F1::•<core::int>(a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F2::•<core::int*>(<core::int*>[]);
- new self::F2::•<core::int*>(<core::int*>[3]);
- new self::F2::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*]);
- new self::F2::•<core::int*>(<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F2::•<core::int>(<core::int>[]);
+ new self::F2::•<core::int>(<core::int>[3]);
+ new self::F2::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]);
+ new self::F2::•<core::int>(<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F3::•<core::int*>(<core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[3]]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*]]);
- new self::F4::•<core::int*>(a: <core::Iterable<core::int*>*>[<core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*], <core::int*>[3]]);
- new self::F3::•<dynamic>(<core::Iterable<dynamic>*>[]);
- self::F3<core::int*>* f31 = new self::F3::•<core::int*>(<core::List<core::int*>*>[<core::int*>[3]]);
- self::F3<core::String*>* f32 = new self::F3::•<core::String*>(<core::List<core::String*>*>[<core::String*>["hello"]]);
- self::F3<core::Object*>* f33 = new self::F3::•<core::Object*>(<core::List<core::Object*>*>[<core::String*>["hello"], <core::int*>[3]]);
- new self::F4::•<dynamic>(a: <core::Iterable<dynamic>*>[]);
- new self::F4::•<core::int*>(a: <core::List<core::int*>*>[<core::int*>[3]]);
- new self::F4::•<core::String*>(a: <core::List<core::String*>*>[<core::String*>["hello"]]);
- new self::F4::•<core::Object*>(a: <core::List<core::Object*>*>[<core::String*>["hello"], <core::int*>[3]]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F3::•<core::int>(<core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[<core::int>[3]]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int]]);
+ new self::F4::•<core::int>(a: <core::Iterable<core::int>>[<core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], <core::int>[3]]);
+ new self::F3::•<core::Object?>(<core::Iterable<core::Object?>>[]);
+ self::F3<core::int> f31 = new self::F3::•<core::int>(<core::List<core::int>>[<core::int>[3]]);
+ self::F3<core::String> f32 = new self::F3::•<core::String>(<core::List<core::String>>[<core::String>["hello"]]);
+ self::F3<core::Object> f33 = new self::F3::•<core::Object>(<core::List<core::Object>>[<core::String>["hello"], <core::int>[3]]);
+ new self::F4::•<core::Object?>(a: <core::Iterable<core::Object?>>[]);
+ new self::F4::•<core::int>(a: <core::List<core::int>>[<core::int>[3]]);
+ new self::F4::•<core::String>(a: <core::List<core::String>>[<core::String>["hello"]]);
+ new self::F4::•<core::Object>(a: <core::List<core::Object>>[<core::String>["hello"], <core::int>[3]]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.outline.expect
index bc46cfe..f2b37f4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.outline.expect
@@ -1,76 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class F0<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::F0::T*>* a) → self::F0<self::F0::T*>*
+class F0<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::F0::T%> a) → self::F0<self::F0::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F1<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::List<self::F1::T*>* a = null}) → self::F1<self::F1::T*>*
+class F1<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::List<self::F1::T%> a = null}) → self::F1<self::F1::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F2<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<self::F2::T*>* a) → self::F2<self::F2::T*>*
+class F2<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<self::F2::T%> a) → self::F2<self::F2::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = null}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = null}) → self::F4<self::F4::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.transformed.expect
index 49e4a19..eda657e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
@@ -18,152 +18,102 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]);
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"]
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"],
+// ^
//
import self as self;
import "dart:core" as core;
-class F0<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::List<self::F0::T*>* a) → self::F0<self::F0::T*>*
+class F0<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::List<self::F0::T%> a) → self::F0<self::F0::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F1<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::List<self::F1::T*>* a = #C1}) → self::F1<self::F1::T*>*
+class F1<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::List<self::F1::T%> a = #C1}) → self::F1<self::F1::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F2<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<self::F2::T*>* a) → self::F2<self::F2::T*>*
+class F2<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<self::F2::T%> a) → self::F2<self::F2::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F3<T extends core::Object* = dynamic> extends core::Object {
- constructor •(core::Iterable<core::Iterable<self::F3::T*>*>* a) → self::F3<self::F3::T*>*
+class F3<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(core::Iterable<core::Iterable<self::F3::T%>> a) → self::F3<self::F3::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F4<T extends core::Object* = dynamic> extends core::Object {
- constructor •({core::Iterable<core::Iterable<self::F4::T*>*>* a = #C1}) → self::F4<self::F4::T*>*
+class F4<T extends core::Object? = dynamic> extends core::Object {
+ constructor •({required core::Iterable<core::Iterable<self::F4::T%>> a = #C1}) → self::F4<self::F4::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → void {
- new self::F0::•<core::int*>(core::_GrowableList::•<core::int*>(0));
- new self::F0::•<core::int*>(core::_GrowableList::_literal1<core::int*>(3));
- new self::F0::•<core::int*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- new self::F0::•<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ new self::F0::•<core::int>(core::_GrowableList::•<core::int>(0));
+ new self::F0::•<core::int>(core::_GrowableList::_literal1<core::int>(3));
+ new self::F0::•<core::int>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:32:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ new self::F0::•<core::int>(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:34:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- new self::F1::•<core::int*>(a: core::_GrowableList::•<core::int*>(0));
- new self::F1::•<core::int*>(a: core::_GrowableList::_literal1<core::int*>(3));
- new self::F1::•<core::int*>(a: core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ new self::F1::•<core::int>(a: core::_GrowableList::•<core::int>(0));
+ new self::F1::•<core::int>(a: core::_GrowableList::_literal1<core::int>(3));
+ new self::F1::•<core::int>(a: core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:41:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*));
- new self::F1::•<core::int*>(a: core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ new self::F1::•<core::int>(a: core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:44:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- new self::F2::•<core::int*>(core::_GrowableList::•<core::int*>(0));
- new self::F2::•<core::int*>(core::_GrowableList::_literal1<core::int*>(3));
- new self::F2::•<core::int*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:72: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
- ^" in "hello" as{TypeError} core::int*));
- new self::F2::•<core::int*>(core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ new self::F2::•<core::int>(core::_GrowableList::•<core::int>(0));
+ new self::F2::•<core::int>(core::_GrowableList::_literal1<core::int>(3));
+ new self::F2::•<core::int>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:51:69: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int));
+ new self::F2::•<core::int>(core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:53:48: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, 3));
- new self::F3::•<core::int*>(core::_GrowableList::•<core::Iterable<core::int*>*>(0));
- new self::F3::•<core::int*>(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- new self::F3::•<core::int*>(core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*)));
- new self::F3::•<core::int*>(core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
- new self::F4::•<core::int*>(a: core::_GrowableList::•<core::Iterable<core::int*>*>(0));
- new self::F4::•<core::int*>(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- new self::F4::•<core::int*>(a: core::_GrowableList::_literal1<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
- ^" in "hello" as{TypeError} core::int*)));
- new self::F4::•<core::int*>(a: core::_GrowableList::_literal2<core::Iterable<core::int*>*>(core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:70: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*@ typeArgs=int* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
- ^" in "hello" as{TypeError} core::int*), core::_GrowableList::_literal1<core::int*>(3)));
- new self::F3::•<dynamic>(core::_GrowableList::•<core::Iterable<dynamic>*>(0));
- self::F3<core::int*>* f31 = new self::F3::•<core::int*>(core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- self::F3<core::String*>* f32 = new self::F3::•<core::String*>(core::_GrowableList::_literal1<core::List<core::String*>*>(core::_GrowableList::_literal1<core::String*>("hello")));
- self::F3<core::Object*>* f33 = new self::F3::•<core::Object*>(core::_GrowableList::_literal2<core::List<core::Object*>*>(core::_GrowableList::_literal1<core::String*>("hello"), core::_GrowableList::_literal1<core::int*>(3)));
- new self::F4::•<dynamic>(a: core::_GrowableList::•<core::Iterable<dynamic>*>(0));
- new self::F4::•<core::int*>(a: core::_GrowableList::_literal1<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3)));
- new self::F4::•<core::String*>(a: core::_GrowableList::_literal1<core::List<core::String*>*>(core::_GrowableList::_literal1<core::String*>("hello")));
- new self::F4::•<core::Object*>(a: core::_GrowableList::_literal2<core::List<core::Object*>*>(core::_GrowableList::_literal1<core::String*>("hello"), core::_GrowableList::_literal1<core::int*>(3)));
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3));
+ new self::F3::•<core::int>(core::_GrowableList::•<core::Iterable<core::int>>(0));
+ new self::F3::•<core::int>(core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ new self::F3::•<core::int>(core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:62:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int)));
+ new self::F3::•<core::int>(core::_GrowableList::_literal2<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:65:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), core::_GrowableList::_literal1<core::int>(3)));
+ new self::F4::•<core::int>(a: core::_GrowableList::•<core::Iterable<core::int>>(0));
+ new self::F4::•<core::int>(a: core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ new self::F4::•<core::int>(a: core::_GrowableList::_literal1<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:74:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"]
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int)));
+ new self::F4::•<core::int>(a: core::_GrowableList::_literal2<core::Iterable<core::int>>(core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_constructor_arguments_infer_downwards.dart:77:67: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*@typeArgs=int*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"],
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), core::_GrowableList::_literal1<core::int>(3)));
+ new self::F3::•<core::Object?>(core::_GrowableList::•<core::Iterable<core::Object?>>(0));
+ self::F3<core::int> f31 = new self::F3::•<core::int>(core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ self::F3<core::String> f32 = new self::F3::•<core::String>(core::_GrowableList::_literal1<core::List<core::String>>(core::_GrowableList::_literal1<core::String>("hello")));
+ self::F3<core::Object> f33 = new self::F3::•<core::Object>(core::_GrowableList::_literal2<core::List<core::Object>>(core::_GrowableList::_literal1<core::String>("hello"), core::_GrowableList::_literal1<core::int>(3)));
+ new self::F4::•<core::Object?>(a: core::_GrowableList::•<core::Iterable<core::Object?>>(0));
+ new self::F4::•<core::int>(a: core::_GrowableList::_literal1<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3)));
+ new self::F4::•<core::String>(a: core::_GrowableList::_literal1<core::List<core::String>>(core::_GrowableList::_literal1<core::String>("hello")));
+ new self::F4::•<core::Object>(a: core::_GrowableList::_literal2<core::List<core::Object>>(core::_GrowableList::_literal1<core::String>("hello"), core::_GrowableList::_literal1<core::int>(3)));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
index a602021..594e578 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart
@@ -1,72 +1,72 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test() {
{
- String f<S>(int x) => null;
- var /*@ type=<S extends Object* = dynamic>(int*) ->* String* */ v = f;
- v = <T> /*@ returnType=Null */ (int x) => null;
- v = <T> /*@ returnType=String* */ (int x) => "hello";
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
+ String f<S>(int x) => throw '';
+ var /*@type=<S extends Object? = dynamic>(int) -> String*/ v = f;
+ v = <T> /*@returnType=Never*/ (int x) => throw '';
+ v = <T> /*@returnType=String*/ (int x) => "hello";
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
"hello";
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
- v = <T> /*@ returnType=String* */ (int x) {
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+ v = <T> /*@returnType=String*/ (int x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
};
}
{
- String f<S>(int x) => null;
- var /*@ type=<S extends Object* = dynamic>(int*) ->* String* */ v = f;
- v = <T> /*@ returnType=Null */ (/*@ type=int* */ x) => null;
- v = <T> /*@ returnType=String* */ (/*@ type=int* */ x) => "hello";
+ String f<S>(int x) => throw '';
+ var /*@type=<S extends Object? = dynamic>(int) -> String*/ v = f;
+ v = <T> /*@returnType=Never*/ (/*@type=int*/ x) => throw '';
+ v = <T> /*@returnType=String*/ (/*@type=int*/ x) => "hello";
v = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
- T> /*@ returnType=String* */ (/*@ type=int* */ x) =>
+ T> /*@returnType=String*/ (/*@type=int*/ x) =>
3;
- v = <T> /*@ returnType=String* */ (/*@ type=int* */ x) {
+ v = <T> /*@returnType=String*/ (/*@type=int*/ x) {
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
};
- v = <T> /*@ returnType=String* */ (/*@ type=int* */ x) {
+ v = <T> /*@returnType=String*/ (/*@type=int*/ x) {
return /*error:RETURN_OF_INVALID_TYPE*/ x;
};
}
{
- List<String> f<S>(int x) => null;
- var /*@ type=<S extends Object* = dynamic>(int*) ->* List<String*>* */ v = f;
- v = <T> /*@ returnType=Null */ (int x) => null;
- v = <T> /*@ returnType=List<String*>* */ (int x) => /*@ typeArgs=String* */ [
+ List<String> f<S>(int x) => throw '';
+ var /*@type=<S extends Object? = dynamic>(int) -> List<String>*/ v = f;
+ v = <T> /*@returnType=Never*/ (int x) => throw '';
+ v = <T> /*@returnType=List<String>*/ (int x) => /*@typeArgs=String*/ [
"hello"
];
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
- x) => /*@ typeArgs=String* */ ["hello"];
- v = <T> /*@ returnType=List<String*>* */ (int x) => /*@ typeArgs=String* */ [
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+ x) => /*@typeArgs=String*/ ["hello"];
+ v = <T> /*@returnType=List<String>*/ (int x) => /*@typeArgs=String*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
];
- v = <T> /*@ returnType=List<String*>* */ (int x) {
- return /*@ typeArgs=String* */ [
+ v = <T> /*@returnType=List<String>*/ (int x) {
+ return /*@typeArgs=String*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
];
};
}
{
- int int2int<S>(int x) => null;
- String int2String<T>(int x) => null;
- String string2String<T>(String x) => null;
- var /*@ type=<S extends Object* = dynamic>(int*) ->* int* */ x = int2int;
- x = <T> /*@ returnType=int* */ (/*@ type=int* */ x) => x;
- x = <T> /*@ returnType=int* */ (/*@ type=int* */ x) => x /*@target=num.+*/ + 1;
- var /*@ type=<T extends Object* = dynamic>(int*) ->* String* */ y = int2String;
+ int int2int<S>(int x) => throw '';
+ String int2String<T>(int x) => throw '';
+ String string2String<T>(String x) => throw '';
+ var /*@type=<S extends Object? = dynamic>(int) -> int*/ x = int2int;
+ x = <T> /*@returnType=int*/ (/*@type=int*/ x) => x;
+ x = <T> /*@returnType=int*/ (/*@type=int*/ x) => x /*@target=num.+*/ + 1;
+ var /*@type=<T extends Object? = dynamic>(int) -> String*/ y = int2String;
y = /*info:INFERRED_TYPE_CLOSURE, error:INVALID_ASSIGNMENT*/ <
- T> /*@ returnType=String* */ (/*@ type=int* */ x) =>
+ T> /*@returnType=String*/ (/*@type=int*/ x) =>
x;
- y = <T> /*@ returnType=String* */ (/*@ type=int* */ x) => /*info:DYNAMIC_INVOKE, info:DYNAMIC_CAST*/ x
+ y = <T> /*@returnType=String*/ (/*@type=int*/ x) => /*info:DYNAMIC_INVOKE, info:DYNAMIC_CAST*/ x
.substring(3);
- var /*@ type=<T extends Object* = dynamic>(String*) ->* String* */ z =
+ var /*@type=<T extends Object? = dynamic>(String) -> String*/ z =
string2String;
- z = <T> /*@ returnType=String* */ (/*@ type=String* */ x) =>
+ z = <T> /*@returnType=String*/ (/*@type=String*/ x) =>
x. /*@target=String.substring*/ substring(3);
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.expect
index 9dc00c4..ac14c85 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.expect
@@ -1,35 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
// - 'List' is from 'dart:core'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
-// ^
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
@@ -39,7 +39,7 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// x;
// ^
//
@@ -53,82 +53,82 @@
static method test() → void {
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
- v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
- ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::String* => "hello") as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
- ^" in 3 as{TypeError} core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::String v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => "hello";
+ v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
+ ^" in (<T extends core::Object? = dynamic>(core::String x) → core::String => "hello") as{TypeError,ForNonNullableByDefault} <S extends core::Object? = dynamic>(core::int) → core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::String v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => "hello";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
3;
- ^" in 3 as{TypeError} core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
- v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::List<core::String>
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::List<core::String> v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> => <core::String>["hello"];
+ v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
- 'List' is from 'dart:core'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
- ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::List<core::String*>* => <core::String*>["hello"]) as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+ ^" in (<T extends core::Object? = dynamic>(core::String x) → core::List<core::String> => <core::String>["hello"]) as{TypeError,ForNonNullableByDefault} <S extends core::Object? = dynamic>(core::int) → core::List<core::String>;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> => <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* {
- return <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> {
+ return <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
};
}
{
- function int2int<S extends core::Object* = dynamic>(core::int* x) → core::int*
- return null;
- function int2String<T extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- function string2String<T extends core::Object* = dynamic>(core::String* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::int* x = int2int;
- x = <T extends core::Object* = dynamic>(core::int* x) → core::int* => x;
- x = <T extends core::Object* = dynamic>(core::int* x) → core::int* => x.{core::num::+}(1){(core::num*) →* core::int*};
- <T extends core::Object* = dynamic>(core::int*) →* core::String* y = int2String;
- y = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function int2int<S extends core::Object? = dynamic>(core::int x) → core::int
+ return throw "";
+ function int2String<T extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ function string2String<T extends core::Object? = dynamic>(core::String x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::int x = int2int;
+ x = <T extends core::Object? = dynamic>(core::int x) → core::int => x;
+ x = <T extends core::Object? = dynamic>(core::int x) → core::int => x.{core::num::+}(1){(core::num) → core::int};
+ <T extends core::Object? = dynamic>(core::int) → core::String y = int2String;
+ y = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
x;
- ^" in x as{TypeError} core::String*;
- y = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'int'.
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
+ y = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'substring'.
.substring(3);
- ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic} core::String*;
- <T extends core::Object* = dynamic>(core::String*) →* core::String* z = string2String;
- z = <T extends core::Object* = dynamic>(core::String* x) → core::String* => x.{core::String::substring}(3){(core::int*, [core::int*]) →* core::String*};
+ ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ <T extends core::Object? = dynamic>(core::String) → core::String z = string2String;
+ z = <T extends core::Object? = dynamic>(core::String x) → core::String => x.{core::String::substring}(3){(core::int, [core::int?]) → core::String};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.modular.expect
index 9dc00c4..ac14c85 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.modular.expect
@@ -1,35 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
// - 'List' is from 'dart:core'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
-// ^
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
@@ -39,7 +39,7 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// x;
// ^
//
@@ -53,82 +53,82 @@
static method test() → void {
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
- v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
- ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::String* => "hello") as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
- ^" in 3 as{TypeError} core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::String v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => "hello";
+ v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
+ ^" in (<T extends core::Object? = dynamic>(core::String x) → core::String => "hello") as{TypeError,ForNonNullableByDefault} <S extends core::Object? = dynamic>(core::int) → core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::String v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => "hello";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
3;
- ^" in 3 as{TypeError} core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>["hello"];
- v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::List<core::String>
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::List<core::String> v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> => <core::String>["hello"];
+ v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
- 'List' is from 'dart:core'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
- ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::List<core::String*>* => <core::String*>["hello"]) as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+ ^" in (<T extends core::Object? = dynamic>(core::String x) → core::List<core::String> => <core::String>["hello"]) as{TypeError,ForNonNullableByDefault} <S extends core::Object? = dynamic>(core::int) → core::List<core::String>;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> => <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* {
- return <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> {
+ return <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*];
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String];
};
}
{
- function int2int<S extends core::Object* = dynamic>(core::int* x) → core::int*
- return null;
- function int2String<T extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- function string2String<T extends core::Object* = dynamic>(core::String* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::int* x = int2int;
- x = <T extends core::Object* = dynamic>(core::int* x) → core::int* => x;
- x = <T extends core::Object* = dynamic>(core::int* x) → core::int* => x.{core::num::+}(1){(core::num*) →* core::int*};
- <T extends core::Object* = dynamic>(core::int*) →* core::String* y = int2String;
- y = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function int2int<S extends core::Object? = dynamic>(core::int x) → core::int
+ return throw "";
+ function int2String<T extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ function string2String<T extends core::Object? = dynamic>(core::String x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::int x = int2int;
+ x = <T extends core::Object? = dynamic>(core::int x) → core::int => x;
+ x = <T extends core::Object? = dynamic>(core::int x) → core::int => x.{core::num::+}(1){(core::num) → core::int};
+ <T extends core::Object? = dynamic>(core::int) → core::String y = int2String;
+ y = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
x;
- ^" in x as{TypeError} core::String*;
- y = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'int'.
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
+ y = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'substring'.
.substring(3);
- ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic} core::String*;
- <T extends core::Object* = dynamic>(core::String*) →* core::String* z = string2String;
- z = <T extends core::Object* = dynamic>(core::String* x) → core::String* => x.{core::String::substring}(3){(core::int*, [core::int*]) →* core::String*};
+ ^^^^^^^^^" in x{<unresolved>}.substring(3) as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ <T extends core::Object? = dynamic>(core::String) → core::String z = string2String;
+ z = <T extends core::Object? = dynamic>(core::String x) → core::String => x.{core::String::substring}(3){(core::int, [core::int?]) → core::String};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.transformed.expect
index b14ba4c..07eaa22 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart.weak.transformed.expect
@@ -1,35 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ 3;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// return /*error:RETURN_OF_INVALID_TYPE*/ x;
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
// - 'List' is from 'dart:core'.
-// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
-// ^
+// v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
@@ -39,7 +39,7 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
// x;
// ^
//
@@ -53,82 +53,82 @@
static method test() → void {
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
- v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:68: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (String x) =>
- ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::String* => "hello") as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=String* */ (int x) => 3;
- ^" in 3 as{TypeError} core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::String v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => "hello";
+ v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:14:65: Error: A value of type 'String Function<T>(String)' can't be assigned to a variable of type 'String Function<S>(int)'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (String x) =>
+ ^" in (<T extends core::Object? = dynamic>(core::String x) → core::String => "hello") as{TypeError,ForNonNullableByDefault} <S extends core::Object? = dynamic>(core::int) → core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:16:76: Error: A value of type 'int' can't be returned from a function with return type 'String'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=String*/ (int x) => 3;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:18:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::String* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => "hello";
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::String v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => "hello";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:28:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
3;
- ^" in 3 as{TypeError} core::String*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:30:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ 3;
- ^" in 3 as{TypeError} core::String*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String;
};
- v = <T extends core::Object* = dynamic>(core::int* x) → core::String* {
- return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ v = <T extends core::Object? = dynamic>(core::int x) → core::String {
+ return invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:33:47: Error: A value of type 'int' can't be returned from a function with return type 'String'.
return /*error:RETURN_OF_INVALID_TYPE*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
};
}
{
- function f<S extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>* v = f;
- v = <T extends core::Object* = dynamic>(core::int* x) → Null => null;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello");
- v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:75: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
+ function f<S extends core::Object? = dynamic>(core::int x) → core::List<core::String>
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::List<core::String> v = f;
+ v = <T extends core::Object? = dynamic>(core::int x) → Never => throw "";
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> => core::_GrowableList::_literal1<core::String>("hello");
+ v = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:43:71: Error: A value of type 'List<String> Function<T>(String)' can't be assigned to a variable of type 'List<String> Function<S>(int)'.
- 'List' is from 'dart:core'.
- v = /*error:INVALID_ASSIGNMENT*/ <T> /*@ returnType=List<String*>* */ (String
- ^" in (<T extends core::Object* = dynamic>(core::String* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>("hello")) as{TypeError} <S extends core::Object* = dynamic>(core::int*) →* core::List<core::String*>*;
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* => core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ v = /*error:INVALID_ASSIGNMENT*/ <T> /*@returnType=List<String>*/ (String
+ ^" in (<T extends core::Object? = dynamic>(core::String x) → core::List<core::String> => core::_GrowableList::_literal1<core::String>("hello")) as{TypeError,ForNonNullableByDefault} <S extends core::Object? = dynamic>(core::int) → core::List<core::String>;
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> => core::_GrowableList::_literal1<core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:46:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*);
- v = <T extends core::Object* = dynamic>(core::int* x) → core::List<core::String*>* {
- return core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ v = <T extends core::Object? = dynamic>(core::int x) → core::List<core::String> {
+ return core::_GrowableList::_literal1<core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:50:52: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
};
}
{
- function int2int<S extends core::Object* = dynamic>(core::int* x) → core::int*
- return null;
- function int2String<T extends core::Object* = dynamic>(core::int* x) → core::String*
- return null;
- function string2String<T extends core::Object* = dynamic>(core::String* x) → core::String*
- return null;
- <S extends core::Object* = dynamic>(core::int*) →* core::int* x = int2int;
- x = <T extends core::Object* = dynamic>(core::int* x) → core::int* => x;
- x = <T extends core::Object* = dynamic>(core::int* x) → core::int* => x.{core::num::+}(1){(core::num*) →* core::int*};
- <T extends core::Object* = dynamic>(core::int*) →* core::String* y = int2String;
- y = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ function int2int<S extends core::Object? = dynamic>(core::int x) → core::int
+ return throw "";
+ function int2String<T extends core::Object? = dynamic>(core::int x) → core::String
+ return throw "";
+ function string2String<T extends core::Object? = dynamic>(core::String x) → core::String
+ return throw "";
+ <S extends core::Object? = dynamic>(core::int) → core::int x = int2int;
+ x = <T extends core::Object? = dynamic>(core::int x) → core::int => x;
+ x = <T extends core::Object? = dynamic>(core::int x) → core::int => x.{core::num::+}(1){(core::num) → core::int};
+ <T extends core::Object? = dynamic>(core::int) → core::String y = int2String;
+ y = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:64:9: Error: A value of type 'int' can't be returned from a function with return type 'String'.
x;
- ^" in x as{TypeError} core::String*;
- y = <T extends core::Object* = dynamic>(core::int* x) → core::String* => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'int'.
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
+ y = <T extends core::Object? = dynamic>(core::int x) → core::String => invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_generic_function_expressions.dart:66:10: Error: The method 'substring' isn't defined for the class 'int'.
Try correcting the name to the name of an existing method, or defining a method named 'substring'.
.substring(3);
^^^^^^^^^" in x{<unresolved>}.substring(3);
- <T extends core::Object* = dynamic>(core::String*) →* core::String* z = string2String;
- z = <T extends core::Object* = dynamic>(core::String* x) → core::String* => x.{core::String::substring}(3){(core::int*, [core::int*]) →* core::String*};
+ <T extends core::Object? = dynamic>(core::String) → core::String z = string2String;
+ z = <T extends core::Object? = dynamic>(core::String x) → core::String => x.{core::String::substring}(3){(core::int, [core::int?]) → core::String};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart
index 75a2524..8d6ed3c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -28,18 +28,18 @@
}
class E<S, T> extends A<C<S>, T> {
- E(T a) : super(null, a);
+ E(T a) : super(throw '', a);
}
class F<S, T> extends A<S, T> {
- F(S x, T y, {List<S> a, List<T> b}) : super(x, y);
- F.named(S x, T y, [S a, T b]) : super(a, b);
+ F(S x, T y, {required List<S> a, required List<T> b}) : super(x, y);
+ F.named(S x, T y, [S? a, T? b]) : super(x, y);
}
void test() {
{
- A<int, String> a0 = new /*@ typeArgs=int*, String* */ A(3, "hello");
- A<int, String> a1 = new /*@ typeArgs=int*, String* */ A.named(3, "hello");
+ A<int, String> a0 = new /*@typeArgs=int, String*/ A(3, "hello");
+ A<int, String> a1 = new /*@typeArgs=int, String*/ A.named(3, "hello");
A<int, String> a2 = new A<int, String>(3, "hello");
A<int, String> a3 = new A<int, String>.named(3, "hello");
A<int, String>
@@ -49,16 +49,16 @@
3, "hello");
}
{
- A<int, String> a0 = new /*@ typeArgs=int*, String* */ A(
+ A<int, String> a0 = new /*@typeArgs=int, String*/ A(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- A<int, String> a1 = new /*@ typeArgs=int*, String* */ A.named(
+ A<int, String> a1 = new /*@typeArgs=int, String*/ A.named(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
}
{
- A<int, String> a0 = new /*@ typeArgs=String*, int* */ B("hello", 3);
- A<int, String> a1 = new /*@ typeArgs=String*, int* */ B.named("hello", 3);
+ A<int, String> a0 = new /*@typeArgs=String, int*/ B("hello", 3);
+ A<int, String> a1 = new /*@typeArgs=String, int*/ B.named("hello", 3);
A<int, String> a2 = new B<String, int>("hello", 3);
A<int, String> a3 = new B<String, int>.named("hello", 3);
A<int, String>
@@ -68,30 +68,30 @@
"hello", 3);
}
{
- A<int, String> a0 = new /*@ typeArgs=String*, int* */ B(
+ A<int, String> a0 = new /*@typeArgs=String, int*/ B(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
- A<int, String> a1 = new /*@ typeArgs=String*, int* */ B.named(
+ A<int, String> a1 = new /*@typeArgs=String, int*/ B.named(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
}
{
- A<int, int> a0 = new /*@ typeArgs=int* */ C(3);
- A<int, int> a1 = new /*@ typeArgs=int* */ C.named(3);
+ A<int, int> a0 = new /*@typeArgs=int*/ C(3);
+ A<int, int> a1 = new /*@typeArgs=int*/ C.named(3);
A<int, int> a2 = new C<int>(3);
A<int, int> a3 = new C<int>.named(3);
A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);
A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
}
{
- A<int, int> a0 = new /*@ typeArgs=int* */ C(
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
- A<int, int> a1 = new /*@ typeArgs=int* */ C.named(
+ A<int, int> a0 =
+ new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+ A<int, int> a1 = new /*@typeArgs=int*/ C.named(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
}
{
- A<int, String> a0 = new /*@ typeArgs=dynamic, String* */ D("hello");
- A<int, String> a1 = new /*@ typeArgs=dynamic, String* */ D.named("hello");
+ A<int, String> a0 = new /*@typeArgs=dynamic, String*/ D("hello");
+ A<int, String> a1 = new /*@typeArgs=dynamic, String*/ D.named("hello");
A<int, String> a2 = new D<int, String>("hello");
A<int, String> a3 = new D<String, String>.named("hello");
A<int, String>
@@ -101,37 +101,35 @@
"hello");
}
{
- A<int, String> a0 = new /*@ typeArgs=dynamic, String* */ D(
+ A<int, String> a0 = new /*@typeArgs=dynamic, String*/ D(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- A<int, String> a1 = new /*@ typeArgs=dynamic, String* */ D.named(
+ A<int, String> a1 = new /*@typeArgs=dynamic, String*/ D.named(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
}
{
- A<C<int>, String> a0 = new /*@ typeArgs=int*, String* */ E("hello");
+ A<C<int>, String> a0 = new /*@typeArgs=int, String*/ E("hello");
}
{
// Check named and optional arguments
- A<int, String> a0 = new /*@ typeArgs=int*, String* */ F(3, "hello",
- a: /*@ typeArgs=int* */ [3], b: /*@ typeArgs=String* */ ["hello"]);
- A<int, String> a1 = new /*@ typeArgs=int*, String* */ F(3, "hello",
- a: /*@ typeArgs=int* */ [
+ A<int, String> a0 = new /*@typeArgs=int, String*/ F(3, "hello",
+ a: /*@typeArgs=int*/ [3], b: /*@typeArgs=String*/ ["hello"]);
+ A<int, String> a1 = new /*@typeArgs=int, String*/ F(3, "hello",
+ a: /*@typeArgs=int*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
],
- b: /*@ typeArgs=String* */ [
+ b: /*@typeArgs=String*/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
]);
A<int, String> a2 =
- new /*@ typeArgs=int*, String* */ F.named(3, "hello", 3, "hello");
- A<int, String> a3 = new /*@ typeArgs=int*, String* */ F.named(3, "hello");
- A<int, String> a4 = new /*@ typeArgs=int*, String* */ F.named(
+ new /*@typeArgs=int, String*/ F.named(3, "hello", 3, "hello");
+ A<int, String> a3 = new /*@typeArgs=int, String*/ F.named(3, "hello");
+ A<int, String> a4 = new /*@typeArgs=int, String*/ F.named(
3,
"hello",
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- A<int, String> a5 = new /*@ typeArgs=int*, String* */ F.named(
- 3,
- "hello",
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+ A<int, String> a5 = new /*@typeArgs=int, String*/ F.named(
+ 3, "hello", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline.expect
index eb02fb5..0d0c428 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<S, T> {
@@ -24,12 +23,12 @@
}
class E<S, T> extends A<C<S>, T> {
- E(T a) : super(null, a);
+ E(T a) : super(throw '', a);
}
class F<S, T> extends A<S, T> {
- F(S x, T y, {List<S> a, List<T> b}) : super(x, y);
- F.named(S x, T y, [S a, T b]) : super(a, b);
+ F(S x, T y, {required List<S> a, required List<T> b}) : super(x, y);
+ F.named(S x, T y, [S? a, T? b]) : super(x, y);
}
void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline_modelled.expect
index fa8daa5..a847680 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<S, T> {
@@ -24,12 +23,12 @@
}
class E<S, T> extends A<C<S>, T> {
- E(T a) : super(null, a);
+ E(T a) : super(throw '', a);
}
class F<S, T> extends A<S, T> {
- F(S x, T y, {List<S> a, List<T> b}) : super(x, y);
- F.named(S x, T y, [S a, T b]) : super(a, b);
+ F(S x, T y, {required List<S> a, required List<T> b}) : super(x, y);
+ F.named(S x, T y, [S? a, T? b]) : super(x, y);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.expect
index ef65173..9a1fb30 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.expect
@@ -1,16 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'A<int, dynamic>' that isn't of expected type 'A<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: A value of type 'A<int, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
// - 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-// Change the type of the object being constructed or the context in which it is used.
// a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, "hello");
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'A<dynamic, dynamic>' that isn't of expected type 'A<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: A value of type 'A<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
// - 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-// Change the type of the object being constructed or the context in which it is used.
// a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(
// ^
//
@@ -70,9 +68,9 @@
// A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:72: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
@@ -106,203 +104,191 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String?'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:132:60: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
+// 3, "hello", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+// ^
//
import self as self;
import "dart:core" as core;
-class A<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::S* x;
- covariant-by-class field self::A::T* y;
- constructor •(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+class A<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::S% x;
+ covariant-by-class field self::A::T% y;
+ constructor •(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
: self::A::x = x, self::A::y = y, super core::Object::•()
;
- constructor named(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+ constructor named(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
: self::A::x = x, self::A::y = y, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::B::T*, self::B::S*> {
- constructor •(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+class B<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::B::T%, self::B::S%> {
+ constructor •(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
: super self::A::•(x, y)
;
- constructor named(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+ constructor named(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
: super self::A::named(x, y)
;
}
-class C<S extends core::Object* = dynamic> extends self::B<self::C::S*, self::C::S*> {
- constructor •(self::C::S* a) → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::B<self::C::S%, self::C::S%> {
+ constructor •(self::C::S% a) → self::C<self::C::S%>
: super self::B::•(a, a)
;
- constructor named(self::C::S* a) → self::C<self::C::S*>*
+ constructor named(self::C::S% a) → self::C<self::C::S%>
: super self::B::named(a, a)
;
}
-class D<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::B<self::D::T*, core::int*> {
- constructor •(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+class D<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::B<self::D::T%, core::int> {
+ constructor •(self::D::T% a) → self::D<self::D::S%, self::D::T%>
: super self::B::•(a, 3)
;
- constructor named(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+ constructor named(self::D::T% a) → self::D<self::D::S%, self::D::T%>
: super self::B::named(a, 3)
;
}
-class E<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::C<self::E::S*>*, self::E::T*> {
- constructor •(self::E::T* a) → self::E<self::E::S*, self::E::T*>*
- : super self::A::•(null, a)
+class E<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::C<self::E::S%>, self::E::T%> {
+ constructor •(self::E::T% a) → self::E<self::E::S%, self::E::T%>
+ : super self::A::•(throw "", a)
;
}
-class F<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::F::S*, self::F::T*> {
- constructor •(self::F::S* x, self::F::T* y, {core::List<self::F::S*>* a = #C1, core::List<self::F::T*>* b = #C1}) → self::F<self::F::S*, self::F::T*>*
+class F<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::F::S%, self::F::T%> {
+ constructor •(self::F::S% x, self::F::T% y, {required core::List<self::F::S%> a = #C1, required core::List<self::F::T%> b = #C1}) → self::F<self::F::S%, self::F::T%>
: super self::A::•(x, y)
;
- constructor named(self::F::S* x, self::F::T* y, [self::F::S* a = #C1, self::F::T* b = #C1]) → self::F<self::F::S*, self::F::T*>*
- : super self::A::•(a, b)
+ constructor named(self::F::S% x, self::F::T% y, [self::F::S? a = #C1, self::F::T? b = #C1]) → self::F<self::F::S%, self::F::T%>
+ : super self::A::•(x, y)
;
}
static method test() → void {
{
- self::A<core::int*, core::String*>* a0 = new self::A::•<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a1 = new self::A::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a2 = new self::A::•<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a3 = new self::A::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'A<int, dynamic>' that isn't of expected type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a2 = new self::A::•<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a3 = new self::A::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: A value of type 'A<int, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-Change the type of the object being constructed or the context in which it is used.
a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, \"hello\");
- ^" in new self::A::•<core::int*, dynamic>(3, "hello");
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'A<dynamic, dynamic>' that isn't of expected type 'A<int, String>'.
+ ^" in new self::A::•<core::int, dynamic>(3, "hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: A value of type 'A<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-Change the type of the object being constructed or the context in which it is used.
a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(
- ^" in new self::A::named<dynamic, dynamic>(3, "hello");
+ ^" in new self::A::named<dynamic, dynamic>(3, "hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::A::•<core::int*, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a1 = new self::A::named<core::int*, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
}
{
- self::A<core::int*, core::String*>* a0 = new self::B::•<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a1 = new self::B::named<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a2 = new self::B::•<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a3 = new self::B::named<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'B<String, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a2 = new self::B::•<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a3 = new self::B::named<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'B<String, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'B' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);
- ^" in new self::B::•<core::String*, dynamic>("hello", 3) as{TypeError} self::A<core::int*, core::String*>*;
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'B<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ ^" in new self::B::•<core::String, dynamic>("hello", 3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'B<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'B' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(
- ^" in new self::B::named<dynamic, dynamic>("hello", 3) as{TypeError} self::A<core::int*, core::String*>*;
+ ^" in new self::B::named<dynamic, dynamic>("hello", 3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::B::•<core::String*, core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
- ^" in 3 as{TypeError} core::String*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
- self::A<core::int*, core::String*>* a1 = new self::B::named<core::String*, core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
- ^" in 3 as{TypeError} core::String*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
}
{
- self::A<core::int*, core::int*>* a0 = new self::C::•<core::int*>(3);
- self::A<core::int*, core::int*>* a1 = new self::C::named<core::int*>(3);
- self::A<core::int*, core::int*>* a2 = new self::C::•<core::int*>(3);
- self::A<core::int*, core::int*>* a3 = new self::C::named<core::int*>(3);
- self::A<core::int*, core::int*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(3);
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(3);
+ self::A<core::int, core::int> a2 = new self::C::•<core::int>(3);
+ self::A<core::int, core::int> a3 = new self::C::named<core::int>(3);
+ self::A<core::int, core::int> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
- 'C' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);
- ^" in new self::C::•<dynamic>(3) as{TypeError} self::A<core::int*, core::int*>*;
- self::A<core::int*, core::int*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
+ ^" in new self::C::•<dynamic>(3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::int>;
+ self::A<core::int, core::int> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
- 'C' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
- ^" in new self::C::named<dynamic>(3) as{TypeError} self::A<core::int*, core::int*>*;
+ ^" in new self::C::named<dynamic>(3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::int>;
}
{
- self::A<core::int*, core::int*>* a0 = new self::C::•<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:72: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
- self::A<core::int*, core::int*>* a1 = new self::C::named<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
}
{
- self::A<core::int*, core::String*>* a0 = new self::D::•<dynamic, core::String*>("hello");
- self::A<core::int*, core::String*>* a1 = new self::D::named<dynamic, core::String*>("hello");
- self::A<core::int*, core::String*>* a2 = new self::D::•<core::int*, core::String*>("hello");
- self::A<core::int*, core::String*>* a3 = new self::D::named<core::String*, core::String*>("hello");
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'D<num, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>("hello");
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>("hello");
+ self::A<core::int, core::String> a2 = new self::D::•<core::int, core::String>("hello");
+ self::A<core::int, core::String> a3 = new self::D::named<core::String, core::String>("hello");
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'D<num, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'D' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");
- ^" in new self::D::•<core::num*, dynamic>("hello") as{TypeError} self::A<core::int*, core::String*>*;
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'D<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ ^" in new self::D::•<core::num, dynamic>("hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'D<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'D' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(
- ^" in new self::D::named<dynamic, dynamic>("hello") as{TypeError} self::A<core::int*, core::String*>*;
+ ^" in new self::D::named<dynamic, dynamic>("hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::D::•<dynamic, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a1 = new self::D::named<dynamic, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
}
{
- self::A<self::C<core::int*>*, core::String*>* a0 = new self::E::•<core::int*, core::String*>("hello");
+ self::A<self::C<core::int>, core::String> a0 = new self::E::•<core::int, core::String>("hello");
}
{
- self::A<core::int*, core::String*>* a0 = new self::F::•<core::int*, core::String*>(3, "hello", a: <core::int*>[3], b: <core::String*>["hello"]);
- self::A<core::int*, core::String*>* a1 = new self::F::•<core::int*, core::String*>(3, "hello", a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ self::A<core::int, core::String> a0 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[3], b: <core::String>["hello"]);
+ self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*], b: <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], b: <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*]);
- self::A<core::int*, core::String*>* a2 = new self::F::named<core::int*, core::String*>(3, "hello", 3, "hello");
- self::A<core::int*, core::String*>* a3 = new self::F::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a4 = new self::F::named<core::int*, core::String*>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String]);
+ self::A<core::int, core::String> a2 = new self::F::named<core::int, core::String>(3, "hello", 3, "hello");
+ self::A<core::int, core::String> a3 = new self::F::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String?'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a5 = new self::F::named<core::int*, core::String*>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String?);
+ self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:132:60: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
+ 3, \"hello\", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.modular.expect
index ef65173..9a1fb30 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.modular.expect
@@ -1,16 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'A<int, dynamic>' that isn't of expected type 'A<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: A value of type 'A<int, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
// - 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-// Change the type of the object being constructed or the context in which it is used.
// a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, "hello");
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'A<dynamic, dynamic>' that isn't of expected type 'A<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: A value of type 'A<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
// - 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-// Change the type of the object being constructed or the context in which it is used.
// a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(
// ^
//
@@ -70,9 +68,9 @@
// A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:72: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
@@ -106,203 +104,191 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String?'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:132:60: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
+// 3, "hello", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+// ^
//
import self as self;
import "dart:core" as core;
-class A<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::S* x;
- covariant-by-class field self::A::T* y;
- constructor •(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+class A<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::S% x;
+ covariant-by-class field self::A::T% y;
+ constructor •(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
: self::A::x = x, self::A::y = y, super core::Object::•()
;
- constructor named(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+ constructor named(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
: self::A::x = x, self::A::y = y, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::B::T*, self::B::S*> {
- constructor •(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+class B<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::B::T%, self::B::S%> {
+ constructor •(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
: super self::A::•(x, y)
;
- constructor named(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+ constructor named(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
: super self::A::named(x, y)
;
}
-class C<S extends core::Object* = dynamic> extends self::B<self::C::S*, self::C::S*> {
- constructor •(self::C::S* a) → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::B<self::C::S%, self::C::S%> {
+ constructor •(self::C::S% a) → self::C<self::C::S%>
: super self::B::•(a, a)
;
- constructor named(self::C::S* a) → self::C<self::C::S*>*
+ constructor named(self::C::S% a) → self::C<self::C::S%>
: super self::B::named(a, a)
;
}
-class D<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::B<self::D::T*, core::int*> {
- constructor •(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+class D<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::B<self::D::T%, core::int> {
+ constructor •(self::D::T% a) → self::D<self::D::S%, self::D::T%>
: super self::B::•(a, 3)
;
- constructor named(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+ constructor named(self::D::T% a) → self::D<self::D::S%, self::D::T%>
: super self::B::named(a, 3)
;
}
-class E<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::C<self::E::S*>*, self::E::T*> {
- constructor •(self::E::T* a) → self::E<self::E::S*, self::E::T*>*
- : super self::A::•(null, a)
+class E<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::C<self::E::S%>, self::E::T%> {
+ constructor •(self::E::T% a) → self::E<self::E::S%, self::E::T%>
+ : super self::A::•(throw "", a)
;
}
-class F<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::F::S*, self::F::T*> {
- constructor •(self::F::S* x, self::F::T* y, {core::List<self::F::S*>* a = #C1, core::List<self::F::T*>* b = #C1}) → self::F<self::F::S*, self::F::T*>*
+class F<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::F::S%, self::F::T%> {
+ constructor •(self::F::S% x, self::F::T% y, {required core::List<self::F::S%> a = #C1, required core::List<self::F::T%> b = #C1}) → self::F<self::F::S%, self::F::T%>
: super self::A::•(x, y)
;
- constructor named(self::F::S* x, self::F::T* y, [self::F::S* a = #C1, self::F::T* b = #C1]) → self::F<self::F::S*, self::F::T*>*
- : super self::A::•(a, b)
+ constructor named(self::F::S% x, self::F::T% y, [self::F::S? a = #C1, self::F::T? b = #C1]) → self::F<self::F::S%, self::F::T%>
+ : super self::A::•(x, y)
;
}
static method test() → void {
{
- self::A<core::int*, core::String*>* a0 = new self::A::•<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a1 = new self::A::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a2 = new self::A::•<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a3 = new self::A::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'A<int, dynamic>' that isn't of expected type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a2 = new self::A::•<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a3 = new self::A::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: A value of type 'A<int, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-Change the type of the object being constructed or the context in which it is used.
a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, \"hello\");
- ^" in new self::A::•<core::int*, dynamic>(3, "hello");
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'A<dynamic, dynamic>' that isn't of expected type 'A<int, String>'.
+ ^" in new self::A::•<core::int, dynamic>(3, "hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: A value of type 'A<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-Change the type of the object being constructed or the context in which it is used.
a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(
- ^" in new self::A::named<dynamic, dynamic>(3, "hello");
+ ^" in new self::A::named<dynamic, dynamic>(3, "hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::A::•<core::int*, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a1 = new self::A::named<core::int*, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
}
{
- self::A<core::int*, core::String*>* a0 = new self::B::•<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a1 = new self::B::named<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a2 = new self::B::•<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a3 = new self::B::named<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'B<String, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a2 = new self::B::•<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a3 = new self::B::named<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'B<String, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'B' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);
- ^" in new self::B::•<core::String*, dynamic>("hello", 3) as{TypeError} self::A<core::int*, core::String*>*;
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'B<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ ^" in new self::B::•<core::String, dynamic>("hello", 3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'B<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'B' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(
- ^" in new self::B::named<dynamic, dynamic>("hello", 3) as{TypeError} self::A<core::int*, core::String*>*;
+ ^" in new self::B::named<dynamic, dynamic>("hello", 3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::B::•<core::String*, core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
- ^" in 3 as{TypeError} core::String*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
- self::A<core::int*, core::String*>* a1 = new self::B::named<core::String*, core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
- ^" in 3 as{TypeError} core::String*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
}
{
- self::A<core::int*, core::int*>* a0 = new self::C::•<core::int*>(3);
- self::A<core::int*, core::int*>* a1 = new self::C::named<core::int*>(3);
- self::A<core::int*, core::int*>* a2 = new self::C::•<core::int*>(3);
- self::A<core::int*, core::int*>* a3 = new self::C::named<core::int*>(3);
- self::A<core::int*, core::int*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(3);
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(3);
+ self::A<core::int, core::int> a2 = new self::C::•<core::int>(3);
+ self::A<core::int, core::int> a3 = new self::C::named<core::int>(3);
+ self::A<core::int, core::int> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
- 'C' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);
- ^" in new self::C::•<dynamic>(3) as{TypeError} self::A<core::int*, core::int*>*;
- self::A<core::int*, core::int*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
+ ^" in new self::C::•<dynamic>(3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::int>;
+ self::A<core::int, core::int> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
- 'C' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
- ^" in new self::C::named<dynamic>(3) as{TypeError} self::A<core::int*, core::int*>*;
+ ^" in new self::C::named<dynamic>(3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::int>;
}
{
- self::A<core::int*, core::int*>* a0 = new self::C::•<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:72: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
- self::A<core::int*, core::int*>* a1 = new self::C::named<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
}
{
- self::A<core::int*, core::String*>* a0 = new self::D::•<dynamic, core::String*>("hello");
- self::A<core::int*, core::String*>* a1 = new self::D::named<dynamic, core::String*>("hello");
- self::A<core::int*, core::String*>* a2 = new self::D::•<core::int*, core::String*>("hello");
- self::A<core::int*, core::String*>* a3 = new self::D::named<core::String*, core::String*>("hello");
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'D<num, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>("hello");
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>("hello");
+ self::A<core::int, core::String> a2 = new self::D::•<core::int, core::String>("hello");
+ self::A<core::int, core::String> a3 = new self::D::named<core::String, core::String>("hello");
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'D<num, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'D' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");
- ^" in new self::D::•<core::num*, dynamic>("hello") as{TypeError} self::A<core::int*, core::String*>*;
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'D<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ ^" in new self::D::•<core::num, dynamic>("hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'D<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'D' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(
- ^" in new self::D::named<dynamic, dynamic>("hello") as{TypeError} self::A<core::int*, core::String*>*;
+ ^" in new self::D::named<dynamic, dynamic>("hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::D::•<dynamic, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a1 = new self::D::named<dynamic, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
}
{
- self::A<self::C<core::int*>*, core::String*>* a0 = new self::E::•<core::int*, core::String*>("hello");
+ self::A<self::C<core::int>, core::String> a0 = new self::E::•<core::int, core::String>("hello");
}
{
- self::A<core::int*, core::String*>* a0 = new self::F::•<core::int*, core::String*>(3, "hello", a: <core::int*>[3], b: <core::String*>["hello"]);
- self::A<core::int*, core::String*>* a1 = new self::F::•<core::int*, core::String*>(3, "hello", a: <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ self::A<core::int, core::String> a0 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[3], b: <core::String>["hello"]);
+ self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*], b: <core::String*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int], b: <core::String>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*]);
- self::A<core::int*, core::String*>* a2 = new self::F::named<core::int*, core::String*>(3, "hello", 3, "hello");
- self::A<core::int*, core::String*>* a3 = new self::F::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a4 = new self::F::named<core::int*, core::String*>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String]);
+ self::A<core::int, core::String> a2 = new self::F::named<core::int, core::String>(3, "hello", 3, "hello");
+ self::A<core::int, core::String> a3 = new self::F::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String?'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a5 = new self::F::named<core::int*, core::String*>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String?);
+ self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:132:60: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
+ 3, \"hello\", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.outline.expect
index a2ec85f..f5a64a2 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.outline.expect
@@ -1,51 +1,41 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::S* x;
- covariant-by-class field self::A::T* y;
- constructor •(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+class A<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::S% x;
+ covariant-by-class field self::A::T% y;
+ constructor •(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
;
- constructor named(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class B<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::B::T*, self::B::S*> {
- constructor •(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
- ;
- constructor named(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+ constructor named(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
;
}
-class C<S extends core::Object* = dynamic> extends self::B<self::C::S*, self::C::S*> {
- constructor •(self::C::S* a) → self::C<self::C::S*>*
+class B<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::B::T%, self::B::S%> {
+ constructor •(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
;
- constructor named(self::C::S* a) → self::C<self::C::S*>*
+ constructor named(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
;
}
-class D<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::B<self::D::T*, core::int*> {
- constructor •(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+class C<S extends core::Object? = dynamic> extends self::B<self::C::S%, self::C::S%> {
+ constructor •(self::C::S% a) → self::C<self::C::S%>
;
- constructor named(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+ constructor named(self::C::S% a) → self::C<self::C::S%>
;
}
-class E<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::C<self::E::S*>*, self::E::T*> {
- constructor •(self::E::T* a) → self::E<self::E::S*, self::E::T*>*
+class D<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::B<self::D::T%, core::int> {
+ constructor •(self::D::T% a) → self::D<self::D::S%, self::D::T%>
+ ;
+ constructor named(self::D::T% a) → self::D<self::D::S%, self::D::T%>
;
}
-class F<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::F::S*, self::F::T*> {
- constructor •(self::F::S* x, self::F::T* y, {core::List<self::F::S*>* a = null, core::List<self::F::T*>* b = null}) → self::F<self::F::S*, self::F::T*>*
+class E<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::C<self::E::S%>, self::E::T%> {
+ constructor •(self::E::T% a) → self::E<self::E::S%, self::E::T%>
;
- constructor named(self::F::S* x, self::F::T* y, [self::F::S* a = null, self::F::T* b = null]) → self::F<self::F::S*, self::F::T*>*
+}
+class F<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::F::S%, self::F::T%> {
+ constructor •(self::F::S% x, self::F::T% y, {required core::List<self::F::S%> a = null, required core::List<self::F::T%> b = null}) → self::F<self::F::S%, self::F::T%>
+ ;
+ constructor named(self::F::S% x, self::F::T% y, [self::F::S? a = null, self::F::T? b = null]) → self::F<self::F::S%, self::F::T%>
;
}
static method test() → void
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.transformed.expect
index 82fa878..ed80e37 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart.weak.transformed.expect
@@ -1,16 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'A<int, dynamic>' that isn't of expected type 'A<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: A value of type 'A<int, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
// - 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-// Change the type of the object being constructed or the context in which it is used.
// a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, "hello");
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'A<dynamic, dynamic>' that isn't of expected type 'A<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: A value of type 'A<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
// - 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-// Change the type of the object being constructed or the context in which it is used.
// a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(
// ^
//
@@ -70,9 +68,9 @@
// A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:72: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+// ^
//
// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
@@ -106,203 +104,191 @@
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String?'.
// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
-// ^
+// pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:132:60: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
+// 3, "hello", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ "hello");
+// ^
//
import self as self;
import "dart:core" as core;
-class A<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::S* x;
- covariant-by-class field self::A::T* y;
- constructor •(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+class A<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::S% x;
+ covariant-by-class field self::A::T% y;
+ constructor •(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
: self::A::x = x, self::A::y = y, super core::Object::•()
;
- constructor named(self::A::S* x, self::A::T* y) → self::A<self::A::S*, self::A::T*>*
+ constructor named(self::A::S% x, self::A::T% y) → self::A<self::A::S%, self::A::T%>
: self::A::x = x, self::A::y = y, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::B::T*, self::B::S*> {
- constructor •(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+class B<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::B::T%, self::B::S%> {
+ constructor •(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
: super self::A::•(x, y)
;
- constructor named(self::B::S* y, self::B::T* x) → self::B<self::B::S*, self::B::T*>*
+ constructor named(self::B::S% y, self::B::T% x) → self::B<self::B::S%, self::B::T%>
: super self::A::named(x, y)
;
}
-class C<S extends core::Object* = dynamic> extends self::B<self::C::S*, self::C::S*> {
- constructor •(self::C::S* a) → self::C<self::C::S*>*
+class C<S extends core::Object? = dynamic> extends self::B<self::C::S%, self::C::S%> {
+ constructor •(self::C::S% a) → self::C<self::C::S%>
: super self::B::•(a, a)
;
- constructor named(self::C::S* a) → self::C<self::C::S*>*
+ constructor named(self::C::S% a) → self::C<self::C::S%>
: super self::B::named(a, a)
;
}
-class D<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::B<self::D::T*, core::int*> {
- constructor •(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+class D<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::B<self::D::T%, core::int> {
+ constructor •(self::D::T% a) → self::D<self::D::S%, self::D::T%>
: super self::B::•(a, 3)
;
- constructor named(self::D::T* a) → self::D<self::D::S*, self::D::T*>*
+ constructor named(self::D::T% a) → self::D<self::D::S%, self::D::T%>
: super self::B::named(a, 3)
;
}
-class E<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::C<self::E::S*>*, self::E::T*> {
- constructor •(self::E::T* a) → self::E<self::E::S*, self::E::T*>*
- : super self::A::•(null, a)
+class E<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::C<self::E::S%>, self::E::T%> {
+ constructor •(self::E::T% a) → self::E<self::E::S%, self::E::T%>
+ : super self::A::•(throw "", a)
;
}
-class F<S extends core::Object* = dynamic, T extends core::Object* = dynamic> extends self::A<self::F::S*, self::F::T*> {
- constructor •(self::F::S* x, self::F::T* y, {core::List<self::F::S*>* a = #C1, core::List<self::F::T*>* b = #C1}) → self::F<self::F::S*, self::F::T*>*
+class F<S extends core::Object? = dynamic, T extends core::Object? = dynamic> extends self::A<self::F::S%, self::F::T%> {
+ constructor •(self::F::S% x, self::F::T% y, {required core::List<self::F::S%> a = #C1, required core::List<self::F::T%> b = #C1}) → self::F<self::F::S%, self::F::T%>
: super self::A::•(x, y)
;
- constructor named(self::F::S* x, self::F::T* y, [self::F::S* a = #C1, self::F::T* b = #C1]) → self::F<self::F::S*, self::F::T*>*
- : super self::A::•(a, b)
+ constructor named(self::F::S% x, self::F::T% y, [self::F::S? a = #C1, self::F::T? b = #C1]) → self::F<self::F::S%, self::F::T%>
+ : super self::A::•(x, y)
;
}
static method test() → void {
{
- self::A<core::int*, core::String*>* a0 = new self::A::•<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a1 = new self::A::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a2 = new self::A::•<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a3 = new self::A::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: The constructor returns type 'A<int, dynamic>' that isn't of expected type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a2 = new self::A::•<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a3 = new self::A::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:46:50: Error: A value of type 'A<int, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-Change the type of the object being constructed or the context in which it is used.
a4 = /*error:INVALID_CAST_NEW_EXPR*/ new A<int, dynamic>(3, \"hello\");
- ^" in new self::A::•<core::int*, dynamic>(3, "hello");
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: The constructor returns type 'A<dynamic, dynamic>' that isn't of expected type 'A<int, String>'.
+ ^" in new self::A::•<core::int, dynamic>(3, "hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:48:50: Error: A value of type 'A<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
-Change the type of the object being constructed or the context in which it is used.
a5 = /*error:INVALID_CAST_NEW_EXPR*/ new A<dynamic, dynamic>.named(
- ^" in new self::A::named<dynamic, dynamic>(3, "hello");
+ ^" in new self::A::named<dynamic, dynamic>(3, "hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::A::•<core::int*, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ self::A<core::int, core::String> a0 = new self::A::•<core::int, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:53:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:54:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a1 = new self::A::named<core::int*, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ self::A<core::int, core::String> a1 = new self::A::named<core::int, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:56:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:57:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
}
{
- self::A<core::int*, core::String*>* a0 = new self::B::•<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a1 = new self::B::named<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a2 = new self::B::•<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a3 = new self::B::named<core::String*, core::int*>("hello", 3);
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'B<String, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a2 = new self::B::•<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a3 = new self::B::named<core::String, core::int>("hello", 3);
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:65:47: Error: A value of type 'B<String, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'B' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a4 = /*error:INVALID_ASSIGNMENT*/ new B<String, dynamic>(\"hello\", 3);
- ^" in new self::B::•<core::String*, dynamic>("hello", 3) as{TypeError} self::A<core::int*, core::String*>*;
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'B<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ ^" in new self::B::•<core::String, dynamic>("hello", 3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:67:47: Error: A value of type 'B<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'B' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a5 = /*error:INVALID_ASSIGNMENT*/ new B<dynamic, dynamic>.named(
- ^" in new self::B::named<dynamic, dynamic>("hello", 3) as{TypeError} self::A<core::int*, core::String*>*;
+ ^" in new self::B::named<dynamic, dynamic>("hello", 3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::B::•<core::String*, core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ self::A<core::int, core::String> a0 = new self::B::•<core::String, core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:72:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
- ^" in 3 as{TypeError} core::String*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:73:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
- self::A<core::int*, core::String*>* a1 = new self::B::named<core::String*, core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ self::A<core::int, core::String> a1 = new self::B::named<core::String, core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:75:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3,
- ^" in 3 as{TypeError} core::String*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:76:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
}
{
- self::A<core::int*, core::int*>* a0 = new self::C::•<core::int*>(3);
- self::A<core::int*, core::int*>* a1 = new self::C::named<core::int*>(3);
- self::A<core::int*, core::int*>* a2 = new self::C::•<core::int*>(3);
- self::A<core::int*, core::int*>* a3 = new self::C::named<core::int*>(3);
- self::A<core::int*, core::int*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(3);
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(3);
+ self::A<core::int, core::int> a2 = new self::C::•<core::int>(3);
+ self::A<core::int, core::int> a3 = new self::C::named<core::int>(3);
+ self::A<core::int, core::int> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:83:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
- 'C' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
A<int, int> a4 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>(3);
- ^" in new self::C::•<dynamic>(3) as{TypeError} self::A<core::int*, core::int*>*;
- self::A<core::int*, core::int*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
+ ^" in new self::C::•<dynamic>(3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::int>;
+ self::A<core::int, core::int> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:84:55: Error: A value of type 'C<dynamic>' can't be assigned to a variable of type 'A<int, int>'.
- 'C' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
A<int, int> a5 = /*error:INVALID_ASSIGNMENT*/ new C<dynamic>.named(3);
- ^" in new self::C::named<dynamic>(3) as{TypeError} self::A<core::int*, core::int*>*;
+ ^" in new self::C::named<dynamic>(3) as{TypeError,ForNonNullableByDefault} self::A<core::int, core::int>;
}
{
- self::A<core::int*, core::int*>* a0 = new self::C::•<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ self::A<core::int, core::int> a0 = new self::C::•<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:88:72: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ new /*@typeArgs=int*/ C(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ self::A<core::int, core::int> a1 = new self::C::named<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
- self::A<core::int*, core::int*>* a1 = new self::C::named<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:90:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
}
{
- self::A<core::int*, core::String*>* a0 = new self::D::•<dynamic, core::String*>("hello");
- self::A<core::int*, core::String*>* a1 = new self::D::named<dynamic, core::String*>("hello");
- self::A<core::int*, core::String*>* a2 = new self::D::•<core::int*, core::String*>("hello");
- self::A<core::int*, core::String*>* a3 = new self::D::named<core::String*, core::String*>("hello");
- self::A<core::int*, core::String*>* a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'D<num, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>("hello");
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>("hello");
+ self::A<core::int, core::String> a2 = new self::D::•<core::int, core::String>("hello");
+ self::A<core::int, core::String> a3 = new self::D::named<core::String, core::String>("hello");
+ self::A<core::int, core::String> a4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:98:47: Error: A value of type 'D<num, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'D' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a4 = /*error:INVALID_ASSIGNMENT*/ new D<num, dynamic>(\"hello\");
- ^" in new self::D::•<core::num*, dynamic>("hello") as{TypeError} self::A<core::int*, core::String*>*;
- self::A<core::int*, core::String*>* a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'D<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
+ ^" in new self::D::•<core::num, dynamic>("hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
+ self::A<core::int, core::String> a5 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:100:47: Error: A value of type 'D<dynamic, dynamic>' can't be assigned to a variable of type 'A<int, String>'.
- 'D' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
- 'A' is from 'pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart'.
a5 = /*error:INVALID_ASSIGNMENT*/ new D<dynamic, dynamic>.named(
- ^" in new self::D::named<dynamic, dynamic>("hello") as{TypeError} self::A<core::int*, core::String*>*;
+ ^" in new self::D::named<dynamic, dynamic>("hello") as{TypeError,ForNonNullableByDefault} self::A<core::int, core::String>;
}
{
- self::A<core::int*, core::String*>* a0 = new self::D::•<dynamic, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ self::A<core::int, core::String> a0 = new self::D::•<dynamic, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:105:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a1 = new self::D::named<dynamic, core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
+ self::A<core::int, core::String> a1 = new self::D::named<dynamic, core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:107:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String);
}
{
- self::A<self::C<core::int*>*, core::String*>* a0 = new self::E::•<core::int*, core::String*>("hello");
+ self::A<self::C<core::int>, core::String> a0 = new self::E::•<core::int, core::String>("hello");
}
{
- self::A<core::int*, core::String*>* a0 = new self::F::•<core::int*, core::String*>(3, "hello", a: core::_GrowableList::_literal1<core::int*>(3), b: core::_GrowableList::_literal1<core::String*>("hello"));
- self::A<core::int*, core::String*>* a1 = new self::F::•<core::int*, core::String*>(3, "hello", a: core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ self::A<core::int, core::String> a0 = new self::F::•<core::int, core::String>(3, "hello", a: core::_GrowableList::_literal1<core::int>(3), b: core::_GrowableList::_literal1<core::String>("hello"));
+ self::A<core::int, core::String> a1 = new self::F::•<core::int, core::String>(3, "hello", a: core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:118:54: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
- ^" in "hello" as{TypeError} core::int*), b: core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int), b: core::_GrowableList::_literal1<core::String>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:121:54: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 3
- ^" in 3 as{TypeError} core::String*));
- self::A<core::int*, core::String*>* a2 = new self::F::named<core::int*, core::String*>(3, "hello", 3, "hello");
- self::A<core::int*, core::String*>* a3 = new self::F::named<core::int*, core::String*>(3, "hello");
- self::A<core::int*, core::String*>* a4 = new self::F::named<core::int*, core::String*>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String));
+ self::A<core::int, core::String> a2 = new self::F::named<core::int, core::String>(3, "hello", 3, "hello");
+ self::A<core::int, core::String> a3 = new self::F::named<core::int, core::String>(3, "hello");
+ self::A<core::int, core::String> a4 = new self::F::named<core::int, core::String>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:129:48: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
- ^" in "hello" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String'.
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?, invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:130:48: Error: The argument type 'int' can't be assigned to the parameter type 'String?'.
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 3);
- ^" in 3 as{TypeError} core::String*);
- self::A<core::int*, core::String*>* a5 = new self::F::named<core::int*, core::String*>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:134:48: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
- ^" in "hello" as{TypeError} core::int*);
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String?);
+ self::A<core::int, core::String> a5 = new self::F::named<core::int, core::String>(3, "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_instance_creations_infer_downwards.dart:132:60: Error: The argument type 'String' can't be assigned to the parameter type 'int?'.
+ 3, \"hello\", /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\");
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int?);
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart
index 76ddf0b..dfe7f55 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart
@@ -1,24 +1,26 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void foo(
- [List<String> list1 = /*@ typeArgs=String* */ const [],
- List<String> list2 = /*@ typeArgs=String* */ const [
+ [List<String> list1 = /*@typeArgs=String**/ const [],
+ List<String> list2 = /*@typeArgs=String**/ const [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
]]) {}
void main() {
{
- List<int> l0 = /*@ typeArgs=int* */ [];
- List<int> l1 = /*@ typeArgs=int* */ [3];
- List<int> l2 = /*@ typeArgs=int* */ [
+ List<int> l0 = /*@typeArgs=int**/ [];
+ List<int> l1 = /*@typeArgs=int**/ [3];
+ List<int> l2 = /*@typeArgs=int**/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
];
- List<int> l3 = /*@ typeArgs=int* */ [
+ List<int> l3 = /*@typeArgs=int**/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
];
@@ -41,23 +43,23 @@
];
}
{
- Iterable<int> i0 = /*@ typeArgs=int* */ [];
- Iterable<int> i1 = /*@ typeArgs=int* */ [3];
- Iterable<int> i2 = /*@ typeArgs=int* */ [
+ Iterable<int> i0 = /*@typeArgs=int**/ [];
+ Iterable<int> i1 = /*@typeArgs=int**/ [3];
+ Iterable<int> i2 = /*@typeArgs=int**/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
];
- Iterable<int> i3 = /*@ typeArgs=int* */ [
+ Iterable<int> i3 = /*@typeArgs=int**/ [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
];
}
{
- const List<int> c0 = /*@ typeArgs=int* */ const [];
- const List<int> c1 = /*@ typeArgs=int* */ const [3];
- const List<int> c2 = /*@ typeArgs=int* */ const [
+ const List<int> c0 = /*@typeArgs=int**/ const [];
+ const List<int> c1 = /*@typeArgs=int**/ const [3];
+ const List<int> c2 = /*@typeArgs=int**/ const [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
];
- const List<int> c3 = /*@ typeArgs=int* */ const [
+ const List<int> c3 = /*@typeArgs=int**/ const [
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
3
];
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.expect
index 871e6e1..2bf7d99 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.expect
@@ -2,80 +2,80 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:13:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:21:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:24:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
-// - 'List' is from 'dart:core'.
-// Change the type of the list literal or the context in which it is used.
-// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
-// ^
-//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
-// - 'List' is from 'dart:core'.
-// Change the type of the list literal or the context in which it is used.
-// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
-// ^
-//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
-// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
-// ^
-//
// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
// - 'List' is from 'dart:core'.
// Change the type of the list literal or the context in which it is used.
+// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// Change the type of the list literal or the context in which it is used.
+// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:37:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// Change the type of the list literal or the context in which it is used.
// List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:41:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:40:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
// - 'List' is from 'dart:core'.
// Change the type of the list literal or the context in which it is used.
// List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:49:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:52:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:60:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:63:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
import self as self;
import "dart:core" as core;
-static method foo([core::List<core::String*>* list1 = #C1, core::List<core::String*>* list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+static method foo([core::List<core::String*>* list1 = #C1, core::List<core::String*>* list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:13:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
^"]) → void {}
static method main() → void {
{
core::List<core::int*>* l0 = <core::int*>[];
core::List<core::int*>* l1 = <core::int*>[3];
- core::List<core::int*>* l2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::List<core::int*>* l2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:21:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::int*];
- core::List<core::int*>* l3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::List<core::int*>* l3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:24:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::int*, 3];
}
@@ -86,46 +86,46 @@
core::List<dynamic>* l3 = <dynamic>["hello", 3];
}
{
- core::List<core::int*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
^" in <core::num*>[];
- core::List<core::int*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
^" in <core::num*>[3];
- core::List<core::int*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:37:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
- ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::num*];
- core::List<core::int*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:40:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
- ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:41:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::num*, 3];
}
{
core::Iterable<core::int*>* i0 = <core::int*>[];
core::Iterable<core::int*>* i1 = <core::int*>[3];
- core::Iterable<core::int*>* i2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Iterable<core::int*>* i2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:49:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::int*];
- core::Iterable<core::int*>* i3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Iterable<core::int*>* i3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:52:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::int*, 3];
}
{
- const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:60:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^";
- const core::List<core::int*>* c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::List<core::int*>* c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:63:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^";
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.modular.expect
index 871e6e1..2bf7d99 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.modular.expect
@@ -2,80 +2,80 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:13:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:21:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:24:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
-// - 'List' is from 'dart:core'.
-// Change the type of the list literal or the context in which it is used.
-// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
-// ^
-//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
-// - 'List' is from 'dart:core'.
-// Change the type of the list literal or the context in which it is used.
-// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
-// ^
-//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
-// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
-// ^
-//
// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
// - 'List' is from 'dart:core'.
// Change the type of the list literal or the context in which it is used.
+// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// Change the type of the list literal or the context in which it is used.
+// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:37:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// Change the type of the list literal or the context in which it is used.
// List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:41:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:40:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
// - 'List' is from 'dart:core'.
// Change the type of the list literal or the context in which it is used.
// List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:49:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:52:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:60:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:63:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
import self as self;
import "dart:core" as core;
-static method foo([core::List<core::String*>* list1 = #C1, core::List<core::String*>* list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+static method foo([core::List<core::String*>* list1 = #C1, core::List<core::String*>* list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:13:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
^"]) → void {}
static method main() → void {
{
core::List<core::int*>* l0 = <core::int*>[];
core::List<core::int*>* l1 = <core::int*>[3];
- core::List<core::int*>* l2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::List<core::int*>* l2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:21:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::int*];
- core::List<core::int*>* l3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::List<core::int*>* l3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:24:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::int*, 3];
}
@@ -86,46 +86,46 @@
core::List<dynamic>* l3 = <dynamic>["hello", 3];
}
{
- core::List<core::int*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
^" in <core::num*>[];
- core::List<core::int*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
^" in <core::num*>[3];
- core::List<core::int*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:37:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
- ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::num*];
- core::List<core::int*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:40:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
- ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ ^" in <core::num*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:41:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::num*, 3];
}
{
core::Iterable<core::int*>* i0 = <core::int*>[];
core::Iterable<core::int*>* i1 = <core::int*>[3];
- core::Iterable<core::int*>* i2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Iterable<core::int*>* i2 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:49:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::int*];
- core::Iterable<core::int*>* i3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Iterable<core::int*>* i3 = <core::int*>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:52:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::int*, 3];
}
{
- const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:60:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^";
- const core::List<core::int*>* c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::List<core::int*>* c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:63:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^";
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.transformed.expect
index 4a236be..eb7f7ce 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart.weak.transformed.expect
@@ -2,80 +2,80 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:13:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:21:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:24:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
-// - 'List' is from 'dart:core'.
-// Change the type of the list literal or the context in which it is used.
-// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
-// ^
-//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
-// - 'List' is from 'dart:core'.
-// Change the type of the list literal or the context in which it is used.
-// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
-// ^
-//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
-// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
-// ^
-//
// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
// - 'List' is from 'dart:core'.
// Change the type of the list literal or the context in which it is used.
+// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// Change the type of the list literal or the context in which it is used.
+// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:37:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// Change the type of the list literal or the context in which it is used.
// List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:41:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:40:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
// - 'List' is from 'dart:core'.
// Change the type of the list literal or the context in which it is used.
// List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:49:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:52:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:60:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:63:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
// ^
//
import self as self;
import "dart:core" as core;
-static method foo([core::List<core::String*>* list1 = #C1, core::List<core::String*>* list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+static method foo([core::List<core::String*>* list1 = #C1, core::List<core::String*>* list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:13:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
^"]) → void {}
static method main() → void {
{
core::List<core::int*>* l0 = core::_GrowableList::•<core::int*>(0);
core::List<core::int*>* l1 = core::_GrowableList::_literal1<core::int*>(3);
- core::List<core::int*>* l2 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::List<core::int*>* l2 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:21:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::int*);
- core::List<core::int*>* l3 = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::List<core::int*>* l3 = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:24:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::int*, 3);
}
@@ -86,46 +86,46 @@
core::List<dynamic>* l3 = core::_GrowableList::_literal2<dynamic>("hello", 3);
}
{
- core::List<core::int*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:33:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
^" in core::_GrowableList::•<core::num*>(0);
- core::List<core::int*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:34:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
^" in core::_GrowableList::_literal1<core::num*>(3);
- core::List<core::int*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:35:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:37:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
- ^" in core::_GrowableList::_literal1<core::num*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ ^" in core::_GrowableList::_literal1<core::num*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::num*);
- core::List<core::int*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:38:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
+ core::List<core::int*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:40:61: Error: The list literal type 'List<num>' isn't of expected type 'List<int>'.
- 'List' is from 'dart:core'.
Change the type of the list literal or the context in which it is used.
List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
- ^" in core::_GrowableList::_literal2<core::num*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ ^" in core::_GrowableList::_literal2<core::num*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:41:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::num*, 3);
}
{
core::Iterable<core::int*>* i0 = core::_GrowableList::•<core::int*>(0);
core::Iterable<core::int*>* i1 = core::_GrowableList::_literal1<core::int*>(3);
- core::Iterable<core::int*>* i2 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Iterable<core::int*>* i2 = core::_GrowableList::_literal1<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:49:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^" in "hello" as{TypeError} core::int*);
- core::Iterable<core::int*>* i3 = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Iterable<core::int*>* i3 = core::_GrowableList::_literal2<core::int*>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:52:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^" in "hello" as{TypeError} core::int*, 3);
}
{
- const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::List<core::int*>* c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:60:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
^";
- const core::List<core::int*>* c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::List<core::int*>* c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards.dart:63:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
^";
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart
new file mode 100644
index 0000000..baf0acd
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart
@@ -0,0 +1,65 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void foo(
+ [List<String> list1 = /*@typeArgs=String*/ const [],
+ List<String> list2 = /*@typeArgs=String*/ const [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+ ]]) {}
+
+void test() {
+ {
+ List<int> l0 = /*@typeArgs=int*/ [];
+ List<int> l1 = /*@typeArgs=int*/ [3];
+ List<int> l2 = /*@typeArgs=int*/ [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+ ];
+ List<int> l3 = /*@typeArgs=int*/ [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+ 3
+ ];
+ }
+ {
+ List<dynamic> l0 = /*@ typeArgs=dynamic */ [];
+ List<dynamic> l1 = /*@ typeArgs=dynamic */ [3];
+ List<dynamic> l2 = /*@ typeArgs=dynamic */ ["hello"];
+ List<dynamic> l3 = /*@ typeArgs=dynamic */ ["hello", 3];
+ }
+ {
+ List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+ List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+ List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+ ];
+ List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+ 3
+ ];
+ }
+ {
+ Iterable<int> i0 = /*@typeArgs=int*/ [];
+ Iterable<int> i1 = /*@typeArgs=int*/ [3];
+ Iterable<int> i2 = /*@typeArgs=int*/ [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+ ];
+ Iterable<int> i3 = /*@typeArgs=int*/ [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+ 3
+ ];
+ }
+ {
+ const List<int> c0 = /*@typeArgs=int*/ const [];
+ const List<int> c1 = /*@typeArgs=int*/ const [3];
+ const List<int> c2 = /*@typeArgs=int*/ const [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+ ];
+ const List<int> c3 = /*@typeArgs=int*/ const [
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+ 3
+ ];
+ }
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..5b1e6d6
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+void foo([List<String> list1 = const [], List<String> list2 = const [42]]) {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..5b1e6d6
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+void foo([List<String> list1 = const [], List<String> list2 = const [42]]) {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.expect
new file mode 100644
index 0000000..fd95244
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.expect
@@ -0,0 +1,128 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:33:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:34:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:35:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:38:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo([core::List<core::String> list1 = #C1, core::List<core::String> list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+ ^"]) → void {}
+static method test() → void {
+ {
+ core::List<core::int> l0 = <core::int>[];
+ core::List<core::int> l1 = <core::int>[3];
+ core::List<core::int> l2 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int];
+ core::List<core::int> l3 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3];
+ }
+ {
+ core::List<dynamic> l0 = <dynamic>[];
+ core::List<dynamic> l1 = <dynamic>[3];
+ core::List<dynamic> l2 = <dynamic>["hello"];
+ core::List<dynamic> l3 = <dynamic>["hello", 3];
+ }
+ {
+ core::List<core::int> l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:33:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+ ^" in <core::num>[] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:34:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+ ^" in <core::num>[3] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:35:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ ^" in <core::num>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::num] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:38:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ ^" in <core::num>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::num, 3] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ }
+ {
+ core::Iterable<core::int> i0 = <core::int>[];
+ core::Iterable<core::int> i1 = <core::int>[3];
+ core::Iterable<core::int> i2 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int];
+ core::Iterable<core::int> i3 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3];
+ }
+ {
+ const core::List<core::int> c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^";
+ const core::List<core::int> c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^";
+ }
+}
+
+constants {
+ #C1 = <core::String*>[]
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..fd95244
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.modular.expect
@@ -0,0 +1,128 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:33:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:34:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:35:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:38:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo([core::List<core::String> list1 = #C1, core::List<core::String> list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+ ^"]) → void {}
+static method test() → void {
+ {
+ core::List<core::int> l0 = <core::int>[];
+ core::List<core::int> l1 = <core::int>[3];
+ core::List<core::int> l2 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int];
+ core::List<core::int> l3 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3];
+ }
+ {
+ core::List<dynamic> l0 = <dynamic>[];
+ core::List<dynamic> l1 = <dynamic>[3];
+ core::List<dynamic> l2 = <dynamic>["hello"];
+ core::List<dynamic> l3 = <dynamic>["hello", 3];
+ }
+ {
+ core::List<core::int> l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:33:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+ ^" in <core::num>[] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:34:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+ ^" in <core::num>[3] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:35:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ ^" in <core::num>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::num] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:38:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ ^" in <core::num>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::num, 3] as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ }
+ {
+ core::Iterable<core::int> i0 = <core::int>[];
+ core::Iterable<core::int> i1 = <core::int>[3];
+ core::Iterable<core::int> i2 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int];
+ core::Iterable<core::int> i3 = <core::int>[invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3];
+ }
+ {
+ const core::List<core::int> c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^";
+ const core::List<core::int> c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^";
+ }
+}
+
+constants {
+ #C1 = <core::String*>[]
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..486eef9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.outline.expect
@@ -0,0 +1,8 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo([has-declared-initializer core::List<core::String> list1, has-declared-initializer core::List<core::String> list2]) → void
+ ;
+static method test() → void
+ ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..953945a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart.weak.transformed.expect
@@ -0,0 +1,128 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:33:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:34:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:35:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:38:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ "hello",
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo([core::List<core::String> list1 = #C1, core::List<core::String> list2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:11:89: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42
+ ^"]) → void {}
+static method test() → void {
+ {
+ core::List<core::int> l0 = core::_GrowableList::•<core::int>(0);
+ core::List<core::int> l1 = core::_GrowableList::_literal1<core::int>(3);
+ core::List<core::int> l2 = core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:19:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ core::List<core::int> l3 = core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:22:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3);
+ }
+ {
+ core::List<dynamic> l0 = core::_GrowableList::•<dynamic>(0);
+ core::List<dynamic> l1 = core::_GrowableList::_literal1<dynamic>(3);
+ core::List<dynamic> l2 = core::_GrowableList::_literal1<dynamic>("hello");
+ core::List<dynamic> l3 = core::_GrowableList::_literal2<dynamic>("hello", 3);
+ }
+ {
+ core::List<core::int> l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:33:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l0 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[];
+ ^" in core::_GrowableList::•<core::num>(0) as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:34:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l1 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[3];
+ ^" in core::_GrowableList::_literal1<core::num>(3) as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:35:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l2 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ ^" in core::_GrowableList::_literal1<core::num>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:36:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::num) as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ core::List<core::int> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:38:61: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> l3 = /*error:INVALID_CAST_LITERAL_LIST*/ <num>[
+ ^" in core::_GrowableList::_literal2<core::num>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:39:50: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::num, 3) as{TypeError,ForNonNullableByDefault} core::List<core::int>;
+ }
+ {
+ core::Iterable<core::int> i0 = core::_GrowableList::•<core::int>(0);
+ core::Iterable<core::int> i1 = core::_GrowableList::_literal1<core::int>(3);
+ core::Iterable<core::int> i2 = core::_GrowableList::_literal1<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:47:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int);
+ core::Iterable<core::int> i3 = core::_GrowableList::_literal2<core::int>(invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:50:50: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int, 3);
+ }
+ {
+ const core::List<core::int> c2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:58:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\"
+ ^";
+ const core::List<core::int> c3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_downwards2.dart:61:89: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE,error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ \"hello\",
+ ^";
+ }
+}
+
+constants {
+ #C1 = <core::String*>[]
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart
index 9a7f136..b067bd3 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,74 +10,66 @@
typedef void Asserter<T>(T type);
typedef Asserter<T> AsserterBuilder<S, T>(S arg);
-Asserter<DartType> _isInt;
-Asserter<DartType> _isString;
+Asserter<DartType> _isInt = throw '';
+Asserter<DartType> _isString = throw '';
abstract class C {
- static AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf;
+ static AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf =
+ throw '';
static AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf =>
- null;
+ throw '';
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf => throw '';
method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {
/*@target=C.assertAOf*/ assertAOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- assertBOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- assertCOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ assertBOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ assertCOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
/*@target=C.assertDOf*/ assertDOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- assertEOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ assertEOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
}
}
abstract class G<T> {
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf => throw '';
method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {
/*@target=G.assertAOf*/ assertAOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
this. /*@target=G.assertAOf*/ assertAOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
this. /*@target=G.assertDOf*/ assertDOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- assertEOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ assertEOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
}
}
-AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf;
-AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf => null;
+AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf = throw '';
+AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf => throw '';
test() {
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- assertAOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- assertBOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- assertCOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- C.assertBOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
- C.assertCOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ assertAOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ assertBOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ assertCOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ C.assertBOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
+ C.assertCOf(/*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
- C c;
+ C c = throw '';
c. /*@target=C.assertAOf*/ assertAOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
c. /*@target=C.assertDOf*/ assertDOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
- G<int> g;
+ G<int> g = throw '';
g. /*@target=G.assertAOf*/ assertAOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
g. /*@target=G.assertDOf*/ assertDOf(
- /*@ typeArgs=(DartType*) ->* void */ [_isInt, _isString]);
+ /*@typeArgs=(DartType) -> void*/ [_isInt, _isString]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline.expect
index a87b49d..e4d3c5f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline.expect
@@ -1,29 +1,29 @@
-// @dart = 2.9
library test;
class DartType {}
typedef void Asserter<T>(T type);
typedef Asserter<T> AsserterBuilder<S, T>(S arg);
-Asserter<DartType> _isInt;
-Asserter<DartType> _isString;
+Asserter<DartType> _isInt = throw '';
+Asserter<DartType> _isString = throw '';
abstract class C {
- static AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf;
+ static AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf =
+ throw '';
static AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf =>
- null;
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
+ throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf => throw '';
method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {}
}
abstract class G<T> {
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf => throw '';
method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {}
}
-AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf;
-AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf => null;
+AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf = throw '';
+AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf => throw '';
test() {}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline_modelled.expect
index 0b07330..211e517 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.textual_outline_modelled.expect
@@ -1,23 +1,23 @@
-// @dart = 2.9
library test;
-Asserter<DartType> _isInt;
-Asserter<DartType> _isString;
-AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf;
-AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf => null;
+Asserter<DartType> _isInt = throw '';
+Asserter<DartType> _isString = throw '';
+AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf = throw '';
+AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf => throw '';
abstract class C {
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf => throw '';
method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {}
- static AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf;
+ static AsserterBuilder<List<Asserter<DartType>>, DartType> assertBOf =
+ throw '';
static AsserterBuilder<List<Asserter<DartType>>, DartType> get assertCOf =>
- null;
+ throw '';
}
abstract class G<T> {
- AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf;
- AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf;
+ AsserterBuilder<List<Asserter<DartType>>, DartType> assertAOf = throw '';
+ AsserterBuilder<List<Asserter<DartType>>, DartType> get assertDOf => throw '';
method(AsserterBuilder<List<Asserter<DartType>>, DartType> assertEOf) {}
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.expect
index c0dae24..c78bd2e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.expect
@@ -1,91 +1,63 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, contravariant T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
+typedef Asserter<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef AsserterBuilder<contravariant S extends core::Object? = dynamic, contravariant T extends core::Object? = dynamic> = (S%) → (T%) → void;
class DartType extends core::Object {
- synthetic constructor •() → self::DartType*
+ synthetic constructor •() → self::DartType
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object {
- static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf = null;
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf = null;
- synthetic constructor •() → self::C*
+ static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf = throw "";
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
- return null;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
- let final core::List<(self::DartType*) →* void>* #t1 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::C::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t1){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertBOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertCOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t2 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::C::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t2){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- assertEOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic {
+ let final core::List<(self::DartType) → void> #t1 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::C::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t1){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertBOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertCOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t2 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::C::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t2){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ assertEOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class G<T extends core::Object* = dynamic> extends core::Object {
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf = null;
- synthetic constructor •() → self::G<self::G::T*>*
+abstract class G<T extends core::Object? = dynamic> extends core::Object {
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ synthetic constructor •() → self::G<self::G::T%>
: super core::Object::•()
;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
- let final core::List<(self::DartType*) →* void>* #t3 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t3){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t4 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t4){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t5 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t5){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- assertEOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic {
+ let final core::List<(self::DartType) → void> #t3 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t3){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t4 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t4){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t5 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::G::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t5){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ assertEOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field (self::DartType*) →* void _isInt;
-static field (self::DartType*) →* void _isString;
-static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf;
-static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
- return null;
+static field (self::DartType) → void _isInt = throw "";
+static field (self::DartType) → void _isString = throw "";
+static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf = throw "";
+static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
static method test() → dynamic {
- (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf;
- assertAOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::assertBOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::assertCOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertBOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertCOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C* c;
- let final self::C* #t6 = c in let final core::List<(self::DartType*) →* void>* #t7 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t6.{self::C::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t7){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final self::C* #t8 = c in let final core::List<(self::DartType*) →* void>* #t9 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t8.{self::C::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t9){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::G<core::int*>* g;
- let final self::G<core::int*>* #t10 = g in let final core::List<(self::DartType*) →* void>* #t11 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t10.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t11){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final self::G<core::int*>* #t12 = g in let final core::List<(self::DartType*) →* void>* #t13 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t12.{self::G::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t13){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ assertAOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::assertBOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::assertCOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertBOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertCOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C c = throw "";
+ let final self::C #t6 = c in let final core::List<(self::DartType) → void> #t7 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t6.{self::C::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t7){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final self::C #t8 = c in let final core::List<(self::DartType) → void> #t9 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t8.{self::C::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t9){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::G<core::int> g = throw "";
+ let final self::G<core::int> #t10 = g in let final core::List<(self::DartType) → void> #t11 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t10.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t11){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final self::G<core::int> #t12 = g in let final core::List<(self::DartType) → void> #t13 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t12.{self::G::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t13){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.modular.expect
index c0dae24..c78bd2e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.modular.expect
@@ -1,91 +1,63 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, contravariant T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
+typedef Asserter<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef AsserterBuilder<contravariant S extends core::Object? = dynamic, contravariant T extends core::Object? = dynamic> = (S%) → (T%) → void;
class DartType extends core::Object {
- synthetic constructor •() → self::DartType*
+ synthetic constructor •() → self::DartType
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object {
- static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf = null;
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf = null;
- synthetic constructor •() → self::C*
+ static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf = throw "";
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
- return null;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
- let final core::List<(self::DartType*) →* void>* #t1 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::C::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t1){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertBOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertCOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t2 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::C::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t2){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- assertEOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic {
+ let final core::List<(self::DartType) → void> #t1 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::C::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t1){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertBOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertCOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t2 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::C::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t2){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ assertEOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class G<T extends core::Object* = dynamic> extends core::Object {
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf = null;
- synthetic constructor •() → self::G<self::G::T*>*
+abstract class G<T extends core::Object? = dynamic> extends core::Object {
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ synthetic constructor •() → self::G<self::G::T%>
: super core::Object::•()
;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
- let final core::List<(self::DartType*) →* void>* #t3 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t3){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t4 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t4){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t5 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in this.{self::G::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t5){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- assertEOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic {
+ let final core::List<(self::DartType) → void> #t3 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t3){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t4 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t4){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t5 = <(self::DartType) → void>[self::_isInt, self::_isString] in this.{self::G::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t5){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ assertEOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field (self::DartType*) →* void _isInt;
-static field (self::DartType*) →* void _isString;
-static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf;
-static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
- return null;
+static field (self::DartType) → void _isInt = throw "";
+static field (self::DartType) → void _isString = throw "";
+static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf = throw "";
+static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
static method test() → dynamic {
- (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf;
- assertAOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::assertBOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::assertCOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertBOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertCOf(<(self::DartType*) →* void>[self::_isInt, self::_isString]){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C* c;
- let final self::C* #t6 = c in let final core::List<(self::DartType*) →* void>* #t7 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t6.{self::C::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t7){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final self::C* #t8 = c in let final core::List<(self::DartType*) →* void>* #t9 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t8.{self::C::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t9){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::G<core::int*>* g;
- let final self::G<core::int*>* #t10 = g in let final core::List<(self::DartType*) →* void>* #t11 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t10.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t11){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final self::G<core::int*>* #t12 = g in let final core::List<(self::DartType*) →* void>* #t13 = <(self::DartType*) →* void>[self::_isInt, self::_isString] in #t12.{self::G::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t13){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ assertAOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::assertBOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::assertCOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertBOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertCOf(<(self::DartType) → void>[self::_isInt, self::_isString]){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C c = throw "";
+ let final self::C #t6 = c in let final core::List<(self::DartType) → void> #t7 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t6.{self::C::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t7){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final self::C #t8 = c in let final core::List<(self::DartType) → void> #t9 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t8.{self::C::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t9){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::G<core::int> g = throw "";
+ let final self::G<core::int> #t10 = g in let final core::List<(self::DartType) → void> #t11 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t10.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t11){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final self::G<core::int> #t12 = g in let final core::List<(self::DartType) → void> #t13 = <(self::DartType) → void>[self::_isInt, self::_isString] in #t12.{self::G::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t13){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.outline.expect
index f076267..f158de9 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.outline.expect
@@ -1,66 +1,38 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, contravariant T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
+typedef Asserter<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef AsserterBuilder<contravariant S extends core::Object? = dynamic, contravariant T extends core::Object? = dynamic> = (S%) → (T%) → void;
class DartType extends core::Object {
- synthetic constructor •() → self::DartType*
+ synthetic constructor •() → self::DartType
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object {
- static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf;
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf;
- synthetic constructor •() → self::C*
+ static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf;
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf;
+ synthetic constructor •() → self::C
;
- static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
+ static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic
+ ;
}
-abstract class G<T extends core::Object* = dynamic> extends core::Object {
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf;
- synthetic constructor •() → self::G<self::G::T*>*
+abstract class G<T extends core::Object? = dynamic> extends core::Object {
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf;
+ synthetic constructor •() → self::G<self::G::T%>
;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic
+ ;
}
-static field (self::DartType*) →* void _isInt;
-static field (self::DartType*) →* void _isString;
-static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf;
-static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
+static field (self::DartType) → void _isInt;
+static field (self::DartType) → void _isString;
+static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf;
+static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
;
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.transformed.expect
index 26ec6f6..145c69c 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_list_literals_infer_if_value_types_match_context.dart.weak.transformed.expect
@@ -1,91 +1,63 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef Asserter<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-typedef AsserterBuilder<contravariant S extends core::Object* = dynamic, contravariant T extends core::Object* = dynamic> = (S*) →* (T*) →* void;
+typedef Asserter<contravariant T extends core::Object? = dynamic> = (T%) → void;
+typedef AsserterBuilder<contravariant S extends core::Object? = dynamic, contravariant T extends core::Object? = dynamic> = (S%) → (T%) → void;
class DartType extends core::Object {
- synthetic constructor •() → self::DartType*
+ synthetic constructor •() → self::DartType
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object {
- static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf = null;
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf = null;
- synthetic constructor •() → self::C*
+ static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf = throw "";
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
- return null;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
- let final core::List<(self::DartType*) →* void>* #t1 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::C::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t1){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertBOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertCOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t2 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::C::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t2){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- assertEOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic {
+ let final core::List<(self::DartType) → void> #t1 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in this.{self::C::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t1){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertBOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertCOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t2 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in this.{self::C::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t2){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ assertEOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class G<T extends core::Object* = dynamic> extends core::Object {
- field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf = null;
- synthetic constructor •() → self::G<self::G::T*>*
+abstract class G<T extends core::Object? = dynamic> extends core::Object {
+ field (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ synthetic constructor •() → self::G<self::G::T%>
: super core::Object::•()
;
- abstract get assertDOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void;
- method method((core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertEOf) → dynamic {
- let final core::List<(self::DartType*) →* void>* #t3 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t3){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t4 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t4){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final core::List<(self::DartType*) →* void>* #t5 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in this.{self::G::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t5){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- assertEOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ get assertDOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
+ method method((core::List<(self::DartType) → void>) → (self::DartType) → void assertEOf) → dynamic {
+ let final core::List<(self::DartType) → void> #t3 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in this.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t3){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t4 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in this.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t4){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final core::List<(self::DartType) → void> #t5 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in this.{self::G::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t5){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ assertEOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field (self::DartType*) →* void _isInt;
-static field (self::DartType*) →* void _isString;
-static field (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertBOf;
-static get assertCOf() → (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void
- return null;
+static field (self::DartType) → void _isInt = throw "";
+static field (self::DartType) → void _isString = throw "";
+static field (core::List<(self::DartType) → void>) → (self::DartType) → void assertBOf = throw "";
+static get assertCOf() → (core::List<(self::DartType) → void>) → (self::DartType) → void
+ return throw "";
static method test() → dynamic {
- (core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void assertAOf;
- assertAOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::assertBOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::assertCOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertBOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C::assertCOf(core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString)){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::C* c;
- let final self::C* #t6 = c in let final core::List<(self::DartType*) →* void>* #t7 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t6.{self::C::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t7){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final self::C* #t8 = c in let final core::List<(self::DartType*) →* void>* #t9 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t8.{self::C::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t9){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- self::G<core::int*>* g;
- let final self::G<core::int*>* #t10 = g in let final core::List<(self::DartType*) →* void>* #t11 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t10.{self::G::assertAOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t11){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
- let final self::G<core::int*>* #t12 = g in let final core::List<(self::DartType*) →* void>* #t13 = core::_GrowableList::_literal2<(self::DartType*) →* void>(self::_isInt, self::_isString) in #t12.{self::G::assertDOf}{(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void}(#t13){(core::List<(self::DartType*) →* void>*) →* (self::DartType*) →* void};
+ (core::List<(self::DartType) → void>) → (self::DartType) → void assertAOf = throw "";
+ assertAOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::assertBOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::assertCOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertBOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C::assertCOf(core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString)){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::C c = throw "";
+ let final self::C #t6 = c in let final core::List<(self::DartType) → void> #t7 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in #t6.{self::C::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t7){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final self::C #t8 = c in let final core::List<(self::DartType) → void> #t9 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in #t8.{self::C::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t9){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ self::G<core::int> g = throw "";
+ let final self::G<core::int> #t10 = g in let final core::List<(self::DartType) → void> #t11 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in #t10.{self::G::assertAOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t11){(core::List<(self::DartType) → void>) → (self::DartType) → void};
+ let final self::G<core::int> #t12 = g in let final core::List<(self::DartType) → void> #t13 = core::_GrowableList::_literal2<(self::DartType) → void>(self::_isInt, self::_isString) in #t12.{self::G::assertDOf}{(core::List<(self::DartType) → void>) → (self::DartType) → void}(#t13){(core::List<(self::DartType) → void>) → (self::DartType) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart
index 4fe8d64..aff3ba0 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart
@@ -1,28 +1,30 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void foo(
- [Map<int, String> m1 = /*@ typeArgs=int*, String* */ const {1: "hello"},
- Map<int, String> m2 = /*@ typeArgs=int*, String* */ const {
+ [Map<int, String> m1 = /*@typeArgs=int*, String**/ const {1: "hello"},
+ Map<int, String> m2 = /*@typeArgs=int*, String**/ const {
// One error is from type checking and the other is from const evaluation.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
"world"
}]) {}
void test() {
{
- Map<int, String> l0 = /*@ typeArgs=int*, String* */ {};
- Map<int, String> l1 = /*@ typeArgs=int*, String* */ {3: "hello"};
- Map<int, String> l2 = /*@ typeArgs=int*, String* */ {
+ Map<int, String> l0 = /*@typeArgs=int*, String**/ {};
+ Map<int, String> l1 = /*@typeArgs=int*, String**/ {3: "hello"};
+ Map<int, String> l2 = /*@typeArgs=int*, String**/ {
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
};
- Map<int, String> l3 = /*@ typeArgs=int*, String* */ {
+ Map<int, String> l3 = /*@typeArgs=int*, String**/ {
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
};
- Map<int, String> l4 = /*@ typeArgs=int*, String* */ {
+ Map<int, String> l4 = /*@typeArgs=int*, String**/ {
3: "hello",
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
/*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
@@ -41,25 +43,25 @@
};
}
{
- Map<dynamic, String> l0 = /*@ typeArgs=dynamic, String* */ {};
- Map<dynamic, String> l1 = /*@ typeArgs=dynamic, String* */ {3: "hello"};
- Map<dynamic, String> l2 = /*@ typeArgs=dynamic, String* */ {"hello": "hello"};
- Map<dynamic, String> l3 = /*@ typeArgs=dynamic, String* */ {
+ Map<dynamic, String> l0 = /*@typeArgs=dynamic, String**/ {};
+ Map<dynamic, String> l1 = /*@typeArgs=dynamic, String**/ {3: "hello"};
+ Map<dynamic, String> l2 = /*@typeArgs=dynamic, String**/ {"hello": "hello"};
+ Map<dynamic, String> l3 = /*@typeArgs=dynamic, String**/ {
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
};
- Map<dynamic, String> l4 = /*@ typeArgs=dynamic, String* */ {
+ Map<dynamic, String> l4 = /*@typeArgs=dynamic, String**/ {
3: "hello",
"hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
};
}
{
- Map<int, dynamic> l0 = /*@ typeArgs=int*, dynamic */ {};
- Map<int, dynamic> l1 = /*@ typeArgs=int*, dynamic */ {3: "hello"};
- Map<int, dynamic> l2 = /*@ typeArgs=int*, dynamic */ {
+ Map<int, dynamic> l0 = /*@typeArgs=int*, dynamic*/ {};
+ Map<int, dynamic> l1 = /*@typeArgs=int*, dynamic*/ {3: "hello"};
+ Map<int, dynamic> l2 = /*@typeArgs=int*, dynamic*/ {
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
};
- Map<int, dynamic> l3 = /*@ typeArgs=int*, dynamic */ {3: 3};
- Map<int, dynamic> l4 = /*@ typeArgs=int*, dynamic */ {
+ Map<int, dynamic> l3 = /*@typeArgs=int*, dynamic*/ {3: 3};
+ Map<int, dynamic> l4 = /*@typeArgs=int*, dynamic*/ {
3: "hello",
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
};
@@ -74,16 +76,16 @@
};
}
{
- const Map<int, String> l0 = /*@ typeArgs=int*, String* */ const {};
- const Map<int, String> l1 = /*@ typeArgs=int*, String* */ const {3: "hello"};
- const Map<int, String> l2 = /*@ typeArgs=int*, String* */ const {
+ const Map<int, String> l0 = /*@typeArgs=int*, String**/ const {};
+ const Map<int, String> l1 = /*@typeArgs=int*, String**/ const {3: "hello"};
+ const Map<int, String> l2 = /*@typeArgs=int*, String**/ const {
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
"hello"
};
- const Map<int, String> l3 = /*@ typeArgs=int*, String* */ const {
+ const Map<int, String> l3 = /*@typeArgs=int*, String**/ const {
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
};
- const Map<int, String> l4 = /*@ typeArgs=int*, String* */ const {
+ const Map<int, String> l4 = /*@typeArgs=int*, String**/ const {
3: "hello",
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
/*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.expect
index ab58333..021542f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.expect
@@ -2,95 +2,95 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:14:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:22:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:25:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:29:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:30:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:50:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:54:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:61:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:66:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:70:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:71:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:74:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:82:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:86:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:90:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:91:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
import self as self;
import "dart:core" as core;
-static method foo([core::Map<core::int*, core::String*>* m1 = #C3, core::Map<core::int*, core::String*>* m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+static method foo([core::Map<core::int*, core::String*>* m1 = #C3, core::Map<core::int*, core::String*>* m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:14:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^"]) → void {}
static method test() → void {
{
core::Map<core::int*, core::String*>* l0 = <core::int*, core::String*>{};
core::Map<core::int*, core::String*>* l1 = <core::int*, core::String*>{3: "hello"};
- core::Map<core::int*, core::String*>* l2 = <core::int*, core::String*>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, core::String*>* l2 = <core::int*, core::String*>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:22:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
^" in "hello" as{TypeError} core::int*: "hello"};
- core::Map<core::int*, core::String*>* l3 = <core::int*, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<core::int*, core::String*>* l3 = <core::int*, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:25:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
- core::Map<core::int*, core::String*>* l4 = <core::int*, core::String*>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, core::String*>* l4 = <core::int*, core::String*>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:29:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
- ^" in "hello" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in "hello" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:30:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
}
@@ -105,49 +105,49 @@
core::Map<dynamic, core::String*>* l0 = <dynamic, core::String*>{};
core::Map<dynamic, core::String*>* l1 = <dynamic, core::String*>{3: "hello"};
core::Map<dynamic, core::String*>* l2 = <dynamic, core::String*>{"hello": "hello"};
- core::Map<dynamic, core::String*>* l3 = <dynamic, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<dynamic, core::String*>* l3 = <dynamic, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:50:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
- core::Map<dynamic, core::String*>* l4 = <dynamic, core::String*>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<dynamic, core::String*>* l4 = <dynamic, core::String*>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:54:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
\"hello\": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
}
{
core::Map<core::int*, dynamic>* l0 = <core::int*, dynamic>{};
core::Map<core::int*, dynamic>* l1 = <core::int*, dynamic>{3: "hello"};
- core::Map<core::int*, dynamic>* l2 = <core::int*, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, dynamic>* l2 = <core::int*, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:61:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
^" in "hello" as{TypeError} core::int*: "hello"};
core::Map<core::int*, dynamic>* l3 = <core::int*, dynamic>{3: 3};
- core::Map<core::int*, dynamic>* l4 = <core::int*, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, dynamic>* l4 = <core::int*, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:66:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3
^" in "hello" as{TypeError} core::int*: 3};
}
{
- core::Map<core::int*, core::String*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:70:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
^" in <core::num*, dynamic>{};
- core::Map<core::int*, core::String*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:71:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
^" in <core::num*, dynamic>{3: "hello"};
- core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:74:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
^" in <core::num*, dynamic>{3: 3};
}
{
- const core::Map<core::int*, core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::Map<core::int*, core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:82:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^";
- const core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ const core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:86:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^";
- const core::Map<core::int*, core::String*>* l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::Map<core::int*, core::String*>* l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:90:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^";
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.modular.expect
index ab58333..021542f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.modular.expect
@@ -2,95 +2,95 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:14:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:22:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:25:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:29:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:30:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:50:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:54:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:61:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:66:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:70:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:71:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:74:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:82:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:86:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:90:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:91:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
import self as self;
import "dart:core" as core;
-static method foo([core::Map<core::int*, core::String*>* m1 = #C3, core::Map<core::int*, core::String*>* m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+static method foo([core::Map<core::int*, core::String*>* m1 = #C3, core::Map<core::int*, core::String*>* m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:14:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^"]) → void {}
static method test() → void {
{
core::Map<core::int*, core::String*>* l0 = <core::int*, core::String*>{};
core::Map<core::int*, core::String*>* l1 = <core::int*, core::String*>{3: "hello"};
- core::Map<core::int*, core::String*>* l2 = <core::int*, core::String*>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, core::String*>* l2 = <core::int*, core::String*>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:22:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
^" in "hello" as{TypeError} core::int*: "hello"};
- core::Map<core::int*, core::String*>* l3 = <core::int*, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<core::int*, core::String*>* l3 = <core::int*, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:25:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
- core::Map<core::int*, core::String*>* l4 = <core::int*, core::String*>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, core::String*>* l4 = <core::int*, core::String*>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:29:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
- ^" in "hello" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in "hello" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:30:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
}
@@ -105,49 +105,49 @@
core::Map<dynamic, core::String*>* l0 = <dynamic, core::String*>{};
core::Map<dynamic, core::String*>* l1 = <dynamic, core::String*>{3: "hello"};
core::Map<dynamic, core::String*>* l2 = <dynamic, core::String*>{"hello": "hello"};
- core::Map<dynamic, core::String*>* l3 = <dynamic, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<dynamic, core::String*>* l3 = <dynamic, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:50:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
- core::Map<dynamic, core::String*>* l4 = <dynamic, core::String*>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<dynamic, core::String*>* l4 = <dynamic, core::String*>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:54:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
\"hello\": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
}
{
core::Map<core::int*, dynamic>* l0 = <core::int*, dynamic>{};
core::Map<core::int*, dynamic>* l1 = <core::int*, dynamic>{3: "hello"};
- core::Map<core::int*, dynamic>* l2 = <core::int*, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, dynamic>* l2 = <core::int*, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:61:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
^" in "hello" as{TypeError} core::int*: "hello"};
core::Map<core::int*, dynamic>* l3 = <core::int*, dynamic>{3: 3};
- core::Map<core::int*, dynamic>* l4 = <core::int*, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, dynamic>* l4 = <core::int*, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:66:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3
^" in "hello" as{TypeError} core::int*: 3};
}
{
- core::Map<core::int*, core::String*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:70:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
^" in <core::num*, dynamic>{};
- core::Map<core::int*, core::String*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:71:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
^" in <core::num*, dynamic>{3: "hello"};
- core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:74:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
^" in <core::num*, dynamic>{3: 3};
}
{
- const core::Map<core::int*, core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::Map<core::int*, core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:82:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^";
- const core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ const core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:86:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^";
- const core::Map<core::int*, core::String*>* l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::Map<core::int*, core::String*>* l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:90:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^";
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.transformed.expect
index ab58333..021542f 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart.weak.transformed.expect
@@ -2,95 +2,95 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:14:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:22:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:25:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:29:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:30:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:50:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:54:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:61:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:66:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:70:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:71:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:74:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
// - 'Map' is from 'dart:core'.
// Change the type of the map literal or the context in which it is used.
// Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:82:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:86:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:90:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
// ^
//
-// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:89:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:91:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
// ^
//
import self as self;
import "dart:core" as core;
-static method foo([core::Map<core::int*, core::String*>* m1 = #C3, core::Map<core::int*, core::String*>* m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+static method foo([core::Map<core::int*, core::String*>* m1 = #C3, core::Map<core::int*, core::String*>* m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:14:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^"]) → void {}
static method test() → void {
{
core::Map<core::int*, core::String*>* l0 = <core::int*, core::String*>{};
core::Map<core::int*, core::String*>* l1 = <core::int*, core::String*>{3: "hello"};
- core::Map<core::int*, core::String*>* l2 = <core::int*, core::String*>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, core::String*>* l2 = <core::int*, core::String*>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:22:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
^" in "hello" as{TypeError} core::int*: "hello"};
- core::Map<core::int*, core::String*>* l3 = <core::int*, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<core::int*, core::String*>* l3 = <core::int*, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:25:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
- core::Map<core::int*, core::String*>* l4 = <core::int*, core::String*>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, core::String*>* l4 = <core::int*, core::String*>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:29:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
- ^" in "hello" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ ^" in "hello" as{TypeError} core::int*: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:30:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
/*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
}
@@ -105,49 +105,49 @@
core::Map<dynamic, core::String*>* l0 = <dynamic, core::String*>{};
core::Map<dynamic, core::String*>* l1 = <dynamic, core::String*>{3: "hello"};
core::Map<dynamic, core::String*>* l2 = <dynamic, core::String*>{"hello": "hello"};
- core::Map<dynamic, core::String*>* l3 = <dynamic, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<dynamic, core::String*>* l3 = <dynamic, core::String*>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:50:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
- core::Map<dynamic, core::String*>* l4 = <dynamic, core::String*>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<dynamic, core::String*>* l4 = <dynamic, core::String*>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:54:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
\"hello\": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^" in 3 as{TypeError} core::String*};
}
{
core::Map<core::int*, dynamic>* l0 = <core::int*, dynamic>{};
core::Map<core::int*, dynamic>* l1 = <core::int*, dynamic>{3: "hello"};
- core::Map<core::int*, dynamic>* l2 = <core::int*, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, dynamic>* l2 = <core::int*, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:61:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
^" in "hello" as{TypeError} core::int*: "hello"};
core::Map<core::int*, dynamic>* l3 = <core::int*, dynamic>{3: 3};
- core::Map<core::int*, dynamic>* l4 = <core::int*, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::Map<core::int*, dynamic>* l4 = <core::int*, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:66:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3
^" in "hello" as{TypeError} core::int*: 3};
}
{
- core::Map<core::int*, core::String*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:68:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:70:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
^" in <core::num*, dynamic>{};
- core::Map<core::int*, core::String*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:69:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:71:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
^" in <core::num*, dynamic>{3: "hello"};
- core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:72:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
+ core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:74:76: Error: The map literal type 'Map<num, dynamic>' isn't of expected type 'Map<int, String>'.
- 'Map' is from 'dart:core'.
Change the type of the map literal or the context in which it is used.
Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
^" in <core::num*, dynamic>{3: 3};
}
{
- const core::Map<core::int*, core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::Map<core::int*, core::String*>* l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:82:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^";
- const core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ const core::Map<core::int*, core::String*>* l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:86:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
^";
- const core::Map<core::int*, core::String*>* l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ const core::Map<core::int*, core::String*>* l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals.dart:90:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
/*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
^";
}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart
new file mode 100644
index 0000000..c1ec245
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart
@@ -0,0 +1,94 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void foo(
+ [Map<int, String> m1 = /*@typeArgs=int, String*/ const {1: "hello"},
+ Map<int, String> m2 = /*@typeArgs=int, String*/ const {
+ // One error is from type checking and the other is from const evaluation.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+ "world"
+ }]) {}
+void test() {
+ {
+ Map<int, String> l0 = /*@typeArgs=int, String*/ {};
+ Map<int, String> l1 = /*@typeArgs=int, String*/ {3: "hello"};
+ Map<int, String> l2 = /*@typeArgs=int, String*/ {
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+ };
+ Map<int, String> l3 = /*@typeArgs=int, String*/ {
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ };
+ Map<int, String> l4 = /*@typeArgs=int, String*/ {
+ 3: "hello",
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+ /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ };
+ }
+ {
+ Map<dynamic, dynamic> l0 = /*@ typeArgs=dynamic, dynamic */ {};
+ Map<dynamic, dynamic> l1 = /*@ typeArgs=dynamic, dynamic */ {3: "hello"};
+ Map<dynamic, dynamic> l2 = /*@ typeArgs=dynamic, dynamic */ {
+ "hello": "hello"
+ };
+ Map<dynamic, dynamic> l3 = /*@ typeArgs=dynamic, dynamic */ {3: 3};
+ Map<dynamic, dynamic> l4 = /*@ typeArgs=dynamic, dynamic */ {
+ 3: "hello",
+ "hello": 3
+ };
+ }
+ {
+ Map<dynamic, String> l0 = /*@typeArgs=dynamic, String*/ {};
+ Map<dynamic, String> l1 = /*@typeArgs=dynamic, String*/ {3: "hello"};
+ Map<dynamic, String> l2 = /*@typeArgs=dynamic, String*/ {"hello": "hello"};
+ Map<dynamic, String> l3 = /*@typeArgs=dynamic, String*/ {
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ };
+ Map<dynamic, String> l4 = /*@typeArgs=dynamic, String*/ {
+ 3: "hello",
+ "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ };
+ }
+ {
+ Map<int, dynamic> l0 = /*@typeArgs=int, dynamic*/ {};
+ Map<int, dynamic> l1 = /*@typeArgs=int, dynamic*/ {3: "hello"};
+ Map<int, dynamic> l2 = /*@typeArgs=int, dynamic*/ {
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+ };
+ Map<int, dynamic> l3 = /*@typeArgs=int, dynamic*/ {3: 3};
+ Map<int, dynamic> l4 = /*@typeArgs=int, dynamic*/ {
+ 3: "hello",
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
+ };
+ }
+ {
+ Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+ Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ 3: "hello"
+ };
+ Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ 3: 3
+ };
+ }
+ {
+ const Map<int, String> l0 = /*@typeArgs=int, String*/ const {};
+ const Map<int, String> l1 = /*@typeArgs=int, String*/ const {3: "hello"};
+ const Map<int, String> l2 = /*@typeArgs=int, String*/ const {
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+ "hello"
+ };
+ const Map<int, String> l3 = /*@typeArgs=int, String*/ const {
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ };
+ const Map<int, String> l4 = /*@typeArgs=int, String*/ const {
+ 3: "hello",
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+ /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ };
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.textual_outline.expect
new file mode 100644
index 0000000..423bbf0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.textual_outline.expect
@@ -0,0 +1,7 @@
+library test;
+
+void foo(
+ [Map<int, String> m1 = const {1: "hello"},
+ Map<int, String> m2 = const {"hello": "world"}]) {}
+void test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..9e39c4b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+library test;
+
+main() {}
+void foo(
+ [Map<int, String> m1 = const {1: "hello"},
+ Map<int, String> m2 = const {"hello": "world"}]) {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.expect
new file mode 100644
index 0000000..c3559ec
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.expect
@@ -0,0 +1,155 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:68:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:69:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:72:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:89:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo([core::Map<core::int, core::String> m1 = #C3, core::Map<core::int, core::String> m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^"]) → void {}
+static method test() → void {
+ {
+ core::Map<core::int, core::String> l0 = <core::int, core::String>{};
+ core::Map<core::int, core::String> l1 = <core::int, core::String>{3: "hello"};
+ core::Map<core::int, core::String> l2 = <core::int, core::String>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: "hello"};
+ core::Map<core::int, core::String> l3 = <core::int, core::String>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ core::Map<core::int, core::String> l4 = <core::int, core::String>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ }
+ {
+ core::Map<dynamic, dynamic> l0 = <dynamic, dynamic>{};
+ core::Map<dynamic, dynamic> l1 = <dynamic, dynamic>{3: "hello"};
+ core::Map<dynamic, dynamic> l2 = <dynamic, dynamic>{"hello": "hello"};
+ core::Map<dynamic, dynamic> l3 = <dynamic, dynamic>{3: 3};
+ core::Map<dynamic, dynamic> l4 = <dynamic, dynamic>{3: "hello", "hello": 3};
+ }
+ {
+ core::Map<dynamic, core::String> l0 = <dynamic, core::String>{};
+ core::Map<dynamic, core::String> l1 = <dynamic, core::String>{3: "hello"};
+ core::Map<dynamic, core::String> l2 = <dynamic, core::String>{"hello": "hello"};
+ core::Map<dynamic, core::String> l3 = <dynamic, core::String>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ core::Map<dynamic, core::String> l4 = <dynamic, core::String>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ \"hello\": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ }
+ {
+ core::Map<core::int, dynamic> l0 = <core::int, dynamic>{};
+ core::Map<core::int, dynamic> l1 = <core::int, dynamic>{3: "hello"};
+ core::Map<core::int, dynamic> l2 = <core::int, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: "hello"};
+ core::Map<core::int, dynamic> l3 = <core::int, dynamic>{3: 3};
+ core::Map<core::int, dynamic> l4 = <core::int, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: 3};
+ }
+ {
+ core::Map<core::int, core::String> l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:68:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+ ^" in <core::num, dynamic>{} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:69:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ ^" in <core::num, dynamic>{3: "hello"} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:72:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ ^" in <core::num, dynamic>{3: 3} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ }
+ {
+ const core::Map<core::int, core::String> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^";
+ const core::Map<core::int, core::String> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^";
+ const core::Map<core::int, core::String> l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^";
+ }
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = 1
+ #C2 = "hello"
+ #C3 = <core::int*, core::String*>{#C1:#C2)
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.modular.expect
new file mode 100644
index 0000000..c3559ec
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.modular.expect
@@ -0,0 +1,155 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:68:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:69:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:72:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:89:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo([core::Map<core::int, core::String> m1 = #C3, core::Map<core::int, core::String> m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^"]) → void {}
+static method test() → void {
+ {
+ core::Map<core::int, core::String> l0 = <core::int, core::String>{};
+ core::Map<core::int, core::String> l1 = <core::int, core::String>{3: "hello"};
+ core::Map<core::int, core::String> l2 = <core::int, core::String>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: "hello"};
+ core::Map<core::int, core::String> l3 = <core::int, core::String>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ core::Map<core::int, core::String> l4 = <core::int, core::String>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ }
+ {
+ core::Map<dynamic, dynamic> l0 = <dynamic, dynamic>{};
+ core::Map<dynamic, dynamic> l1 = <dynamic, dynamic>{3: "hello"};
+ core::Map<dynamic, dynamic> l2 = <dynamic, dynamic>{"hello": "hello"};
+ core::Map<dynamic, dynamic> l3 = <dynamic, dynamic>{3: 3};
+ core::Map<dynamic, dynamic> l4 = <dynamic, dynamic>{3: "hello", "hello": 3};
+ }
+ {
+ core::Map<dynamic, core::String> l0 = <dynamic, core::String>{};
+ core::Map<dynamic, core::String> l1 = <dynamic, core::String>{3: "hello"};
+ core::Map<dynamic, core::String> l2 = <dynamic, core::String>{"hello": "hello"};
+ core::Map<dynamic, core::String> l3 = <dynamic, core::String>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ core::Map<dynamic, core::String> l4 = <dynamic, core::String>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ \"hello\": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ }
+ {
+ core::Map<core::int, dynamic> l0 = <core::int, dynamic>{};
+ core::Map<core::int, dynamic> l1 = <core::int, dynamic>{3: "hello"};
+ core::Map<core::int, dynamic> l2 = <core::int, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: "hello"};
+ core::Map<core::int, dynamic> l3 = <core::int, dynamic>{3: 3};
+ core::Map<core::int, dynamic> l4 = <core::int, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: 3};
+ }
+ {
+ core::Map<core::int, core::String> l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:68:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+ ^" in <core::num, dynamic>{} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:69:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ ^" in <core::num, dynamic>{3: "hello"} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:72:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ ^" in <core::num, dynamic>{3: 3} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ }
+ {
+ const core::Map<core::int, core::String> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^";
+ const core::Map<core::int, core::String> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^";
+ const core::Map<core::int, core::String> l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^";
+ }
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = 1
+ #C2 = "hello"
+ #C3 = <core::int*, core::String*>{#C1:#C2)
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.outline.expect
new file mode 100644
index 0000000..5650c36
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.outline.expect
@@ -0,0 +1,10 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method foo([has-declared-initializer core::Map<core::int, core::String> m1, has-declared-initializer core::Map<core::int, core::String> m2]) → void
+ ;
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.transformed.expect
new file mode 100644
index 0000000..c3559ec
--- /dev/null
+++ b/pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart.weak.transformed.expect
@@ -0,0 +1,155 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// "hello": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": "hello"
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello": 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:68:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:69:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:72:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ "hello":
+// ^
+//
+// pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:89:87: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static method foo([core::Map<core::int, core::String> m1 = #C3, core::Map<core::int, core::String> m2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:12:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^"]) → void {}
+static method test() → void {
+ {
+ core::Map<core::int, core::String> l0 = <core::int, core::String>{};
+ core::Map<core::int, core::String> l1 = <core::int, core::String>{3: "hello"};
+ core::Map<core::int, core::String> l2 = <core::int, core::String>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:20:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: "hello"};
+ core::Map<core::int, core::String> l3 = <core::int, core::String>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:23:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ core::Map<core::int, core::String> l4 = <core::int, core::String>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:27:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:28:51: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ }
+ {
+ core::Map<dynamic, dynamic> l0 = <dynamic, dynamic>{};
+ core::Map<dynamic, dynamic> l1 = <dynamic, dynamic>{3: "hello"};
+ core::Map<dynamic, dynamic> l2 = <dynamic, dynamic>{"hello": "hello"};
+ core::Map<dynamic, dynamic> l3 = <dynamic, dynamic>{3: 3};
+ core::Map<dynamic, dynamic> l4 = <dynamic, dynamic>{3: "hello", "hello": 3};
+ }
+ {
+ core::Map<dynamic, core::String> l0 = <dynamic, core::String>{};
+ core::Map<dynamic, core::String> l1 = <dynamic, core::String>{3: "hello"};
+ core::Map<dynamic, core::String> l2 = <dynamic, core::String>{"hello": "hello"};
+ core::Map<dynamic, core::String> l3 = <dynamic, core::String>{3: invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:48:50: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ core::Map<dynamic, core::String> l4 = <dynamic, core::String>{3: "hello", "hello": invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:52:56: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ \"hello\": /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::String};
+ }
+ {
+ core::Map<core::int, dynamic> l0 = <core::int, dynamic>{};
+ core::Map<core::int, dynamic> l1 = <core::int, dynamic>{3: "hello"};
+ core::Map<core::int, dynamic> l2 = <core::int, dynamic>{invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:59:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": \"hello\"
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: "hello"};
+ core::Map<core::int, dynamic> l3 = <core::int, dynamic>{3: 3};
+ core::Map<core::int, dynamic> l4 = <core::int, dynamic>{3: "hello", invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:64:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\": 3
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int: 3};
+ }
+ {
+ core::Map<core::int, core::String> l0 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:68:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l0 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{};
+ ^" in <core::num, dynamic>{} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l1 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:69:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l1 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ ^" in <core::num, dynamic>{3: "hello"} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ core::Map<core::int, core::String> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:72:76: Error: A value of type 'Map<num, dynamic>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ Map<int, String> l3 = /*error:INVALID_CAST_LITERAL_MAP*/ <num, dynamic>{
+ ^" in <core::num, dynamic>{3: 3} as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
+ }
+ {
+ const core::Map<core::int, core::String> l2 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:80:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^";
+ const core::Map<core::int, core::String> l3 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:84:86: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ 3: /*error:MAP_VALUE_TYPE_NOT_ASSIGNABLE,error:MAP_VALUE_TYPE_NOT_ASSIGNABLE*/ 3
+ ^";
+ const core::Map<core::int, core::String> l4 = invalid-expression "pkg/front_end/testcases/inference/downwards_inference_on_map_literals2.dart:88:79: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ /*error:MAP_KEY_TYPE_NOT_ASSIGNABLE,error:MAP_KEY_TYPE_NOT_ASSIGNABLE*/ \"hello\":
+ ^";
+ }
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = 1
+ #C2 = "hello"
+ #C3 = <core::int*, core::String*>{#C1:#C2)
+}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart
index 4349993..1b4ee60 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart
@@ -1,28 +1,28 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
Stream<List<int>> foo() async* {
- yield /*@typeArgs=int**/ [];
+ yield /*@typeArgs=int*/ [];
yield /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic */ MyStream();
yield* /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- yield* new /*@ typeArgs=List<int*>* */ MyStream();
+ yield* new /*@typeArgs=List<int>*/ MyStream();
}
Iterable<Map<int, int>> bar() sync* {
- yield new /*@ typeArgs=int*, int* */ Map();
+ yield new /*@typeArgs=int, int*/ Map();
yield /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
yield* /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic, dynamic */ Map();
- yield* /*@typeArgs=Map<int*, int*>**/ [];
+ yield* /*@typeArgs=Map<int, int>*/ [];
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline.expect
index 9dd4582..90f6ed4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
import 'dart:async';
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
Stream<List<int>> foo() async* {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline_modelled.expect
index 2f502af..ced7865 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,7 +6,7 @@
Stream<List<int>> foo() async* {}
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.expect
index 5951999..afeab22 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -32,88 +32,36 @@
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
-static method foo() → asy::Stream<core::List<core::int*>*>* async* {
- yield<core::int*>[];
+static method foo() → asy::Stream<core::List<core::int>> async* {
+ yield<core::int>[];
yield invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:16:69: Error: A value of type 'MyStream<dynamic>' can't be assigned to a variable of type 'List<int>'.
- 'MyStream' is from 'pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart'.
- 'List' is from 'dart:core'.
yield /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic */ MyStream();
- ^" in self::MyStream::•<dynamic>() as{TypeError} core::List<core::int*>*;
+ ^" in self::MyStream::•<dynamic>() as{TypeError,ForNonNullableByDefault} core::List<core::int>;
yield* invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:17:64: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'Stream<List<int>>'.
- 'List' is from 'dart:core'.
- 'Stream' is from 'dart:async'.
yield* /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- ^" in <dynamic>[] as{TypeError} asy::Stream<core::List<core::int*>*>*;
- yield* self::MyStream::•<core::List<core::int*>*>();
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} asy::Stream<core::List<core::int>>;
+ yield* self::MyStream::•<core::List<core::int>>();
}
-static method bar() → core::Iterable<core::Map<core::int*, core::int*>*>* sync* {
- yield core::Map::•<core::int*, core::int*>();
+static method bar() → core::Iterable<core::Map<core::int, core::int>> sync* {
+ yield core::Map::•<core::int, core::int>();
yield invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:23:63: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'Map<int, int>'.
- 'List' is from 'dart:core'.
- 'Map' is from 'dart:core'.
yield /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- ^" in <dynamic>[] as{TypeError} core::Map<core::int*, core::int*>*;
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::int>;
yield* invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:24:79: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'Iterable<Map<int, int>>'.
- 'Map' is from 'dart:core'.
- 'Iterable' is from 'dart:core'.
yield* /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic, dynamic */ Map();
- ^" in core::Map::•<dynamic, dynamic>() as{TypeError} core::Iterable<core::Map<core::int*, core::int*>*>*;
- yield*<core::Map<core::int*, core::int*>*>[];
+ ^" in core::Map::•<dynamic, dynamic>() as{TypeError,ForNonNullableByDefault} core::Iterable<core::Map<core::int, core::int>>;
+ yield*<core::Map<core::int, core::int>>[];
}
static method main() → dynamic {}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.modular.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.modular.expect
index 5951999..afeab22 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -32,88 +32,36 @@
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
-static method foo() → asy::Stream<core::List<core::int*>*>* async* {
- yield<core::int*>[];
+static method foo() → asy::Stream<core::List<core::int>> async* {
+ yield<core::int>[];
yield invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:16:69: Error: A value of type 'MyStream<dynamic>' can't be assigned to a variable of type 'List<int>'.
- 'MyStream' is from 'pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart'.
- 'List' is from 'dart:core'.
yield /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic */ MyStream();
- ^" in self::MyStream::•<dynamic>() as{TypeError} core::List<core::int*>*;
+ ^" in self::MyStream::•<dynamic>() as{TypeError,ForNonNullableByDefault} core::List<core::int>;
yield* invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:17:64: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'Stream<List<int>>'.
- 'List' is from 'dart:core'.
- 'Stream' is from 'dart:async'.
yield* /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- ^" in <dynamic>[] as{TypeError} asy::Stream<core::List<core::int*>*>*;
- yield* self::MyStream::•<core::List<core::int*>*>();
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} asy::Stream<core::List<core::int>>;
+ yield* self::MyStream::•<core::List<core::int>>();
}
-static method bar() → core::Iterable<core::Map<core::int*, core::int*>*>* sync* {
- yield core::Map::•<core::int*, core::int*>();
+static method bar() → core::Iterable<core::Map<core::int, core::int>> sync* {
+ yield core::Map::•<core::int, core::int>();
yield invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:23:63: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'Map<int, int>'.
- 'List' is from 'dart:core'.
- 'Map' is from 'dart:core'.
yield /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- ^" in <dynamic>[] as{TypeError} core::Map<core::int*, core::int*>*;
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::int>;
yield* invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:24:79: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'Iterable<Map<int, int>>'.
- 'Map' is from 'dart:core'.
- 'Iterable' is from 'dart:core'.
yield* /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic, dynamic */ Map();
- ^" in core::Map::•<dynamic, dynamic>() as{TypeError} core::Iterable<core::Map<core::int*, core::int*>*>*;
- yield*<core::Map<core::int*, core::int*>*>[];
+ ^" in core::Map::•<dynamic, dynamic>() as{TypeError,ForNonNullableByDefault} core::Iterable<core::Map<core::int, core::int>>;
+ yield*<core::Map<core::int, core::int>>[];
}
static method main() → dynamic {}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.outline.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.outline.expect
index b893e24..cb0d71e 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.outline.expect
@@ -1,64 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError, () →* void onDone, core::bool* cancelOnError}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
}
-static method foo() → asy::Stream<core::List<core::int*>*>* async*
+static method foo() → asy::Stream<core::List<core::int>> async*
;
-static method bar() → core::Iterable<core::Map<core::int*, core::int*>*>* sync*
+static method bar() → core::Iterable<core::Map<core::int, core::int>> sync*
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.transformed.expect
index 1f13874..f4276e4 100644
--- a/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -32,88 +32,36 @@
import "dart:async";
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
-static method foo() → asy::Stream<core::List<core::int*>*>* async* {
- yield core::_GrowableList::•<core::int*>(0);
+static method foo() → asy::Stream<core::List<core::int>> async* {
+ yield core::_GrowableList::•<core::int>(0);
yield invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:16:69: Error: A value of type 'MyStream<dynamic>' can't be assigned to a variable of type 'List<int>'.
- 'MyStream' is from 'pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart'.
- 'List' is from 'dart:core'.
yield /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic */ MyStream();
- ^" in self::MyStream::•<dynamic>() as{TypeError} core::List<core::int*>*;
+ ^" in self::MyStream::•<dynamic>() as{TypeError,ForNonNullableByDefault} core::List<core::int>;
yield* invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:17:64: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'Stream<List<int>>'.
- 'List' is from 'dart:core'.
- 'Stream' is from 'dart:async'.
yield* /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} asy::Stream<core::List<core::int*>*>*;
- yield* self::MyStream::•<core::List<core::int*>*>();
+ ^" in core::_GrowableList::•<dynamic>(0) as{TypeError,ForNonNullableByDefault} asy::Stream<core::List<core::int>>;
+ yield* self::MyStream::•<core::List<core::int>>();
}
-static method bar() → core::Iterable<core::Map<core::int*, core::int*>*>* sync* {
- yield core::Map::•<core::int*, core::int*>();
+static method bar() → core::Iterable<core::Map<core::int, core::int>> sync* {
+ yield core::Map::•<core::int, core::int>();
yield invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:23:63: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'Map<int, int>'.
- 'List' is from 'dart:core'.
- 'Map' is from 'dart:core'.
yield /*error:YIELD_OF_INVALID_TYPE*/ /*@typeArgs=dynamic*/ [];
- ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} core::Map<core::int*, core::int*>*;
+ ^" in core::_GrowableList::•<dynamic>(0) as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::int>;
yield* invalid-expression "pkg/front_end/testcases/inference/downwards_inference_yield_yield_star.dart:24:79: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'Iterable<Map<int, int>>'.
- 'Map' is from 'dart:core'.
- 'Iterable' is from 'dart:core'.
yield* /*error:YIELD_OF_INVALID_TYPE*/ new /*@ typeArgs=dynamic, dynamic */ Map();
- ^" in core::Map::•<dynamic, dynamic>() as{TypeError} core::Iterable<core::Map<core::int*, core::int*>*>*;
- yield* core::_GrowableList::•<core::Map<core::int*, core::int*>*>(0);
+ ^" in core::Map::•<dynamic, dynamic>() as{TypeError,ForNonNullableByDefault} core::Iterable<core::Map<core::int, core::int>>;
+ yield* core::_GrowableList::•<core::Map<core::int, core::int>>(0);
}
static method main() → dynamic {}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart b/pkg/front_end/testcases/inference/dynamic_methods.dart
index a381658..0b0d8fc 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,10 +11,10 @@
test() {
dynamic d = new Foo();
- var /*@ type=int* */ get_hashCode = d. /*@target=Object.hashCode*/ hashCode;
+ var /*@type=int*/ get_hashCode = d. /*@target=Object.hashCode*/ hashCode;
var /*@ type=dynamic */ call_hashCode =
d. /*@target=Object.hashCode*/ hashCode();
- var /*@ type=String* */ call_toString =
+ var /*@type=String*/ call_toString =
d. /*@target=Object.toString*/ toString();
var /*@ type=dynamic */ call_toStringArg = d.toString(color: "pink");
var /*@ type=dynamic */ call_foo0 = d.foo();
@@ -22,14 +22,14 @@
var /*@ type=dynamic */ call_foo2 = d.foo(1, 2);
var /*@ type=dynamic */ call_nsm0 = d.noSuchMethod();
var /*@ type=dynamic */ call_nsm1 =
- d. /*@target=Object.noSuchMethod*/ noSuchMethod(null);
+ d. /*@target=Object.noSuchMethod*/ noSuchMethod(throw '');
var /*@ type=dynamic */ call_nsm2 = d.noSuchMethod(null, null);
- var /*@ type=bool* */ equals_self = d /*@target=Object.==*/ == d;
- var /*@ type=bool* */ equals_null = d == null;
- var /*@ type=bool* */ null_equals = null == d;
- var /*@ type=bool* */ not_equals_self = d /*@target=Object.==*/ != d;
- var /*@ type=bool* */ not_equals_null = d != null;
- var /*@ type=bool* */ null_not_equals = null != d;
+ var /*@type=bool*/ equals_self = d /*@target=Object.==*/ == d;
+ var /*@type=bool*/ equals_null = d == null;
+ var /*@type=bool*/ null_equals = null == d;
+ var /*@type=bool*/ not_equals_self = d /*@target=Object.==*/ != d;
+ var /*@type=bool*/ not_equals_null = d != null;
+ var /*@type=bool*/ null_not_equals = null != d;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline.expect b/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline.expect
index 520a2f0..d2690b8 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline_modelled.expect
index e184ef2..441f1e9 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.expect b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.expect
index 3cc9299..028eb3c 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,41 +10,31 @@
import "dart:core" as core;
class Foo extends core::Object {
- synthetic constructor •() → self::Foo*
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- method foo(core::int* x) → core::int*
+ method foo(core::int x) → core::int
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
dynamic d = new self::Foo::•();
- core::int* get_hashCode = d.{core::Object::hashCode}{core::int*};
+ core::int get_hashCode = d.{core::Object::hashCode}{core::int};
dynamic call_hashCode = invalid-expression "pkg/front_end/testcases/inference/dynamic_methods.dart:16:46: Error: 'hashCode' isn't a function or method and can't be invoked.
d. /*@target=Object.hashCode*/ hashCode();
- ^^^^..." in d.{core::Object::hashCode}{core::int*}{<unresolved>}.call();
- core::String* call_toString = d.{core::Object::toString}(){() →* core::String*};
+ ^^^^..." in d.{core::Object::hashCode}{core::int}{<unresolved>}.call();
+ core::String call_toString = d.{core::Object::toString}(){() → core::String};
dynamic call_toStringArg = d{dynamic}.toString(color: "pink");
dynamic call_foo0 = d{dynamic}.foo();
dynamic call_foo1 = d{dynamic}.foo(1);
dynamic call_foo2 = d{dynamic}.foo(1, 2);
dynamic call_nsm0 = d{dynamic}.noSuchMethod();
- dynamic call_nsm1 = d.{core::Object::noSuchMethod}(null){(core::Invocation*) →* dynamic};
+ dynamic call_nsm1 = d.{core::Object::noSuchMethod}(throw ""){(core::Invocation) → dynamic};
dynamic call_nsm2 = d{dynamic}.noSuchMethod(null, null);
- core::bool* equals_self = d =={core::Object::==}{(core::Object*) →* core::bool*} d;
- core::bool* equals_null = d == null;
- core::bool* null_equals = d == null;
- core::bool* not_equals_self = !(d =={core::Object::==}{(core::Object*) →* core::bool*} d);
- core::bool* not_equals_null = !(d == null);
- core::bool* null_not_equals = !(d == null);
+ core::bool equals_self = d =={core::Object::==}{(core::Object) → core::bool} d;
+ core::bool equals_null = d == null;
+ core::bool null_equals = d == null;
+ core::bool not_equals_self = !(d =={core::Object::==}{(core::Object) → core::bool} d);
+ core::bool not_equals_null = !(d == null);
+ core::bool null_not_equals = !(d == null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.modular.expect b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.modular.expect
index 3cc9299..028eb3c 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,41 +10,31 @@
import "dart:core" as core;
class Foo extends core::Object {
- synthetic constructor •() → self::Foo*
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- method foo(core::int* x) → core::int*
+ method foo(core::int x) → core::int
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
dynamic d = new self::Foo::•();
- core::int* get_hashCode = d.{core::Object::hashCode}{core::int*};
+ core::int get_hashCode = d.{core::Object::hashCode}{core::int};
dynamic call_hashCode = invalid-expression "pkg/front_end/testcases/inference/dynamic_methods.dart:16:46: Error: 'hashCode' isn't a function or method and can't be invoked.
d. /*@target=Object.hashCode*/ hashCode();
- ^^^^..." in d.{core::Object::hashCode}{core::int*}{<unresolved>}.call();
- core::String* call_toString = d.{core::Object::toString}(){() →* core::String*};
+ ^^^^..." in d.{core::Object::hashCode}{core::int}{<unresolved>}.call();
+ core::String call_toString = d.{core::Object::toString}(){() → core::String};
dynamic call_toStringArg = d{dynamic}.toString(color: "pink");
dynamic call_foo0 = d{dynamic}.foo();
dynamic call_foo1 = d{dynamic}.foo(1);
dynamic call_foo2 = d{dynamic}.foo(1, 2);
dynamic call_nsm0 = d{dynamic}.noSuchMethod();
- dynamic call_nsm1 = d.{core::Object::noSuchMethod}(null){(core::Invocation*) →* dynamic};
+ dynamic call_nsm1 = d.{core::Object::noSuchMethod}(throw ""){(core::Invocation) → dynamic};
dynamic call_nsm2 = d{dynamic}.noSuchMethod(null, null);
- core::bool* equals_self = d =={core::Object::==}{(core::Object*) →* core::bool*} d;
- core::bool* equals_null = d == null;
- core::bool* null_equals = d == null;
- core::bool* not_equals_self = !(d =={core::Object::==}{(core::Object*) →* core::bool*} d);
- core::bool* not_equals_null = !(d == null);
- core::bool* null_not_equals = !(d == null);
+ core::bool equals_self = d =={core::Object::==}{(core::Object) → core::bool} d;
+ core::bool equals_null = d == null;
+ core::bool null_equals = d == null;
+ core::bool not_equals_self = !(d =={core::Object::==}{(core::Object) → core::bool} d);
+ core::bool not_equals_null = !(d == null);
+ core::bool null_not_equals = !(d == null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.outline.expect b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.outline.expect
index 266c3b7..f85ff81 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
- synthetic constructor •() → self::Foo*
+ synthetic constructor •() → self::Foo
;
- method foo(core::int* x) → core::int*
+ method foo(core::int x) → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.transformed.expect
index 3cc9299..028eb3c 100644
--- a/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/dynamic_methods.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,41 +10,31 @@
import "dart:core" as core;
class Foo extends core::Object {
- synthetic constructor •() → self::Foo*
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- method foo(core::int* x) → core::int*
+ method foo(core::int x) → core::int
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
dynamic d = new self::Foo::•();
- core::int* get_hashCode = d.{core::Object::hashCode}{core::int*};
+ core::int get_hashCode = d.{core::Object::hashCode}{core::int};
dynamic call_hashCode = invalid-expression "pkg/front_end/testcases/inference/dynamic_methods.dart:16:46: Error: 'hashCode' isn't a function or method and can't be invoked.
d. /*@target=Object.hashCode*/ hashCode();
- ^^^^..." in d.{core::Object::hashCode}{core::int*}{<unresolved>}.call();
- core::String* call_toString = d.{core::Object::toString}(){() →* core::String*};
+ ^^^^..." in d.{core::Object::hashCode}{core::int}{<unresolved>}.call();
+ core::String call_toString = d.{core::Object::toString}(){() → core::String};
dynamic call_toStringArg = d{dynamic}.toString(color: "pink");
dynamic call_foo0 = d{dynamic}.foo();
dynamic call_foo1 = d{dynamic}.foo(1);
dynamic call_foo2 = d{dynamic}.foo(1, 2);
dynamic call_nsm0 = d{dynamic}.noSuchMethod();
- dynamic call_nsm1 = d.{core::Object::noSuchMethod}(null){(core::Invocation*) →* dynamic};
+ dynamic call_nsm1 = d.{core::Object::noSuchMethod}(throw ""){(core::Invocation) → dynamic};
dynamic call_nsm2 = d{dynamic}.noSuchMethod(null, null);
- core::bool* equals_self = d =={core::Object::==}{(core::Object*) →* core::bool*} d;
- core::bool* equals_null = d == null;
- core::bool* null_equals = d == null;
- core::bool* not_equals_self = !(d =={core::Object::==}{(core::Object*) →* core::bool*} d);
- core::bool* not_equals_null = !(d == null);
- core::bool* null_not_equals = !(d == null);
+ core::bool equals_self = d =={core::Object::==}{(core::Object) → core::bool} d;
+ core::bool equals_null = d == null;
+ core::bool null_equals = d == null;
+ core::bool not_equals_self = !(d =={core::Object::==}{(core::Object) → core::bool} d);
+ core::bool not_equals_null = !(d == null);
+ core::bool null_not_equals = !(d == null);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart
index 2cc4ef2..8797577 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
final int x;
- C() : x = /*@ typeArgs=int* */ f();
+ C() : x = /*@typeArgs=int*/ f();
}
main() {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline.expect
index 29f36b1..e2985ec 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
final int x;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline_modelled.expect
index 48c35b5..4ab415c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
C() : x = f();
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.expect b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.expect
index be4cd27..d8d638c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.modular.expect b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.modular.expect
index be4cd27..d8d638c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.outline.expect
index 9685fc7..93d551a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
+ final field core::int x;
+ constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.transformed.expect
index be4cd27..d8d638c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_explicit.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart
index 1aa57eb..90a54af4 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C implements B {
final x;
- C() : x = /*@ typeArgs=int* */ f();
+ C() : x = /*@typeArgs=int*/ f();
}
abstract class B {
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline.expect
index da0ba76..63624e5 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C implements B {
final x;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline_modelled.expect
index d26853f..7b4cbc1 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
abstract class B {
int get x;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.expect
index 4be2a2e..e2c8056 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object implements self::B {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.modular.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.modular.expect
index 4be2a2e..e2c8056 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object implements self::B {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.outline.expect
index 9159f0b..b9c3eb0 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object implements self::B {
- final field core::int* x;
- constructor •() → self::C*
+ final field core::int x;
+ constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.transformed.expect
index 4be2a2e..e2c8056 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_implicit.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object implements self::B {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart b/pkg/front_end/testcases/inference/field_initializer_context_this.dart
index 21b0a86..19cceaa 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
final int x;
- C() : this.x = /*@ typeArgs=int* */ f();
+ C() : this.x = /*@typeArgs=int*/ f();
}
main() {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline.expect
index b34b6ab..1e1a021 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
final int x;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline_modelled.expect
index 3bf83d9..99df24f 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
C() : this.x = f();
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.expect b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.expect
index be4cd27..d8d638c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.modular.expect b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.modular.expect
index be4cd27..d8d638c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.outline.expect b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.outline.expect
index 9685fc7..93d551a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
+ final field core::int x;
+ constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.transformed.expect
index be4cd27..d8d638c 100644
--- a/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_context_this.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- constructor •() → self::C*
- : self::C::x = self::f<core::int*>(), super core::Object::•()
+ final field core::int x;
+ constructor •() → self::C
+ : self::C::x = self::f<core::int>(), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart b/pkg/front_end/testcases/inference/field_initializer_parameter.dart
index 1716fed..f8779f9 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
class C {
final x;
- C(int p) : x = /*@ typeArgs=int* */ f(p);
+ C(int p) : x = /*@typeArgs=int*/ f(p);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline.expect
index 478e8b6..94b8c9a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T f<T>(T t) => t;
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline_modelled.expect
index 8c232d5..8596052 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T f<T>(T t) => t;
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.expect b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.expect
index fa1a596..6e94c4a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
- : self::C::x = self::f<core::int*>(p), super core::Object::•()
+ constructor •(core::int p) → self::C
+ : self::C::x = self::f<core::int>(p), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.modular.expect
index fa1a596..6e94c4a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
- : self::C::x = self::f<core::int*>(p), super core::Object::•()
+ constructor •(core::int p) → self::C
+ : self::C::x = self::f<core::int>(p), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.outline.expect
index 73500a0..95702b4 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
+ constructor •(core::int p) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.transformed.expect
index fa1a596..6e94c4a 100644
--- a/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_initializer_parameter.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
final field dynamic x;
- constructor •(core::int* p) → self::C*
- : self::C::x = self::f<core::int*>(p), super core::Object::•()
+ constructor •(core::int p) → self::C
+ : self::C::x = self::f<core::int>(p), super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>(self::f::T* t) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% t) → self::f::T%
return t;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart
index b31bdeb..7c308f7 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
final x = _x;
- static int get _x => null;
+ static int get _x => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline.expect
index 1b6c304..4c494df 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
final x = _x;
- static int get _x => null;
+ static int get _x => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline_modelled.expect
index 1b6c304..4c494df 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
final x = _x;
- static int get _x => null;
+ static int get _x => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.expect
index 0c7c096..ff7c2ec 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x = self::C::_x;
- synthetic constructor •() → self::C*
+ final field core::int x = self::C::_x;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static get _x() → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static get _x() → core::int
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.modular.expect
index 0c7c096..ff7c2ec 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x = self::C::_x;
- synthetic constructor •() → self::C*
+ final field core::int x = self::C::_x;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static get _x() → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static get _x() → core::int
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.outline.expect
index 5b1faba..0b026cb 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- synthetic constructor •() → self::C*
+ final field core::int x;
+ synthetic constructor •() → self::C
;
- static get _x() → core::int*
+ static get _x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.transformed.expect
index 0c7c096..ff7c2ec 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_static_getter.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x = self::C::_x;
- synthetic constructor •() → self::C*
+ final field core::int x = self::C::_x;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static get _x() → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static get _x() → core::int
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart
index d23a26d..a904cca 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,6 +9,6 @@
final x = y;
}
-int get y => null;
+int get y => throw '';
main() {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline.expect
index 74b8ff9..f3f7e14 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
final x = y;
}
-int get y => null;
+int get y => throw '';
main() {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline_modelled.expect
index 74b8ff9..f3f7e14 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
final x = y;
}
-int get y => null;
+int get y => throw '';
main() {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.expect
index f7f1c21..351830c 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x = self::y;
- synthetic constructor •() → self::C*
+ final field core::int x = self::y;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static get y() → core::int*
- return null;
+static get y() → core::int
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.modular.expect
index f7f1c21..351830c 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x = self::y;
- synthetic constructor •() → self::C*
+ final field core::int x = self::y;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static get y() → core::int*
- return null;
+static get y() → core::int
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.outline.expect
index 49626d9..d9bed3b 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x;
- synthetic constructor •() → self::C*
+ final field core::int x;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static get y() → core::int*
+static get y() → core::int
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.transformed.expect
index f7f1c21..351830c 100644
--- a/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/field_refers_to_top_level_getter.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- final field core::int* x = self::y;
- synthetic constructor •() → self::C*
+ final field core::int x = self::y;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static get y() → core::int*
- return null;
+static get y() → core::int
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart b/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart
index c670437..fbc4673 100644
--- a/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart
new file mode 100644
index 0000000..e399590
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart
@@ -0,0 +1,18 @@
+// Copyright (c) 2017, 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.
+
+// @dart=2.9
+
+/*@testedFeatures=inference*/
+library test;
+
+test(dynamic o) async {
+ for (var /*@type=dynamic*/ x in o) {}
+ await for (var /*@type=dynamic*/ x in o) {}
+ int y;
+ for (y in o) {}
+ await for (y in o) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.textual_outline.expect
new file mode 100644
index 0000000..798dfe5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.textual_outline.expect
@@ -0,0 +1,5 @@
+// @dart = 2.9
+library test;
+
+test(dynamic o) async {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a899b5d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.textual_outline_modelled.expect
@@ -0,0 +1,5 @@
+// @dart = 2.9
+library test;
+
+main() {}
+test(dynamic o) async {}
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.expect
new file mode 100644
index 0000000..6e6bae7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.expect
@@ -0,0 +1,19 @@
+library test;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+static method test(dynamic o) → dynamic async /* futureValueType= dynamic */ {
+ for (dynamic x in o as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+ }
+ await for (dynamic x in o as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
+ }
+ core::int* y;
+ for (final dynamic #t1 in o as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+ y = #t1 as{TypeError,ForDynamic} core::int*;
+ }
+ await for (final dynamic #t2 in o as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
+ y = #t2 as{TypeError,ForDynamic} core::int*;
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.modular.expect
new file mode 100644
index 0000000..6e6bae7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.modular.expect
@@ -0,0 +1,19 @@
+library test;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+static method test(dynamic o) → dynamic async /* futureValueType= dynamic */ {
+ for (dynamic x in o as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+ }
+ await for (dynamic x in o as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
+ }
+ core::int* y;
+ for (final dynamic #t1 in o as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
+ y = #t1 as{TypeError,ForDynamic} core::int*;
+ }
+ await for (final dynamic #t2 in o as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
+ y = #t2 as{TypeError,ForDynamic} core::int*;
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.outline.expect
new file mode 100644
index 0000000..52dc73d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library test;
+import self as self;
+
+static method test(dynamic o) → dynamic async
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.transformed.expect
new file mode 100644
index 0000000..51313c1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_each_downcast_iterable2.dart.weak.transformed.expect
@@ -0,0 +1,51 @@
+library test;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+static method test(dynamic o) → dynamic async /* futureValueType= dynamic */ {
+ {
+ core::Iterator<dynamic>* :sync-for-iterator = (o as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+ dynamic x = :sync-for-iterator.{core::Iterator::current}{dynamic};
+ {}
+ }
+ }
+ {
+ asy::Stream<dynamic>* :stream = o as{TypeError,ForDynamic} asy::Stream<dynamic>*;
+ asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ try
+ while (let dynamic #t1 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
+ dynamic x = :for-iterator.{asy::_StreamIterator::current}{dynamic};
+ {}
+ }
+ finally
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null))
+ await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
+ }
+ core::int* y;
+ {
+ core::Iterator<dynamic>* :sync-for-iterator = (o as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+ final dynamic #t2 = :sync-for-iterator.{core::Iterator::current}{dynamic};
+ {
+ y = #t2 as{TypeError,ForDynamic} core::int*;
+ }
+ }
+ }
+ {
+ asy::Stream<dynamic>* :stream = o as{TypeError,ForDynamic} asy::Stream<dynamic>*;
+ asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ try
+ while (let dynamic #t3 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
+ final dynamic #t4 = :for-iterator.{asy::_StreamIterator::current}{dynamic};
+ {
+ y = #t4 as{TypeError,ForDynamic} core::int*;
+ }
+ }
+ finally
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null))
+ await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion.dart b/pkg/front_end/testcases/inference/for_in_loop_promotion.dart
index 0935ce0..8b6136a 100644
--- a/pkg/front_end/testcases/inference/for_in_loop_promotion.dart
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test(List<num> nums) {
- for (var /*@ type=num* */ x in nums) {
+ for (var /*@type=num**/ x in nums) {
if (x is int) {
- var /*@ type=int* */ y = /*@ promotedType=int* */ x;
+ var /*@type=int**/ y = /*@promotedType=int**/ x;
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart
new file mode 100644
index 0000000..cca98f3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void test(List<num> nums) {
+ for (var /*@type=num*/ x in nums) {
+ if (x is int) {
+ var /*@type=int*/ y = /*@promotedType=int*/ x;
+ }
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.textual_outline.expect
new file mode 100644
index 0000000..9d1fb80
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+void test(List<num> nums) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d7c5b5b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+main() {}
+void test(List<num> nums) {}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.expect b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.expect
new file mode 100644
index 0000000..38e6b00
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(core::List<core::num> nums) → void {
+ for (core::num x in nums) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.modular.expect
new file mode 100644
index 0000000..38e6b00
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.modular.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(core::List<core::num> nums) → void {
+ for (core::num x in nums) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.outline.expect
new file mode 100644
index 0000000..0da946e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.outline.expect
@@ -0,0 +1,8 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(core::List<core::num> nums) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ee16a51
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_in_loop_promotion2.dart.weak.transformed.expect
@@ -0,0 +1,18 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(core::List<core::num> nums) → void {
+ {
+ core::Iterator<core::num> :sync-for-iterator = nums.{core::Iterable::iterator}{core::Iterator<core::num>};
+ for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
+ core::num x = :sync-for-iterator.{core::Iterator::current}{core::num};
+ {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart
index b9c867e..b408544 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
for (num x = 0;; x /*@target=num.+*/ ++) {
if (x /*@target=num.>=*/ >= 10) break;
if (x is int) {
- var /*@ type=int* */ y = /*@ promotedType=int* */ x;
+ var /*@type=int*/ y = /*@promotedType=int*/ x;
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.expect
index f17816f..967b2c0 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
#L1:
- for (core::num* x = 0; ; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
- if(x.{core::num::>=}(10){(core::num*) →* core::bool*})
+ for (core::num x = 0; ; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x.{core::num::>=}(10){(core::num) → core::bool})
break #L1;
- if(x is core::int*) {
- core::int* y = x{core::int*};
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.modular.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.modular.expect
index f17816f..967b2c0 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
#L1:
- for (core::num* x = 0; ; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
- if(x.{core::num::>=}(10){(core::num*) →* core::bool*})
+ for (core::num x = 0; ; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x.{core::num::>=}(10){(core::num) → core::bool})
break #L1;
- if(x is core::int*) {
- core::int* y = x{core::int*};
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.outline.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.transformed.expect
index f17816f..967b2c0 100644
--- a/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
#L1:
- for (core::num* x = 0; ; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
- if(x.{core::num::>=}(10){(core::num*) →* core::bool*})
+ for (core::num x = 0; ; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x.{core::num::>=}(10){(core::num) → core::bool})
break #L1;
- if(x is core::int*) {
- core::int* y = x{core::int*};
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart
new file mode 100644
index 0000000..b408544
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart
@@ -0,0 +1,17 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void test() {
+ for (num x = 0;; x /*@target=num.+*/ ++) {
+ if (x /*@target=num.>=*/ >= 10) break;
+ if (x is int) {
+ var /*@type=int*/ y = /*@promotedType=int*/ x;
+ }
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.textual_outline.expect
new file mode 100644
index 0000000..a6bcf94
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+void test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..72a3ba0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.expect
new file mode 100644
index 0000000..967b2c0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ #L1:
+ for (core::num x = 0; ; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x.{core::num::>=}(10){(core::num) → core::bool})
+ break #L1;
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.modular.expect
new file mode 100644
index 0000000..967b2c0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.modular.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ #L1:
+ for (core::num x = 0; ; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x.{core::num::>=}(10){(core::num) → core::bool})
+ break #L1;
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.outline.expect
new file mode 100644
index 0000000..01b7bf5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.transformed.expect
new file mode 100644
index 0000000..967b2c0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_empty_condition2.dart.weak.transformed.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ #L1:
+ for (core::num x = 0; ; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x.{core::num::>=}(10){(core::num) → core::bool})
+ break #L1;
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart
index 9b6724b..63fe9ed 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
num x;
for (x = 0; x /*@target=num.<*/ < 10; x /*@target=num.+*/ ++) {
if (x is int) {
- var /*@ type=int* */ y = /*@ promotedType=int* */ x;
+ var /*@type=int*/ y = /*@promotedType=int*/ x;
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline.expect b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.expect b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.expect
index 8f36a9c..98454d9 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::num* x;
- for (final core::int* #t1 = x = 0; x.{core::num::<}(10){(core::num*) →* core::bool*}; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
- if(x is core::int*) {
- core::int* y = x{core::int*};
+ core::num x;
+ for (final core::int #t1 = x = 0; x.{core::num::<}(10){(core::num) → core::bool}; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.modular.expect b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.modular.expect
index 8f36a9c..98454d9 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::num* x;
- for (final core::int* #t1 = x = 0; x.{core::num::<}(10){(core::num*) →* core::bool*}; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
- if(x is core::int*) {
- core::int* y = x{core::int*};
+ core::num x;
+ for (final core::int #t1 = x = 0; x.{core::num::<}(10){(core::num) → core::bool}; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.outline.expect b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.transformed.expect
index 8f36a9c..98454d9 100644
--- a/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/for_loop_initializer_expression.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::num* x;
- for (final core::int* #t1 = x = 0; x.{core::num::<}(10){(core::num*) →* core::bool*}; x = x.{core::num::+}(1){(core::num*) →* core::num*}) {
- if(x is core::int*) {
- core::int* y = x{core::int*};
+ core::num x;
+ for (final core::int #t1 = x = 0; x.{core::num::<}(10){(core::num) → core::bool}; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion.dart b/pkg/front_end/testcases/inference/for_loop_promotion.dart
index 7506811..51d4259 100644
--- a/pkg/front_end/testcases/inference/for_loop_promotion.dart
+++ b/pkg/front_end/testcases/inference/for_loop_promotion.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test() {
for (num x = 0; x /*@target=num.<*/ < 10; x /*@target=num.+*/ ++) {
if (x is int) {
- var /*@ type=int* */ y = /*@ promotedType=int* */ x;
+ var /*@type=int**/ y = /*@promotedType=int**/ x;
}
}
}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart b/pkg/front_end/testcases/inference/for_loop_promotion2.dart
new file mode 100644
index 0000000..ade0346
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart
@@ -0,0 +1,16 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void test() {
+ for (num x = 0; x /*@target=num.<*/ < 10; x /*@target=num.+*/ ++) {
+ if (x is int) {
+ var /*@type=int*/ y = /*@promotedType=int*/ x;
+ }
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.textual_outline.expect
new file mode 100644
index 0000000..a6bcf94
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+void test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..72a3ba0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.expect b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.expect
new file mode 100644
index 0000000..9c494da
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ for (core::num x = 0; x.{core::num::<}(10){(core::num) → core::bool}; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.modular.expect
new file mode 100644
index 0000000..9c494da
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.modular.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ for (core::num x = 0; x.{core::num::<}(10){(core::num) → core::bool}; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.outline.expect
new file mode 100644
index 0000000..01b7bf5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.outline.expect
@@ -0,0 +1,7 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+
+static method test() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.transformed.expect
new file mode 100644
index 0000000..9c494da
--- /dev/null
+++ b/pkg/front_end/testcases/inference/for_loop_promotion2.dart.weak.transformed.expect
@@ -0,0 +1,12 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test() → void {
+ for (core::num x = 0; x.{core::num::<}(10){(core::num) → core::bool}; x = x.{core::num::+}(1){(core::num) → core::num}) {
+ if(x is{ForNonNullableByDefault} core::int) {
+ core::int y = x{core::int};
+ }
+ }
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart b/pkg/front_end/testcases/inference/future_or_subtyping.dart
index 075ec72..7e5c647 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,11 +9,10 @@
void add(int x) {}
add2(int y) {}
-test() {
- Future<int> f;
- var /*@ type=Future<void>* */ a =
+test(Future<int> f) {
+ var /*@type=Future<void>*/ a =
f. /*@ typeArgs=void */ /*@target=Future.then*/ then(add);
- var /*@ type=Future<dynamic>* */ b =
+ var /*@type=Future<dynamic>*/ b =
f. /*@ typeArgs=dynamic */ /*@target=Future.then*/ then(add2);
}
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline.expect
index 656dc85..7dd4cd1 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
void add(int x) {}
add2(int y) {}
-test() {}
+test(Future<int> f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline_modelled.expect
index d072e54..cc8d447 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
add2(int y) {}
main() {}
-test() {}
+test(Future<int> f) {}
void add(int x) {}
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.expect
index 36d60ee..9b53f80 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.expect
@@ -1,16 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method add(core::int* x) → void {}
-static method add2(core::int* y) → dynamic {}
-static method test() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<void>* a = f.{asy::Future::then}<void>(#C1){((core::int*) →* FutureOr<void>*, {onError: core::Function*}) →* asy::Future<void>*};
- asy::Future<dynamic>* b = f.{asy::Future::then}<dynamic>(#C2){((core::int*) →* FutureOr<dynamic>*, {onError: core::Function*}) →* asy::Future<dynamic>*};
+static method add(core::int x) → void {}
+static method add2(core::int y) → dynamic {}
+static method test(asy::Future<core::int> f) → dynamic {
+ asy::Future<void> a = f.{asy::Future::then}<void>(#C1){((core::int) → FutureOr<void>, {onError: core::Function?}) → asy::Future<void>};
+ asy::Future<dynamic> b = f.{asy::Future::then}<dynamic>(#C2){((core::int) → FutureOr<dynamic>, {onError: core::Function?}) → asy::Future<dynamic>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.modular.expect
index 36d60ee..9b53f80 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.modular.expect
@@ -1,16 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method add(core::int* x) → void {}
-static method add2(core::int* y) → dynamic {}
-static method test() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<void>* a = f.{asy::Future::then}<void>(#C1){((core::int*) →* FutureOr<void>*, {onError: core::Function*}) →* asy::Future<void>*};
- asy::Future<dynamic>* b = f.{asy::Future::then}<dynamic>(#C2){((core::int*) →* FutureOr<dynamic>*, {onError: core::Function*}) →* asy::Future<dynamic>*};
+static method add(core::int x) → void {}
+static method add2(core::int y) → dynamic {}
+static method test(asy::Future<core::int> f) → dynamic {
+ asy::Future<void> a = f.{asy::Future::then}<void>(#C1){((core::int) → FutureOr<void>, {onError: core::Function?}) → asy::Future<void>};
+ asy::Future<dynamic> b = f.{asy::Future::then}<dynamic>(#C2){((core::int) → FutureOr<dynamic>, {onError: core::Function?}) → asy::Future<dynamic>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.outline.expect
index c763edf..2f1d106 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.outline.expect
@@ -1,14 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
+import "dart:async" as asy;
import "dart:async";
-static method add(core::int* x) → void
+static method add(core::int x) → void
;
-static method add2(core::int* y) → dynamic
+static method add2(core::int y) → dynamic
;
-static method test() → dynamic
+static method test(asy::Future<core::int> f) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.transformed.expect
index 36d60ee..9b53f80 100644
--- a/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_or_subtyping.dart.weak.transformed.expect
@@ -1,16 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method add(core::int* x) → void {}
-static method add2(core::int* y) → dynamic {}
-static method test() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<void>* a = f.{asy::Future::then}<void>(#C1){((core::int*) →* FutureOr<void>*, {onError: core::Function*}) →* asy::Future<void>*};
- asy::Future<dynamic>* b = f.{asy::Future::then}<dynamic>(#C2){((core::int*) →* FutureOr<dynamic>*, {onError: core::Function*}) →* asy::Future<dynamic>*};
+static method add(core::int x) → void {}
+static method add2(core::int y) → dynamic {}
+static method test(asy::Future<core::int> f) → dynamic {
+ asy::Future<void> a = f.{asy::Future::then}<void>(#C1){((core::int) → FutureOr<void>, {onError: core::Function?}) → asy::Future<void>};
+ asy::Future<dynamic> b = f.{asy::Future::then}<dynamic>(#C2){((core::int) → FutureOr<dynamic>, {onError: core::Function?}) → asy::Future<dynamic>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then.dart b/pkg/front_end/testcases/inference/future_then.dart
index 0fd487d..e350388 100644
--- a/pkg/front_end/testcases/inference/future_then.dart
+++ b/pkg/front_end/testcases/inference/future_then.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,36 +11,35 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {
- MyFuture f;
- Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+void test(MyFuture f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
await new Future<int>.value(3));
- Future<int> t2 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return await new Future<int>.value(3);
});
- Future<int> t3 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async => 3);
- Future<int> t4 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t3 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async => 3);
+ Future<int> t4 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return 3;
});
- Future<int> t5 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) =>
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) =>
new Future<int>.value(3));
- Future<int> t6 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) {
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) {
return new Future<int>.value(3);
});
- Future<int> t7 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+ Future<int> t7 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
new Future<int>.value(3));
- Future<int> t8 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t8 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return new Future<int>.value(3);
});
}
diff --git a/pkg/front_end/testcases/inference/future_then.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then.dart.textual_outline.expect
index fa6176d..efd6b56 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {}
+void test(MyFuture f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then.dart.textual_outline_modelled.expect
index 2a04b20..1b0c6ac 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -6,9 +5,9 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
main() {}
-void test() {}
+void test(MyFuture f) {}
diff --git a/pkg/front_end/testcases/inference/future_then.dart.weak.expect b/pkg/front_end/testcases/inference/future_then.dart.weak.expect
index 806622d..c7f957d 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.weak.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then.dart.weak.modular.expect
index 806622d..c7f957d 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.weak.modular.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then.dart.weak.outline.expect
index 9492fb2..c0befdd 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void
+static method test(self::MyFuture<dynamic> f) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then.dart.weak.transformed.expect
index 06b5b67..59040bd 100644
--- a/pkg/front_end/testcases/inference/future_then.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then.dart.weak.transformed.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart b/pkg/front_end/testcases/inference/future_then_2.dart
index 5987e1a..523142d 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart
+++ b/pkg/front_end/testcases/inference/future_then_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,36 +11,35 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {
- MyFuture f;
- Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+void test(MyFuture f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
await new MyFuture<int>.value(3));
- Future<int> t2 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return await new MyFuture<int>.value(3);
});
- Future<int> t3 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async => 3);
- Future<int> t4 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t3 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async => 3);
+ Future<int> t4 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return 3;
});
- Future<int> t5 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) =>
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) =>
new MyFuture<int>.value(3));
- Future<int> t6 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) {
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) {
return new MyFuture<int>.value(3);
});
- Future<int> t7 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+ Future<int> t7 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
new MyFuture<int>.value(3));
- Future<int> t8 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t8 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return new MyFuture<int>.value(3);
});
}
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline.expect
index fa6176d..efd6b56 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {}
+void test(MyFuture f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline_modelled.expect
index 2a04b20..1b0c6ac 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -6,9 +5,9 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
main() {}
-void test() {}
+void test(MyFuture f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_2.dart.weak.expect
index 3239514..24bbd71 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.weak.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_2.dart.weak.modular.expect
index 3239514..24bbd71 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.weak.modular.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_2.dart.weak.outline.expect
index 6bf7851..c0befdd 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void
+static method test(self::MyFuture<dynamic> f) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_2.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_2.dart.weak.transformed.expect
index 8e3d262..799dbca 100644
--- a/pkg/front_end/testcases/inference/future_then_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_2.dart.weak.transformed.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- asy::Future<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart b/pkg/front_end/testcases/inference/future_then_3.dart
index db97e58..89251a8 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart
+++ b/pkg/front_end/testcases/inference/future_then_3.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,36 +11,35 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {
- MyFuture f;
- MyFuture<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+void test(MyFuture f) {
+ MyFuture<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
await new Future<int>.value(3));
- MyFuture<int> t2 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ MyFuture<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return await new Future<int>.value(3);
});
- MyFuture<int> t3 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async => 3);
- MyFuture<int> t4 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ MyFuture<int> t3 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async => 3);
+ MyFuture<int> t4 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return 3;
});
- MyFuture<int> t5 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) =>
+ MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) =>
new Future<int>.value(3));
- MyFuture<int> t6 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) {
+ MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) {
return new Future<int>.value(3);
});
- MyFuture<int> t7 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+ MyFuture<int> t7 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
new Future<int>.value(3));
- MyFuture<int> t8 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ MyFuture<int> t8 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return new Future<int>.value(3);
});
}
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline.expect
index fa6176d..efd6b56 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {}
+void test(MyFuture f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline_modelled.expect
index 2a04b20..1b0c6ac 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -6,9 +5,9 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
main() {}
-void test() {}
+void test(MyFuture f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_3.dart.weak.expect
index 9bbf98e..e2c59bb 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.weak.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- self::MyFuture<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_3.dart.weak.modular.expect
index 9bbf98e..e2c59bb 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.weak.modular.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- self::MyFuture<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_3.dart.weak.outline.expect
index d8325ea..c0befdd 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void
+static method test(self::MyFuture<dynamic> f) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_3.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_3.dart.weak.transformed.expect
index 53f1486..a49af5d 100644
--- a/pkg/front_end/testcases/inference/future_then_3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_3.dart.weak.transformed.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- self::MyFuture<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart b/pkg/front_end/testcases/inference/future_then_4.dart
index 06ff323..f85dd42 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart
+++ b/pkg/front_end/testcases/inference/future_then_4.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,36 +11,35 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {
- MyFuture f;
- MyFuture<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+void test(MyFuture f) {
+ MyFuture<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
await new MyFuture<int>.value(3));
- MyFuture<int> t2 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ MyFuture<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return await new MyFuture<int>.value(3);
});
- MyFuture<int> t3 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async => 3);
- MyFuture<int> t4 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ MyFuture<int> t3 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async => 3);
+ MyFuture<int> t4 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return 3;
});
- MyFuture<int> t5 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) =>
+ MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) =>
new MyFuture<int>.value(3));
- MyFuture<int> t6 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) {
+ MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) {
return new MyFuture<int>.value(3);
});
- MyFuture<int> t7 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+ MyFuture<int> t7 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
new MyFuture<int>.value(3));
- MyFuture<int> t8 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ MyFuture<int> t8 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return new MyFuture<int>.value(3);
});
}
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline.expect
index fa6176d..efd6b56 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {}
+void test(MyFuture f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline_modelled.expect
index 2a04b20..1b0c6ac 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -6,9 +5,9 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
main() {}
-void test() {}
+void test(MyFuture f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_4.dart.weak.expect
index f4d9ecd..fc93c1c 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.weak.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- self::MyFuture<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_4.dart.weak.modular.expect
index f4d9ecd..fc93c1c 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.weak.modular.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- self::MyFuture<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_4.dart.weak.outline.expect
index bd648b9..c0befdd 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void
+static method test(self::MyFuture<dynamic> f) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_4.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_4.dart.weak.transformed.expect
index e29cac0..45d285d 100644
--- a/pkg/front_end/testcases/inference/future_then_4.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_4.dart.weak.transformed.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- self::MyFuture<dynamic>* f;
- self::MyFuture<core::int*>* t1 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t2 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t3 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t4 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(self::MyFuture<dynamic> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t3 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t4 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t5 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t6 = f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t7 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
- self::MyFuture<core::int*>* t8 = f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t7 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t8 = f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart b/pkg/front_end/testcases/inference/future_then_5.dart
index 025513e..d409186 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart
+++ b/pkg/front_end/testcases/inference/future_then_5.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,36 +11,35 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {
- Future f;
- Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+void test(Future f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
await new MyFuture<int>.value(3));
- Future<int> t2 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return await new MyFuture<int>.value(3);
});
- Future<int> t3 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async => 3);
- Future<int> t4 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t3 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async => 3);
+ Future<int> t4 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return 3;
});
- Future<int> t5 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) =>
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) =>
new MyFuture<int>.value(3));
- Future<int> t6 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) {
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) {
return new MyFuture<int>.value(3);
});
- Future<int> t7 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+ Future<int> t7 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
new MyFuture<int>.value(3));
- Future<int> t8 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t8 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return new MyFuture<int>.value(3);
});
}
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline.expect
index fa6176d..15314d1 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {}
+void test(Future f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline_modelled.expect
index 2a04b20..a948218 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -6,9 +5,9 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
main() {}
-void test() {}
+void test(Future f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_5.dart.weak.expect
index 0a41e1a..a3d1342 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.weak.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- asy::Future<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t2 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t3 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t4 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(asy::Future<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t3 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t4 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t5 = f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t6 = f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t7 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t8 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t7 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t8 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_5.dart.weak.modular.expect
index 0a41e1a..a3d1342 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.weak.modular.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- asy::Future<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t2 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t3 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t4 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(asy::Future<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t3 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t4 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t5 = f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t6 = f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t7 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t8 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t7 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t8 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_5.dart.weak.outline.expect
index bdf2de4..dcbf3b8 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void
+static method test(asy::Future<dynamic> f) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_5.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_5.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_5.dart.weak.transformed.expect
index 1503ace..4b4a41f 100644
--- a/pkg/front_end/testcases/inference/future_then_5.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_5.dart.weak.transformed.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- asy::Future<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t2 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t3 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t4 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(asy::Future<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t3 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t4 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t5 = f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t6 = f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t7 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => new self::MyFuture::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t8 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return new self::MyFuture::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t7 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => new self::MyFuture::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t8 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return new self::MyFuture::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart b/pkg/front_end/testcases/inference/future_then_6.dart
index 566408f..35cd958 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart
+++ b/pkg/front_end/testcases/inference/future_then_6.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,36 +11,35 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {
- Future f;
- Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+void test(Future f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
await new Future<int>.value(3));
- Future<int> t2 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return await new Future<int>.value(3);
});
- Future<int> t3 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async => 3);
- Future<int> t4 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t3 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async => 3);
+ Future<int> t4 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return 3;
});
- Future<int> t5 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) =>
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) =>
new Future<int>.value(3));
- Future<int> t6 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) {
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) {
return new Future<int>.value(3);
});
- Future<int> t7 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async =>
+ Future<int> t7 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async =>
new Future<int>.value(3));
- Future<int> t8 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) async {
+ Future<int> t8 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) async {
return new Future<int>.value(3);
});
}
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline.expect
index fa6176d..15314d1 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void test() {}
+void test(Future f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline_modelled.expect
index 2a04b20..a948218 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -6,9 +5,9 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
main() {}
-void test() {}
+void test(Future f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_6.dart.weak.expect
index c12d5d2..076e9b4 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.weak.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- asy::Future<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t2 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t3 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t4 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(asy::Future<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t3 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t4 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t5 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t6 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t7 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t8 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t7 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t8 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_6.dart.weak.modular.expect
index c12d5d2..076e9b4 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.weak.modular.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- asy::Future<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t2 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t3 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t4 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(asy::Future<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t3 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t4 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t5 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t6 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t7 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t8 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t7 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t8 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_6.dart.weak.outline.expect
index 6308c69..dcbf3b8 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void
+static method test(asy::Future<dynamic> f) → void
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_6.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_6.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_6.dart.weak.transformed.expect
index 9ce9f77..dccede5 100644
--- a/pkg/front_end/testcases/inference/future_then_6.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_6.dart.weak.transformed.expect
@@ -1,55 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method test() → void {
- asy::Future<dynamic>* f;
- asy::Future<core::int*>* t1 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => await asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t2 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return await asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t3 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => 3){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t4 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+static method test(asy::Future<dynamic> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => await asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return await asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t3 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => 3){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t4 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
return 3;
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t5 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t6 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t7 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ => asy::Future::value<core::int*>(3)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
- asy::Future<core::int*>* t8 = f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
- return asy::Future::value<core::int*>(3);
- }){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t7 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ => asy::Future::value<core::int>(3)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t8 = f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return asy::Future::value<core::int>(3);
+ }){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
}
static method main() → dynamic {}
@@ -60,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart b/pkg/front_end/testcases/inference/future_then_conditional.dart
index fa98a95..50dc5e5 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional.dart.weak.outline.expect
index c6f1986..a592afc 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart b/pkg/front_end/testcases/inference/future_then_conditional2.dart
new file mode 100644
index 0000000..8349e09
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async =>
+ x ? 2 : await new Future<int>.value(3));
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ });
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
+ x ? 2 : new Future<int>.value(3));
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2.dart.textual_outline.expect
new file mode 100644
index 0000000..4d34d7c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_conditional2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bb3c283
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(MyFuture<bool> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.expect
new file mode 100644
index 0000000..dc8d05e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.modular.expect
new file mode 100644
index 0000000..dc8d05e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.outline.expect
new file mode 100644
index 0000000..eede603
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.transformed.expect
new file mode 100644
index 0000000..77bf58c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart
new file mode 100644
index 0000000..e45736d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async =>
+ x ? 2 : await new MyFuture<int>.value(3));
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x
+ ? 2
+ : new MyFuture<int>.value(3);
+ });
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
+ x ? 2 : new MyFuture<int>.value(3));
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.textual_outline.expect
new file mode 100644
index 0000000..4d34d7c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bb3c283
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(MyFuture<bool> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.expect
new file mode 100644
index 0000000..9ae1043
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.modular.expect
new file mode 100644
index 0000000..9ae1043
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.outline.expect
new file mode 100644
index 0000000..eede603
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ce018e4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_2.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_2.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_2.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart
new file mode 100644
index 0000000..717a4dd
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {
+ MyFuture<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async =>
+ x ? 2 : await new Future<int>.value(3));
+ MyFuture<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ });
+ MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
+ x ? 2 : new Future<int>.value(3));
+ MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.textual_outline.expect
new file mode 100644
index 0000000..4d34d7c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bb3c283
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(MyFuture<bool> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.expect
new file mode 100644
index 0000000..88f1310
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.modular.expect
new file mode 100644
index 0000000..88f1310
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.outline.expect
new file mode 100644
index 0000000..eede603
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.transformed.expect
new file mode 100644
index 0000000..b0ac878
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_3.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_3.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_3.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart
new file mode 100644
index 0000000..ef9fdc0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {
+ MyFuture<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async =>
+ x ? 2 : await new MyFuture<int>.value(3));
+ MyFuture<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x
+ ? 2
+ : new MyFuture<int>.value(3);
+ });
+ MyFuture<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
+ x ? 2 : new MyFuture<int>.value(3));
+ MyFuture<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.textual_outline.expect
new file mode 100644
index 0000000..4d34d7c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<bool> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bb3c283
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(MyFuture<bool> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.expect
new file mode 100644
index 0000000..ff4e173
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.modular.expect
new file mode 100644
index 0000000..ff4e173
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.outline.expect
new file mode 100644
index 0000000..eede603
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.transformed.expect
new file mode 100644
index 0000000..1420955
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_4.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_4.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::bool> f) → void {
+ self::MyFuture<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ self::MyFuture<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_4.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart
new file mode 100644
index 0000000..10a2196
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart
@@ -0,0 +1,37 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(Future<bool> f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async =>
+ x ? 2 : await new MyFuture<int>.value(3));
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x
+ ? 2
+ : new MyFuture<int>.value(3);
+ });
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
+ x ? 2 : new MyFuture<int>.value(3));
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.textual_outline.expect
new file mode 100644
index 0000000..6a42c50
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(Future<bool> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..5cd19c2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(Future<bool> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.expect
new file mode 100644
index 0000000..efa8914
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.modular.expect
new file mode 100644
index 0000000..efa8914
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.outline.expect
new file mode 100644
index 0000000..65754eb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.transformed.expect
new file mode 100644
index 0000000..3ef32de
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_5.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 2
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new MyFuture<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_5.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await new self::MyFuture::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:24:9: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 2
+ ^" in (await x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:30:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new MyFuture<int>.value(3));
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_5.dart:33:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new MyFuture<int>.value(3);
+ ^" in (x ?{core::Object} 2 : new self::MyFuture::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart
new file mode 100644
index 0000000..4dc4a7e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(Future<bool> f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async =>
+ x ? 2 : await new Future<int>.value(3));
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=bool*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ });
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*info:INFERRED_TYPE_CLOSURE,error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) =>
+ x ? 2 : new Future<int>.value(3));
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=bool*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.textual_outline.expect
new file mode 100644
index 0000000..6a42c50
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(Future<bool> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..5cd19c2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(Future<bool> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.expect
new file mode 100644
index 0000000..c7c7f3e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.modular.expect
new file mode 100644
index 0000000..c7c7f3e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.modular.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.outline.expect
new file mode 100644
index 0000000..65754eb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.transformed.expect
new file mode 100644
index 0000000..cf18067
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_conditional2_6.dart.weak.transformed.expect
@@ -0,0 +1,78 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ? 2 : new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_conditional2_6.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(asy::Future<core::bool> f) → void {
+ asy::Future<core::int> t1 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ => x ?{core::int} 2 : await asy::Future::value<core::int>(3)){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t2 = f.{asy::Future::then}<core::int>((core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ? 2 : new Future<int>.value(3);
+ ^" in (await x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t5 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ? 2 : new Future<int>.value(3));
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+ asy::Future<core::int> t6 = f.{asy::Future::then}<core::int>((core::bool x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_conditional2_6.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ? 2 : new Future<int>.value(3);
+ ^" in (x ?{core::Object} 2 : asy::Future::value<core::int>(3)) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::bool) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart b/pkg/front_end/testcases/inference/future_then_conditional_2.dart
index c942646..ba96a67 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.weak.outline.expect
index c076dc4..c495ab1 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_2.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_2.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart b/pkg/front_end/testcases/inference/future_then_conditional_3.dart
index b794b14..fca986c 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.weak.outline.expect
index 9969d8c..e9bed35 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_3.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_3.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart b/pkg/front_end/testcases/inference/future_then_conditional_4.dart
index 70c0c75..c66a08e 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.weak.outline.expect
index 242640b..bdb47ae 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_4.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_4.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart b/pkg/front_end/testcases/inference/future_then_conditional_5.dart
index 4b63f73..c49fc8d 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.weak.outline.expect
index 072b257..d0ca973 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_5.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_5.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_5.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart b/pkg/front_end/testcases/inference/future_then_conditional_6.dart
index 0c8ea52..2300f3b 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.weak.outline.expect
index 78864f5..1eecd7d 100644
--- a/pkg/front_end/testcases/inference/future_then_conditional_6.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_conditional_6.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_conditional_6.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart
index 0d4ca6f..c7e1423 100644
--- a/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart
new file mode 100644
index 0000000..7098f1b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart
@@ -0,0 +1,20 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+test(Future<int> f) {
+ Future<List<int>> b = /*info:ASSIGNMENT_CAST should be pass*/ f
+ . /*@typeArgs=List<dynamic>*/ /*@target=Future.then*/ then(
+ /*@returnType=List<dynamic>*/ (/*@type=int*/ x) => /*@ typeArgs=dynamic */ [])
+ . /*@target=Future.whenComplete*/ whenComplete(
+ /*@ returnType=Null */ () {});
+ b = f. /*@typeArgs=List<int>*/ /*@target=Future.then*/ then(
+ /*@returnType=List<int>*/ (/*@type=int*/ x) => /*@typeArgs=int*/ []);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.textual_outline.expect
new file mode 100644
index 0000000..e44f2cb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:async';
+
+test(Future<int> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..17e14e1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:async';
+
+main() {}
+test(Future<int> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.expect
new file mode 100644
index 0000000..936d1ab
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.expect
@@ -0,0 +1,25 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart:14:41: Error: A value of type 'Future<List<dynamic>>' can't be assigned to a variable of type 'Future<List<int>>'.
+// - 'Future' is from 'dart:async'.
+// - 'List' is from 'dart:core'.
+// . /*@target=Future.whenComplete*/ whenComplete(
+// ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test(asy::Future<core::int> f) → dynamic {
+ asy::Future<core::List<core::int>> b = invalid-expression "pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart:14:41: Error: A value of type 'Future<List<dynamic>>' can't be assigned to a variable of type 'Future<List<int>>'.
+ - 'Future' is from 'dart:async'.
+ - 'List' is from 'dart:core'.
+ . /*@target=Future.whenComplete*/ whenComplete(
+ ^" in f.{asy::Future::then}<core::List<dynamic>>((core::int x) → core::List<dynamic> => <dynamic>[]){((core::int) → FutureOr<core::List<dynamic>>, {onError: core::Function?}) → asy::Future<core::List<dynamic>>}.{asy::Future::whenComplete}(() → Null {}){(() → FutureOr<void>) → asy::Future<core::List<dynamic>>} as{TypeError,ForNonNullableByDefault} asy::Future<core::List<core::int>>;
+ b = f.{asy::Future::then}<core::List<core::int>>((core::int x) → core::List<core::int> => <core::int>[]){((core::int) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.modular.expect
new file mode 100644
index 0000000..936d1ab
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.modular.expect
@@ -0,0 +1,25 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart:14:41: Error: A value of type 'Future<List<dynamic>>' can't be assigned to a variable of type 'Future<List<int>>'.
+// - 'Future' is from 'dart:async'.
+// - 'List' is from 'dart:core'.
+// . /*@target=Future.whenComplete*/ whenComplete(
+// ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test(asy::Future<core::int> f) → dynamic {
+ asy::Future<core::List<core::int>> b = invalid-expression "pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart:14:41: Error: A value of type 'Future<List<dynamic>>' can't be assigned to a variable of type 'Future<List<int>>'.
+ - 'Future' is from 'dart:async'.
+ - 'List' is from 'dart:core'.
+ . /*@target=Future.whenComplete*/ whenComplete(
+ ^" in f.{asy::Future::then}<core::List<dynamic>>((core::int x) → core::List<dynamic> => <dynamic>[]){((core::int) → FutureOr<core::List<dynamic>>, {onError: core::Function?}) → asy::Future<core::List<dynamic>>}.{asy::Future::whenComplete}(() → Null {}){(() → FutureOr<void>) → asy::Future<core::List<dynamic>>} as{TypeError,ForNonNullableByDefault} asy::Future<core::List<core::int>>;
+ b = f.{asy::Future::then}<core::List<core::int>>((core::int x) → core::List<core::int> => <core::int>[]){((core::int) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.outline.expect
new file mode 100644
index 0000000..af46efd
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.outline.expect
@@ -0,0 +1,11 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test(asy::Future<core::int> f) → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.transformed.expect
new file mode 100644
index 0000000..3a467cd
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart.weak.transformed.expect
@@ -0,0 +1,25 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart:14:41: Error: A value of type 'Future<List<dynamic>>' can't be assigned to a variable of type 'Future<List<int>>'.
+// - 'Future' is from 'dart:async'.
+// - 'List' is from 'dart:core'.
+// . /*@target=Future.whenComplete*/ whenComplete(
+// ^
+//
+import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
+
+import "dart:async";
+
+static method test(asy::Future<core::int> f) → dynamic {
+ asy::Future<core::List<core::int>> b = invalid-expression "pkg/front_end/testcases/inference/future_then_downwards_method_target2.dart:14:41: Error: A value of type 'Future<List<dynamic>>' can't be assigned to a variable of type 'Future<List<int>>'.
+ - 'Future' is from 'dart:async'.
+ - 'List' is from 'dart:core'.
+ . /*@target=Future.whenComplete*/ whenComplete(
+ ^" in f.{asy::Future::then}<core::List<dynamic>>((core::int x) → core::List<dynamic> => core::_GrowableList::•<dynamic>(0)){((core::int) → FutureOr<core::List<dynamic>>, {onError: core::Function?}) → asy::Future<core::List<dynamic>>}.{asy::Future::whenComplete}(() → Null {}){(() → FutureOr<void>) → asy::Future<core::List<dynamic>>} as{TypeError,ForNonNullableByDefault} asy::Future<core::List<core::int>>;
+ b = f.{asy::Future::then}<core::List<core::int>>((core::int x) → core::List<core::int> => core::_GrowableList::•<core::int>(0)){((core::int) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart b/pkg/front_end/testcases/inference/future_then_explicit_future.dart
index 7bf66ef..a092a01 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart
@@ -1,26 +1,24 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import "dart:async";
-m1() {
- Future<int> f;
- var /*@type=Future<Future<List<int*>*>*>**/ x = f. /*@target=Future.then*/ then<
+m1(Future<int> f) {
+ var /*@type=Future<Future<List<int>>>*/ x = f. /*@target=Future.then*/ then<
Future<List<int>>>(
/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/
- /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
+ /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
Future<List<int>> y = x;
}
-m2() {
- Future<int> f;
- var /*@type=Future<List<int*>*>**/ x = f. /*@target=Future.then*/ then<
- List<int>>(
- /*@returnType=List<int*>**/ (/*@type=int**/ x) => /*@typeArgs=int**/ []);
+m2(Future<int> f) {
+ var /*@type=Future<List<int>>*/ x =
+ f. /*@target=Future.then*/ then<List<int>>(
+ /*@returnType=List<int>*/ (/*@type=int*/ x) => /*@typeArgs=int*/ []);
Future<List<int>> y = x;
}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline.expect
index 56fb911..119cbcf 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
import "dart:async";
-m1() {}
-m2() {}
+m1(Future<int> f) {}
+m2(Future<int> f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline_modelled.expect
index 56fb911..119cbcf 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
import "dart:async";
-m1() {}
-m2() {}
+m1(Future<int> f) {}
+m2(Future<int> f) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.expect
index 668e6c8..ed4f3ff 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:99: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'FutureOr<Future<List<int>>>'.
+// pkg/front_end/testcases/inference/future_then_explicit_future.dart:14:94: Error: A value of type 'List<dynamic>' can't be returned from a function with return type 'FutureOr<Future<List<int>>>'.
// - 'List' is from 'dart:core'.
// - 'Future' is from 'dart:async'.
-// /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
-// ^
+// /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
+// ^
//
-// pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
+// pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
// - 'Future' is from 'dart:async'.
// - 'List' is from 'dart:core'.
// Future<List<int>> y = x;
@@ -20,22 +20,20 @@
import "dart:async";
-static method m1() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<asy::Future<core::List<core::int*>*>*>* x = f.{asy::Future::then}<asy::Future<core::List<core::int*>*>*>((core::int* x) → FutureOr<asy::Future<core::List<core::int*>*>*>* => invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:99: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'FutureOr<Future<List<int>>>'.
+static method m1(asy::Future<core::int> f) → dynamic {
+ asy::Future<asy::Future<core::List<core::int>>> x = f.{asy::Future::then}<asy::Future<core::List<core::int>>>((core::int x) → FutureOr<asy::Future<core::List<core::int>>> => invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:14:94: Error: A value of type 'List<dynamic>' can't be returned from a function with return type 'FutureOr<Future<List<int>>>'.
- 'List' is from 'dart:core'.
- 'Future' is from 'dart:async'.
- /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
- ^" in <dynamic>[] as{TypeError} FutureOr<asy::Future<core::List<core::int*>*>*>*){((core::int*) →* FutureOr<asy::Future<core::List<core::int*>*>*>*, {onError: core::Function*}) →* asy::Future<asy::Future<core::List<core::int*>*>*>*};
- asy::Future<core::List<core::int*>*>* y = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
+ /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} FutureOr<asy::Future<core::List<core::int>>>){((core::int) → FutureOr<asy::Future<core::List<core::int>>>, {onError: core::Function?}) → asy::Future<asy::Future<core::List<core::int>>>};
+ asy::Future<core::List<core::int>> y = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
- 'Future' is from 'dart:async'.
- 'List' is from 'dart:core'.
Future<List<int>> y = x;
- ^" in x as{TypeError} asy::Future<core::List<core::int*>*>*;
+ ^" in x as{TypeError,ForNonNullableByDefault} asy::Future<core::List<core::int>>;
}
-static method m2() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<core::List<core::int*>*>* x = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => <core::int*>[]){((core::int*) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
- asy::Future<core::List<core::int*>*>* y = x;
+static method m2(asy::Future<core::int> f) → dynamic {
+ asy::Future<core::List<core::int>> x = f.{asy::Future::then}<core::List<core::int>>((core::int x) → core::List<core::int> => <core::int>[]){((core::int) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+ asy::Future<core::List<core::int>> y = x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.modular.expect
index 668e6c8..ed4f3ff 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:99: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'FutureOr<Future<List<int>>>'.
+// pkg/front_end/testcases/inference/future_then_explicit_future.dart:14:94: Error: A value of type 'List<dynamic>' can't be returned from a function with return type 'FutureOr<Future<List<int>>>'.
// - 'List' is from 'dart:core'.
// - 'Future' is from 'dart:async'.
-// /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
-// ^
+// /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
+// ^
//
-// pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
+// pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
// - 'Future' is from 'dart:async'.
// - 'List' is from 'dart:core'.
// Future<List<int>> y = x;
@@ -20,22 +20,20 @@
import "dart:async";
-static method m1() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<asy::Future<core::List<core::int*>*>*>* x = f.{asy::Future::then}<asy::Future<core::List<core::int*>*>*>((core::int* x) → FutureOr<asy::Future<core::List<core::int*>*>*>* => invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:99: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'FutureOr<Future<List<int>>>'.
+static method m1(asy::Future<core::int> f) → dynamic {
+ asy::Future<asy::Future<core::List<core::int>>> x = f.{asy::Future::then}<asy::Future<core::List<core::int>>>((core::int x) → FutureOr<asy::Future<core::List<core::int>>> => invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:14:94: Error: A value of type 'List<dynamic>' can't be returned from a function with return type 'FutureOr<Future<List<int>>>'.
- 'List' is from 'dart:core'.
- 'Future' is from 'dart:async'.
- /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
- ^" in <dynamic>[] as{TypeError} FutureOr<asy::Future<core::List<core::int*>*>*>*){((core::int*) →* FutureOr<asy::Future<core::List<core::int*>*>*>*, {onError: core::Function*}) →* asy::Future<asy::Future<core::List<core::int*>*>*>*};
- asy::Future<core::List<core::int*>*>* y = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
+ /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} FutureOr<asy::Future<core::List<core::int>>>){((core::int) → FutureOr<asy::Future<core::List<core::int>>>, {onError: core::Function?}) → asy::Future<asy::Future<core::List<core::int>>>};
+ asy::Future<core::List<core::int>> y = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
- 'Future' is from 'dart:async'.
- 'List' is from 'dart:core'.
Future<List<int>> y = x;
- ^" in x as{TypeError} asy::Future<core::List<core::int*>*>*;
+ ^" in x as{TypeError,ForNonNullableByDefault} asy::Future<core::List<core::int>>;
}
-static method m2() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<core::List<core::int*>*>* x = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => <core::int*>[]){((core::int*) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
- asy::Future<core::List<core::int*>*>* y = x;
+static method m2(asy::Future<core::int> f) → dynamic {
+ asy::Future<core::List<core::int>> x = f.{asy::Future::then}<core::List<core::int>>((core::int x) → core::List<core::int> => <core::int>[]){((core::int) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+ asy::Future<core::List<core::int>> y = x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.outline.expect
index 9513bdf..f4588e7 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.outline.expect
@@ -1,11 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
import "dart:async";
-static method m1() → dynamic
+static method m1(asy::Future<core::int> f) → dynamic
;
-static method m2() → dynamic
+static method m2(asy::Future<core::int> f) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.transformed.expect
index 7fb1fa7..d632b1f 100644
--- a/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_explicit_future.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:99: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'FutureOr<Future<List<int>>>'.
+// pkg/front_end/testcases/inference/future_then_explicit_future.dart:14:94: Error: A value of type 'List<dynamic>' can't be returned from a function with return type 'FutureOr<Future<List<int>>>'.
// - 'List' is from 'dart:core'.
// - 'Future' is from 'dart:async'.
-// /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
-// ^
+// /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
+// ^
//
-// pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
+// pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
// - 'Future' is from 'dart:async'.
// - 'List' is from 'dart:core'.
// Future<List<int>> y = x;
@@ -20,22 +20,20 @@
import "dart:async";
-static method m1() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<asy::Future<core::List<core::int*>*>*>* x = f.{asy::Future::then}<asy::Future<core::List<core::int*>*>*>((core::int* x) → FutureOr<asy::Future<core::List<core::int*>*>*>* => invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:99: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'FutureOr<Future<List<int>>>'.
+static method m1(asy::Future<core::int> f) → dynamic {
+ asy::Future<asy::Future<core::List<core::int>>> x = f.{asy::Future::then}<asy::Future<core::List<core::int>>>((core::int x) → FutureOr<asy::Future<core::List<core::int>>> => invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:14:94: Error: A value of type 'List<dynamic>' can't be returned from a function with return type 'FutureOr<Future<List<int>>>'.
- 'List' is from 'dart:core'.
- 'Future' is from 'dart:async'.
- /*@returnType=FutureOr<Future<List<int*>*>*>**/ (/*@type=int**/ x) => /*@typeArgs=dynamic*/ []);
- ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} FutureOr<asy::Future<core::List<core::int*>*>*>*){((core::int*) →* FutureOr<asy::Future<core::List<core::int*>*>*>*, {onError: core::Function*}) →* asy::Future<asy::Future<core::List<core::int*>*>*>*};
- asy::Future<core::List<core::int*>*>* y = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:16:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
+ /*@returnType=FutureOr<Future<List<int>>>*/ (/*@type=int*/ x) => /*@typeArgs=dynamic*/ []);
+ ^" in core::_GrowableList::•<dynamic>(0) as{TypeError,ForNonNullableByDefault} FutureOr<asy::Future<core::List<core::int>>>){((core::int) → FutureOr<asy::Future<core::List<core::int>>>, {onError: core::Function?}) → asy::Future<asy::Future<core::List<core::int>>>};
+ asy::Future<core::List<core::int>> y = invalid-expression "pkg/front_end/testcases/inference/future_then_explicit_future.dart:15:25: Error: A value of type 'Future<Future<List<int>>>' can't be assigned to a variable of type 'Future<List<int>>'.
- 'Future' is from 'dart:async'.
- 'List' is from 'dart:core'.
Future<List<int>> y = x;
- ^" in x as{TypeError} asy::Future<core::List<core::int*>*>*;
+ ^" in x as{TypeError,ForNonNullableByDefault} asy::Future<core::List<core::int>>;
}
-static method m2() → dynamic {
- asy::Future<core::int*>* f;
- asy::Future<core::List<core::int*>*>* x = f.{asy::Future::then}<core::List<core::int*>*>((core::int* x) → core::List<core::int*>* => core::_GrowableList::•<core::int*>(0)){((core::int*) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
- asy::Future<core::List<core::int*>*>* y = x;
+static method m2(asy::Future<core::int> f) → dynamic {
+ asy::Future<core::List<core::int>> x = f.{asy::Future::then}<core::List<core::int>>((core::int x) → core::List<core::int> => core::_GrowableList::•<core::int>(0)){((core::int) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+ asy::Future<core::List<core::int>> y = x;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart b/pkg/front_end/testcases/inference/future_then_ifNull.dart
index 5b67f07..f515739 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_ifNull.dart.weak.outline.expect
index 174999b..e4f06ff 100644
--- a/pkg/front_end/testcases/inference/future_then_ifNull.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_ifNull.dart.weak.outline.expect
@@ -39,17 +39,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_ifNull.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart b/pkg/front_end/testcases/inference/future_then_ifNull2.dart
new file mode 100644
index 0000000..7a12612
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart
@@ -0,0 +1,35 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<int> f) {
+ Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=int*/ x) async =>
+ x ?? await new Future<int>.value(3));
+ Future<int> t2 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@type=int*/ x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+ });
+ Future<int> t5 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*error:INVALID_CAST_FUNCTION_EXPR*/
+ /*@returnType=FutureOr<int>*/ (/*@type=int*/ x) =>
+ x ?? new Future<int>.value(3));
+ Future<int> t6 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=FutureOr<int>*/ (/*@type=int*/ x) {
+ return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+ });
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.textual_outline.expect
new file mode 100644
index 0000000..10317b5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+void test(MyFuture<int> f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b68784f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(T x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
+void test(MyFuture<int> f) {}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.expect
new file mode 100644
index 0000000..12108cf
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.expect
@@ -0,0 +1,94 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:20:11: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// x ?? await new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:41: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:11: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// x ?? new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ?? new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:41: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::int> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async /* futureValueType= core::int */ => let final core::int #t1 = x in #t1 == null ?{core::int} await asy::Future::value<core::int>(3) : #t1){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+ ^" in (let final core::int #t2 = await x in #t2 == null ?{core::Object} asy::Future::value<core::int>(3) : #t2) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::int x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ?? new Future<int>.value(3));
+ ^" in (let final core::int #t3 = x in #t3 == null ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::int x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+ ^" in (let final core::int #t4 = x in #t4 == null ?{core::Object} asy::Future::value<core::int>(3) : #t4) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.modular.expect
new file mode 100644
index 0000000..12108cf
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.modular.expect
@@ -0,0 +1,94 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:20:11: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// x ?? await new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:41: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:11: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// x ?? new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ?? new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:41: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::int> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async /* futureValueType= core::int */ => let final core::int #t1 = x in #t1 == null ?{core::int} await asy::Future::value<core::int>(3) : #t1){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+ ^" in (let final core::int #t2 = await x in #t2 == null ?{core::Object} asy::Future::value<core::int>(3) : #t2) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::int x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ?? new Future<int>.value(3));
+ ^" in (let final core::int #t3 = x in #t3 == null ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::int x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+ ^" in (let final core::int #t4 = x in #t4 == null ?{core::Object} asy::Future::value<core::int>(3) : #t4) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.outline.expect
new file mode 100644
index 0000000..d4975b57
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.outline.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::int> f) → void
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.transformed.expect
new file mode 100644
index 0000000..68c0668
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_then_ifNull2.dart.weak.transformed.expect
@@ -0,0 +1,94 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:20:11: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// x ?? await new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:41: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:11: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// x ?? new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// x ?? new Future<int>.value(3));
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:41: Warning: Operand of null-aware operation '??' has type 'int' which excludes null.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+// ^
+//
+// pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+// - 'Object' is from 'dart:core'.
+// return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method test(self::MyFuture<core::int> f) → void {
+ asy::Future<core::int> t1 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async /* futureValueType= core::int */ => let final core::int #t1 = x in #t1 == null ?{core::int} await asy::Future::value<core::int>(3) : #t1){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t2 = f.{self::MyFuture::then}<core::int>((core::int x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:23:49: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ await x ?? new Future<int>.value(3);
+ ^" in (let final core::int #t2 = await x in #t2 == null ?{core::Object} asy::Future::value<core::int>(3) : #t2) as{TypeError,ForNonNullableByDefault} core::int;
+ }){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t5 = f.{self::MyFuture::then}<core::int>((core::int x) → FutureOr<core::int> => invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:28:13: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ x ?? new Future<int>.value(3));
+ ^" in (let final core::int #t3 = x in #t3 == null ?{core::Object} asy::Future::value<core::int>(3) : #t3) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+ asy::Future<core::int> t6 = f.{self::MyFuture::then}<core::int>((core::int x) → FutureOr<core::int> {
+ return invalid-expression "pkg/front_end/testcases/inference/future_then_ifNull2.dart:31:43: Error: A value of type 'Object' can't be returned from a function with return type 'FutureOr<int>'.
+ - 'Object' is from 'dart:core'.
+ return /*info:DOWN_CAST_COMPOSITE*/ x ?? new Future<int>.value(3);
+ ^" in (let final core::int #t4 = x in #t4 == null ?{core::Object} asy::Future::value<core::int>(3) : #t4) as{TypeError,ForNonNullableByDefault} FutureOr<core::int>;
+ }){((core::int) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart b/pkg/front_end/testcases/inference/future_then_upwards.dart
index 4b7c23e..34fb8c4 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,20 +11,20 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void main() {
- var /*@ type=MyFuture<double*>* */ f =
- foo(). /*@ typeArgs=double* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=double* */ (/*@ type=dynamic */ _) => 2.3);
+void test() {
+ var /*@type=MyFuture<double>*/ f = foo()
+ . /*@typeArgs=double*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=double*/ (/*@ type=dynamic */ _) => 2.3);
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
// The unnecessary cast is to illustrate that we inferred <double> for
// the generic type args, even though we had a return type context.
Future<num> f3 = /*info:UNNECESSARY_CAST*/ foo()
- . /*@ typeArgs=double* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=double* */ (/*@ type=dynamic */ _) => 2.3)
+ . /*@typeArgs=double*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=double*/ (/*@ type=dynamic */ _) => 2.3)
as Future<double>;
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline.expect
index 1612af2..750b63f 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void main() {}
+void test() {}
MyFuture foo() => new MyFuture<int>.value(1);
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline_modelled.expect
index 4bd869a..851ea4e 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -8,8 +7,8 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
-void main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.expect
index ac37ff3..c54b258 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,44 +14,35 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void {
- self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
- asy::Future<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards.dart:21:49: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'Future<int>'.
+static method test() → void {
+ self::MyFuture<core::double> f = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
+ asy::Future<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards.dart:21:49: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'Future<int>'.
- 'MyFuture' is from 'pkg/front_end/testcases/inference/future_then_upwards.dart'.
- 'Future' is from 'dart:async'.
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} asy::Future<core::int*>*;
- asy::Future<core::num*>* f3 = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*} as asy::Future<core::double*>*;
+ ^" in f as{TypeError,ForNonNullableByDefault} asy::Future<core::int>;
+ asy::Future<core::num> f3 = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>} as{ForNonNullableByDefault} asy::Future<core::double>;
}
-static method foo() → self::MyFuture<dynamic>*
- return new self::MyFuture::value<core::int*>(1);
+static method foo() → self::MyFuture<dynamic>
+ return new self::MyFuture::value<core::int>(1);
constants {
#C1 = null
@@ -60,8 +51,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.modular.expect
index ac37ff3..c54b258 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,44 +14,35 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void {
- self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
- asy::Future<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards.dart:21:49: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'Future<int>'.
+static method test() → void {
+ self::MyFuture<core::double> f = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
+ asy::Future<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards.dart:21:49: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'Future<int>'.
- 'MyFuture' is from 'pkg/front_end/testcases/inference/future_then_upwards.dart'.
- 'Future' is from 'dart:async'.
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} asy::Future<core::int*>*;
- asy::Future<core::num*>* f3 = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*} as asy::Future<core::double*>*;
+ ^" in f as{TypeError,ForNonNullableByDefault} asy::Future<core::int>;
+ asy::Future<core::num> f3 = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>} as{ForNonNullableByDefault} asy::Future<core::double>;
}
-static method foo() → self::MyFuture<dynamic>*
- return new self::MyFuture::value<core::int*>(1);
+static method foo() → self::MyFuture<dynamic>
+ return new self::MyFuture::value<core::int>(1);
constants {
#C1 = null
@@ -60,8 +51,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.outline.expect
index 2f7fa11..95a470d 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void
+static method test() → void
;
-static method foo() → self::MyFuture<dynamic>*
+static method foo() → self::MyFuture<dynamic>
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.transformed.expect
index 2303412..0df67f2 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,44 +14,35 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void {
- self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
- asy::Future<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards.dart:21:49: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'Future<int>'.
+static method test() → void {
+ self::MyFuture<core::double> f = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
+ asy::Future<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards.dart:21:49: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'Future<int>'.
- 'MyFuture' is from 'pkg/front_end/testcases/inference/future_then_upwards.dart'.
- 'Future' is from 'dart:async'.
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} asy::Future<core::int*>*;
- asy::Future<core::num*>* f3 = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
+ ^" in f as{TypeError,ForNonNullableByDefault} asy::Future<core::int>;
+ asy::Future<core::num> f3 = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
}
-static method foo() → self::MyFuture<dynamic>*
- return new self::MyFuture::value<core::int*>(1);
+static method foo() → self::MyFuture<dynamic>
+ return new self::MyFuture::value<core::int>(1);
constants {
#C1 = null
@@ -60,8 +51,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart b/pkg/front_end/testcases/inference/future_then_upwards_2.dart
index 42ecaf7..7903783 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,20 +11,20 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void main() {
- var /*@ type=MyFuture<double*>* */ f =
- foo(). /*@ typeArgs=double* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=double* */ (/*@ type=dynamic */ _) => 2.3);
+void test() {
+ var /*@type=MyFuture<double>*/ f =
+ foo(). /*@typeArgs=double*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=double*/ (/*@ type=dynamic */ _) => 2.3);
MyFuture<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
// The unnecessary cast is to illustrate that we inferred <double> for
// the generic type args, even though we had a return type context.
MyFuture<num> f3 = /*info:UNNECESSARY_CAST*/ foo()
- . /*@ typeArgs=double* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=double* */ (/*@ type=dynamic */ _) => 2.3)
+ . /*@typeArgs=double*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=double*/ (/*@ type=dynamic */ _) => 2.3)
as MyFuture<double>;
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline.expect
index 1612af2..750b63f 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,8 +6,8 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-void main() {}
+void test() {}
MyFuture foo() => new MyFuture<int>.value(1);
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline_modelled.expect
index 4bd869a..851ea4e 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -8,8 +7,8 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
-void main() {}
+void test() {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.expect
index e071ff7..cdc2635 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,43 +13,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void {
- self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
- self::MyFuture<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_2.dart:21:51: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'MyFuture<int>'.
+static method test() → void {
+ self::MyFuture<core::double> f = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
+ self::MyFuture<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_2.dart:21:51: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'MyFuture<int>'.
- 'MyFuture' is from 'pkg/front_end/testcases/inference/future_then_upwards_2.dart'.
MyFuture<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} self::MyFuture<core::int*>*;
- self::MyFuture<core::num*>* f3 = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*} as self::MyFuture<core::double*>*;
+ ^" in f as{TypeError,ForNonNullableByDefault} self::MyFuture<core::int>;
+ self::MyFuture<core::num> f3 = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>} as{ForNonNullableByDefault} self::MyFuture<core::double>;
}
-static method foo() → self::MyFuture<dynamic>*
- return new self::MyFuture::value<core::int*>(1);
+static method foo() → self::MyFuture<dynamic>
+ return new self::MyFuture::value<core::int>(1);
constants {
#C1 = null
@@ -58,8 +49,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.modular.expect
index e071ff7..cdc2635 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,43 +13,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void {
- self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
- self::MyFuture<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_2.dart:21:51: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'MyFuture<int>'.
+static method test() → void {
+ self::MyFuture<core::double> f = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
+ self::MyFuture<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_2.dart:21:51: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'MyFuture<int>'.
- 'MyFuture' is from 'pkg/front_end/testcases/inference/future_then_upwards_2.dart'.
MyFuture<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} self::MyFuture<core::int*>*;
- self::MyFuture<core::num*>* f3 = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*} as self::MyFuture<core::double*>*;
+ ^" in f as{TypeError,ForNonNullableByDefault} self::MyFuture<core::int>;
+ self::MyFuture<core::num> f3 = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>} as{ForNonNullableByDefault} self::MyFuture<core::double>;
}
-static method foo() → self::MyFuture<dynamic>*
- return new self::MyFuture::value<core::int*>(1);
+static method foo() → self::MyFuture<dynamic>
+ return new self::MyFuture::value<core::int>(1);
constants {
#C1 = null
@@ -58,8 +49,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.outline.expect
index d1dd603..95a470d 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.outline.expect
@@ -1,55 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void
+static method test() → void
;
-static method foo() → self::MyFuture<dynamic>*
+static method foo() → self::MyFuture<dynamic>
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_2.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.transformed.expect
index 085b108..97e9554 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,43 +13,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static method main() → void {
- self::MyFuture<core::double*>* f = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
- self::MyFuture<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_2.dart:21:51: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'MyFuture<int>'.
+static method test() → void {
+ self::MyFuture<core::double> f = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
+ self::MyFuture<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_2.dart:21:51: Error: A value of type 'MyFuture<double>' can't be assigned to a variable of type 'MyFuture<int>'.
- 'MyFuture' is from 'pkg/front_end/testcases/inference/future_then_upwards_2.dart'.
MyFuture<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} self::MyFuture<core::int*>*;
- self::MyFuture<core::num*>* f3 = self::foo().{self::MyFuture::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* self::MyFuture<core::double*>*};
+ ^" in f as{TypeError,ForNonNullableByDefault} self::MyFuture<core::int>;
+ self::MyFuture<core::num> f3 = self::foo().{self::MyFuture::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → self::MyFuture<core::double>};
}
-static method foo() → self::MyFuture<dynamic>*
- return new self::MyFuture::value<core::int*>(1);
+static method foo() → self::MyFuture<dynamic>
+ return new self::MyFuture::value<core::int>(1);
constants {
#C1 = null
@@ -58,8 +49,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart b/pkg/front_end/testcases/inference/future_then_upwards_3.dart
index 4656c30..09a7239 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,20 +11,20 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
void test() {
- var /*@ type=Future<double*>* */ f =
- foo(). /*@ typeArgs=double* */ /*@target=Future.then*/ then(
- /*@ returnType=double* */ (/*@ type=dynamic */ _) => 2.3);
+ var /*@type=Future<double>*/ f =
+ foo(). /*@typeArgs=double*/ /*@target=Future.then*/ then(
+ /*@returnType=double*/ (/*@ type=dynamic */ _) => 2.3);
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
// The unnecessary cast is to illustrate that we inferred <double> for
// the generic type args, even though we had a return type context.
Future<num> f3 = /*info:UNNECESSARY_CAST*/ foo()
- . /*@ typeArgs=double* */ /*@target=Future.then*/ then(
- /*@ returnType=double* */ (/*@ type=dynamic */ _) => 2.3)
+ . /*@typeArgs=double*/ /*@target=Future.then*/ then(
+ /*@returnType=double*/ (/*@ type=dynamic */ _) => 2.3)
as Future<double>;
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline.expect
index 1377a7b..7dbb7a2 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,7 +6,7 @@
MyFuture() {}
MyFuture.value(T x) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
void test() {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline_modelled.expect
index 493f90d..6222e95 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -8,7 +7,7 @@
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value(T x) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.expect
index c45ca17..eda2025 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,43 +13,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
static method test() → void {
- asy::Future<core::double*>* f = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* asy::Future<core::double*>*};
- asy::Future<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_3.dart:21:49: Error: A value of type 'Future<double>' can't be assigned to a variable of type 'Future<int>'.
+ asy::Future<core::double> f = self::foo().{asy::Future::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → asy::Future<core::double>};
+ asy::Future<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_3.dart:21:49: Error: A value of type 'Future<double>' can't be assigned to a variable of type 'Future<int>'.
- 'Future' is from 'dart:async'.
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} asy::Future<core::int*>*;
- asy::Future<core::num*>* f3 = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* asy::Future<core::double*>*} as asy::Future<core::double*>*;
+ ^" in f as{TypeError,ForNonNullableByDefault} asy::Future<core::int>;
+ asy::Future<core::num> f3 = self::foo().{asy::Future::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → asy::Future<core::double>} as{ForNonNullableByDefault} asy::Future<core::double>;
}
-static method foo() → asy::Future<dynamic>*
- return asy::Future::value<core::int*>(1);
+static method foo() → asy::Future<dynamic>
+ return asy::Future::value<core::int>(1);
static method main() → dynamic {}
constants {
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.modular.expect
index c45ca17..eda2025 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,43 +13,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
static method test() → void {
- asy::Future<core::double*>* f = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* asy::Future<core::double*>*};
- asy::Future<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_3.dart:21:49: Error: A value of type 'Future<double>' can't be assigned to a variable of type 'Future<int>'.
+ asy::Future<core::double> f = self::foo().{asy::Future::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → asy::Future<core::double>};
+ asy::Future<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_3.dart:21:49: Error: A value of type 'Future<double>' can't be assigned to a variable of type 'Future<int>'.
- 'Future' is from 'dart:async'.
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} asy::Future<core::int*>*;
- asy::Future<core::num*>* f3 = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* asy::Future<core::double*>*} as asy::Future<core::double*>*;
+ ^" in f as{TypeError,ForNonNullableByDefault} asy::Future<core::int>;
+ asy::Future<core::num> f3 = self::foo().{asy::Future::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → asy::Future<core::double>} as{ForNonNullableByDefault} asy::Future<core::double>;
}
-static method foo() → asy::Future<dynamic>*
- return asy::Future::value<core::int*>(1);
+static method foo() → asy::Future<dynamic>
+ return asy::Future::value<core::int>(1);
static method main() → dynamic {}
constants {
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.outline.expect
index 1d10649..cf476b4 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.outline.expect
@@ -1,57 +1,48 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
static method test() → void
;
-static method foo() → asy::Future<dynamic>*
+static method foo() → asy::Future<dynamic>
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_then_upwards_3.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.transformed.expect
index 9c5d495..79b6308 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_3.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,43 +13,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value(self::MyFuture::T* x) → self::MyFuture<self::MyFuture::T*>*
+ constructor value(self::MyFuture::T% x) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
static method test() → void {
- asy::Future<core::double*>* f = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* asy::Future<core::double*>*};
- asy::Future<core::int*>* f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_3.dart:21:49: Error: A value of type 'Future<double>' can't be assigned to a variable of type 'Future<int>'.
+ asy::Future<core::double> f = self::foo().{asy::Future::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → asy::Future<core::double>};
+ asy::Future<core::int> f2 = invalid-expression "pkg/front_end/testcases/inference/future_then_upwards_3.dart:21:49: Error: A value of type 'Future<double>' can't be assigned to a variable of type 'Future<int>'.
- 'Future' is from 'dart:async'.
Future<int> f2 = /*error:INVALID_ASSIGNMENT*/ f;
- ^" in f as{TypeError} asy::Future<core::int*>*;
- asy::Future<core::num*>* f3 = self::foo().{asy::Future::then}<core::double*>((dynamic _) → core::double* => 2.3){((dynamic) →* FutureOr<core::double*>*, {onError: core::Function*}) →* asy::Future<core::double*>*};
+ ^" in f as{TypeError,ForNonNullableByDefault} asy::Future<core::int>;
+ asy::Future<core::num> f3 = self::foo().{asy::Future::then}<core::double>((dynamic _) → core::double => 2.3){((dynamic) → FutureOr<core::double>, {onError: core::Function?}) → asy::Future<core::double>};
}
-static method foo() → asy::Future<dynamic>*
- return asy::Future::value<core::int*>(1);
+static method foo() → asy::Future<dynamic>
+ return asy::Future::value<core::int>(1);
static method main() → dynamic {}
constants {
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart
index 7ac9156..c6017bc 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart
@@ -1,22 +1,21 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-test() {
- Future<int> base;
- var /*@ type=Future<bool*>* */ f =
- base. /*@ typeArgs=bool* */ /*@target=Future.then*/ then(
- /*@ returnType=bool* */ (/*@ type=int* */ x) {
+test(Future<int> base) {
+ var /*@type=Future<bool>*/ f =
+ base. /*@typeArgs=bool*/ /*@target=Future.then*/ then(
+ /*@returnType=bool*/ (/*@type=int*/ x) {
return x /*@target=num.==*/ == 0;
});
- var /*@ type=Future<bool*>* */ g =
- base. /*@ typeArgs=bool* */ /*@target=Future.then*/ then(
- /*@ returnType=bool* */ (/*@ type=int* */ x) => x /*@target=num.==*/ == 0);
+ var /*@type=Future<bool>*/ g =
+ base. /*@typeArgs=bool*/ /*@target=Future.then*/ then(
+ /*@returnType=bool*/ (/*@type=int*/ x) => x /*@target=num.==*/ == 0);
Future<bool> b = f;
b = g;
}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline.expect
index a760906..20dfeba 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
import 'dart:async';
-test() {}
+test(Future<int> base) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline_modelled.expect
index d817d9d..49fb529 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
import 'dart:async';
main() {}
-test() {}
+test(Future<int> base) {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.expect b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.expect
index 3acce35..3053e5a 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.expect
@@ -1,17 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method test() → dynamic {
- asy::Future<core::int*>* base;
- asy::Future<core::bool*>* f = base.{asy::Future::then}<core::bool*>((core::int* x) → core::bool* {
- return x =={core::num::==}{(core::Object*) →* core::bool*} 0;
- }){((core::int*) →* FutureOr<core::bool*>*, {onError: core::Function*}) →* asy::Future<core::bool*>*};
- asy::Future<core::bool*>* g = base.{asy::Future::then}<core::bool*>((core::int* x) → core::bool* => x =={core::num::==}{(core::Object*) →* core::bool*} 0){((core::int*) →* FutureOr<core::bool*>*, {onError: core::Function*}) →* asy::Future<core::bool*>*};
- asy::Future<core::bool*>* b = f;
+static method test(asy::Future<core::int> base) → dynamic {
+ asy::Future<core::bool> f = base.{asy::Future::then}<core::bool>((core::int x) → core::bool {
+ return x =={core::num::==}{(core::Object) → core::bool} 0;
+ }){((core::int) → FutureOr<core::bool>, {onError: core::Function?}) → asy::Future<core::bool>};
+ asy::Future<core::bool> g = base.{asy::Future::then}<core::bool>((core::int x) → core::bool => x =={core::num::==}{(core::Object) → core::bool} 0){((core::int) → FutureOr<core::bool>, {onError: core::Function?}) → asy::Future<core::bool>};
+ asy::Future<core::bool> b = f;
b = g;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.modular.expect
index 3acce35..3053e5a 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.modular.expect
@@ -1,17 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method test() → dynamic {
- asy::Future<core::int*>* base;
- asy::Future<core::bool*>* f = base.{asy::Future::then}<core::bool*>((core::int* x) → core::bool* {
- return x =={core::num::==}{(core::Object*) →* core::bool*} 0;
- }){((core::int*) →* FutureOr<core::bool*>*, {onError: core::Function*}) →* asy::Future<core::bool*>*};
- asy::Future<core::bool*>* g = base.{asy::Future::then}<core::bool*>((core::int* x) → core::bool* => x =={core::num::==}{(core::Object*) →* core::bool*} 0){((core::int*) →* FutureOr<core::bool*>*, {onError: core::Function*}) →* asy::Future<core::bool*>*};
- asy::Future<core::bool*>* b = f;
+static method test(asy::Future<core::int> base) → dynamic {
+ asy::Future<core::bool> f = base.{asy::Future::then}<core::bool>((core::int x) → core::bool {
+ return x =={core::num::==}{(core::Object) → core::bool} 0;
+ }){((core::int) → FutureOr<core::bool>, {onError: core::Function?}) → asy::Future<core::bool>};
+ asy::Future<core::bool> g = base.{asy::Future::then}<core::bool>((core::int x) → core::bool => x =={core::num::==}{(core::Object) → core::bool} 0){((core::int) → FutureOr<core::bool>, {onError: core::Function?}) → asy::Future<core::bool>};
+ asy::Future<core::bool> b = f;
b = g;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.outline.expect
index 666bc54..250af19 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.outline.expect
@@ -1,9 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
import "dart:async";
-static method test() → dynamic
+static method test(asy::Future<core::int> base) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.transformed.expect
index 3acce35..3053e5a 100644
--- a/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_then_upwards_from_block.dart.weak.transformed.expect
@@ -1,17 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method test() → dynamic {
- asy::Future<core::int*>* base;
- asy::Future<core::bool*>* f = base.{asy::Future::then}<core::bool*>((core::int* x) → core::bool* {
- return x =={core::num::==}{(core::Object*) →* core::bool*} 0;
- }){((core::int*) →* FutureOr<core::bool*>*, {onError: core::Function*}) →* asy::Future<core::bool*>*};
- asy::Future<core::bool*>* g = base.{asy::Future::then}<core::bool*>((core::int* x) → core::bool* => x =={core::num::==}{(core::Object*) →* core::bool*} 0){((core::int*) →* FutureOr<core::bool*>*, {onError: core::Function*}) →* asy::Future<core::bool*>*};
- asy::Future<core::bool*>* b = f;
+static method test(asy::Future<core::int> base) → dynamic {
+ asy::Future<core::bool> f = base.{asy::Future::then}<core::bool>((core::int x) → core::bool {
+ return x =={core::num::==}{(core::Object) → core::bool} 0;
+ }){((core::int) → FutureOr<core::bool>, {onError: core::Function?}) → asy::Future<core::bool>};
+ asy::Future<core::bool> g = base.{asy::Future::then}<core::bool>((core::int x) → core::bool => x =={core::num::==}{(core::Object) → core::bool} 0){((core::int) → FutureOr<core::bool>, {onError: core::Function?}) → asy::Future<core::bool>};
+ asy::Future<core::bool> b = f;
b = g;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart b/pkg/front_end/testcases/inference/future_union_async_conditional.dart
index dc5a718..17c5293 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.weak.outline.expect
index 41c31af..d33ff83 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional.dart.weak.outline.expect
@@ -43,17 +43,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart
new file mode 100644
index 0000000..1c50d10
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart
@@ -0,0 +1,31 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+Future<int> g1(bool x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ x
+ ? 42
+ : new /*@typeArgs=int*/ Future.value(42);
+}
+
+Future<int> g2(bool x) async => /*info:DOWN_CAST_COMPOSITE*/ x
+ ? 42
+ : new /*@typeArgs=int*/ Future.value(42);
+Future<int> g3(bool x) async {
+ var /*@type=Object*/ y = x ? 42 : new /*@typeArgs=int*/ Future.value(42);
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.textual_outline.expect
new file mode 100644
index 0000000..58c2107
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.textual_outline.expect
@@ -0,0 +1,15 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+Future<int> g1(bool x) async {}
+Future<int> g2(bool x) async => x ? 42 : new Future.value(42);
+Future<int> g3(bool x) async {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..dd143b4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.textual_outline_modelled.expect
@@ -0,0 +1,16 @@
+library test;
+
+import 'dart:async';
+
+Future<int> g1(bool x) async {}
+Future<int> g2(bool x) async => x ? 42 : new Future.value(42);
+Future<int> g3(bool x) async {}
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.expect
new file mode 100644
index 0000000..06325b8
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.expect
@@ -0,0 +1,81 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:28:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ y;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : asy::Future::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method g2(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : asy::Future::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+static method g3(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ core::Object y = x ?{core::Object} 42 : asy::Future::value<core::int>(42);
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:28:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.modular.expect
new file mode 100644
index 0000000..06325b8
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.modular.expect
@@ -0,0 +1,81 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:28:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ y;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : asy::Future::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method g2(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : asy::Future::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+static method g3(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ core::Object y = x ?{core::Object} 42 : asy::Future::value<core::int>(42);
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:28:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.outline.expect
new file mode 100644
index 0000000..1340fd2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.outline.expect
@@ -0,0 +1,50 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async
+ ;
+static method g2(core::bool x) → asy::Future<core::int> async
+ ;
+static method g3(core::bool x) → asy::Future<core::int> async
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.transformed.expect
new file mode 100644
index 0000000..069d3a0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional2.dart.weak.transformed.expect
@@ -0,0 +1,81 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional2.dart:28:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ y;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : asy::Future::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method g2(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : asy::Future::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+static method g3(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ core::Object y = x ?{core::Object} 42 : asy::Future::value<core::int>(42);
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional2.dart:28:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart
index d2765f85..a4102dd 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.weak.outline.expect
index 0b1b385..f5ce356 100644
--- a/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2.dart.weak.outline.expect
@@ -43,17 +43,17 @@
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_async_conditional_2.dart:12:7 -> SymbolConstant(#onTimeout)
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart
new file mode 100644
index 0000000..0c9ae69
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart
@@ -0,0 +1,32 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+Future<int> g1(bool x) async {
+ return /*info:DOWN_CAST_COMPOSITE*/ x
+ ? 42
+ : new /*@typeArgs=int*/ MyFuture.value(42);
+}
+
+Future<int> g2(bool x) async => /*info:DOWN_CAST_COMPOSITE*/ x
+ ? 42
+ : new /*@typeArgs=int*/ MyFuture.value(42);
+Future<int> g3(bool x) async {
+ var /*@type=Object*/ y =
+ x ? 42 : new /*@ typeArgs=dynamic */ MyFuture.value(42);
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.textual_outline.expect
new file mode 100644
index 0000000..4f4640c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.textual_outline.expect
@@ -0,0 +1,15 @@
+library test;
+
+import 'dart:async';
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(x) {}
+ dynamic noSuchMethod(invocation) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+}
+
+Future<int> g1(bool x) async {}
+Future<int> g2(bool x) async => x ? 42 : new MyFuture.value(42);
+Future<int> g3(bool x) async {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..98afcf1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.textual_outline_modelled.expect
@@ -0,0 +1,16 @@
+library test;
+
+import 'dart:async';
+
+Future<int> g1(bool x) async {}
+Future<int> g2(bool x) async => x ? 42 : new MyFuture.value(42);
+Future<int> g3(bool x) async {}
+
+class MyFuture<T> implements Future<T> {
+ MyFuture() {}
+ MyFuture.value(x) {}
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
+ dynamic noSuchMethod(invocation) => null;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.expect
new file mode 100644
index 0000000..75d79fb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.expect
@@ -0,0 +1,81 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:29:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ y;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : new self::MyFuture::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method g2(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : new self::MyFuture::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+static method g3(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ core::Object y = x ?{core::Object} 42 : new self::MyFuture::value<dynamic>(42);
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:29:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.modular.expect
new file mode 100644
index 0000000..75d79fb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.modular.expect
@@ -0,0 +1,81 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:29:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ y;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : new self::MyFuture::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method g2(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : new self::MyFuture::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+static method g3(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ core::Object y = x ?{core::Object} 42 : new self::MyFuture::value<dynamic>(42);
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:29:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.outline.expect
new file mode 100644
index 0000000..1340fd2
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.outline.expect
@@ -0,0 +1,50 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ ;
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ ;
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ ;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
+ ;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async
+ ;
+static method g2(core::bool x) → asy::Future<core::int> async
+ ;
+static method g3(core::bool x) → asy::Future<core::int> async
+ ;
+static method main() → dynamic
+ ;
+
+
+Extra constant evaluation status:
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
+Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.transformed.expect
new file mode 100644
index 0000000..b7502eb
--- /dev/null
+++ b/pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart.weak.transformed.expect
@@ -0,0 +1,81 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// ? 42
+// ^
+//
+// pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:29:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+// - 'Object' is from 'dart:core'.
+// - 'Future' is from 'dart:async'.
+// return /*info:DOWN_CAST_COMPOSITE*/ y;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ constructor value(dynamic x) → self::MyFuture<self::MyFuture::T%>
+ : super core::Object::•() {}
+ method noSuchMethod(core::Invocation invocation) → dynamic
+ return null;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
+}
+static method g1(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:19:7: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : new self::MyFuture::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method g2(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:24:5: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ ? 42
+ ^" in (x ?{core::Object} 42 : new self::MyFuture::value<core::int>(42)) as{TypeError,ForNonNullableByDefault} core::int;
+static method g3(core::bool x) → asy::Future<core::int> async /* futureValueType= core::int */ {
+ core::Object y = x ?{core::Object} 42 : new self::MyFuture::value<dynamic>(42);
+ return invalid-expression "pkg/front_end/testcases/inference/future_union_async_conditional_2_2.dart:29:39: Error: A value of type 'Object' can't be returned from an async function with return type 'Future<int>'.
+ - 'Object' is from 'dart:core'.
+ - 'Future' is from 'dart:async'.
+ return /*info:DOWN_CAST_COMPOSITE*/ y;
+ ^" in y as{TypeError,ForNonNullableByDefault} core::int;
+}
+static method main() → dynamic {}
+
+constants {
+ #C1 = null
+ #C2 = #catchError
+ #C3 = <core::Type*>[]
+ #C4 = #test
+ #C5 = #whenComplete
+ #C6 = <core::Symbol*, dynamic>{)
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
+}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart b/pkg/front_end/testcases/inference/future_union_downwards.dart
index b0cad57..78d8b4f 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,28 +11,28 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-MyFuture f;
+MyFuture f = throw '';
// Instantiates Future<int>
-Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) =>
- new /*@ typeArgs=int* */ Future.value('hi'));
+Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) =>
+ new /*@typeArgs=int*/ Future.value('hi'));
// Instantiates List<int>
Future<List<int>> t2 =
- f. /*@ typeArgs=List<int*>* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=List<int*>* */ (/*@ type=dynamic */ _) => /*@ typeArgs=int* */ [
+ f. /*@typeArgs=List<int>*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=List<int>*/ (/*@ type=dynamic */ _) => /*@typeArgs=int*/ [
3
]);
Future<List<int>> g2() async {
- return /*@ typeArgs=int* */ [3];
+ return /*@typeArgs=int*/ [3];
}
Future<List<int>> g3() async {
- return new /*@ typeArgs=List<int*>* */ Future.value(
- /*@ typeArgs=int* */ [3]);
+ return new /*@typeArgs=List<int>*/ Future.value(
+ /*@typeArgs=int*/ [3]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline.expect
index cb0b37a..00f43db 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,10 +6,10 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-MyFuture f;
+MyFuture f = throw '';
Future<int> t1 = f.then((_) => new Future.value('hi'));
Future<List<int>> t2 = f.then((_) => [3]);
Future<List<int>> g2() async {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline_modelled.expect
index 3348630..10cdb70 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,12 +6,12 @@
Future<List<int>> g3() async {}
Future<List<int>> t2 = f.then((_) => [3]);
Future<int> t1 = f.then((_) => new Future.value('hi'));
-MyFuture f;
+MyFuture f = throw '';
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value([x]) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.expect
index cc96345..986056a 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
-// new /*@ typeArgs=int* */ Future.value('hi'));
-// ^
+// pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+// new /*@typeArgs=int*/ Future.value('hi'));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -12,43 +12,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
- new /*@ typeArgs=int* */ Future.value('hi'));
- ^" in "hi" as{TypeError} FutureOr<core::int*>?)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* self::MyFuture<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field self::MyFuture<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+ new /*@typeArgs=int*/ Future.value('hi'));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return asy::Future::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return asy::Future::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.modular.expect
index cc96345..986056a 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
-// new /*@ typeArgs=int* */ Future.value('hi'));
-// ^
+// pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+// new /*@typeArgs=int*/ Future.value('hi'));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -12,43 +12,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
- new /*@ typeArgs=int* */ Future.value('hi'));
- ^" in "hi" as{TypeError} FutureOr<core::int*>?)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* self::MyFuture<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field self::MyFuture<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+ new /*@typeArgs=int*/ Future.value('hi'));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return asy::Future::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return asy::Future::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.outline.expect
index 871785f..5607d26 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.outline.expect
@@ -1,60 +1,51 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1;
-static field asy::Future<core::List<core::int*>*>* t2;
-static method g2() → asy::Future<core::List<core::int*>*>* async
+static field self::MyFuture<dynamic> f;
+static field asy::Future<core::int> t1;
+static field asy::Future<core::List<core::int>> t2;
+static method g2() → asy::Future<core::List<core::int>> async
;
-static method g3() → asy::Future<core::List<core::int*>*>* async
+static method g3() → asy::Future<core::List<core::int>> async
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.transformed.expect
index 78822c8..f36588c 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
-// new /*@ typeArgs=int* */ Future.value('hi'));
-// ^
+// pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+// new /*@typeArgs=int*/ Future.value('hi'));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -12,43 +12,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
- new /*@ typeArgs=int* */ Future.value('hi'));
- ^" in "hi" as{TypeError} FutureOr<core::int*>?)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3)){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* self::MyFuture<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return core::_GrowableList::_literal1<core::int*>(3);
+static field self::MyFuture<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+ new /*@typeArgs=int*/ Future.value('hi'));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => core::_GrowableList::_literal1<core::int>(3)){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return core::_GrowableList::_literal1<core::int>(3);
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return asy::Future::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return asy::Future::value<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3));
}
static method main() → dynamic {}
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart b/pkg/front_end/testcases/inference/future_union_downwards_2.dart
index 368d014..fdec95d 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,28 +11,28 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-MyFuture f;
+MyFuture f = throw '';
// Instantiates Future<int>
-Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) =>
- new /*@ typeArgs=int* */ MyFuture.value('hi'));
+Future<int> t1 = f. /*@typeArgs=int*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) =>
+ new /*@typeArgs=int*/ MyFuture.value('hi'));
// Instantiates List<int>
Future<List<int>> t2 =
- f. /*@ typeArgs=List<int*>* */ /*@target=MyFuture.then*/ then(
- /*@ returnType=List<int*>* */ (/*@ type=dynamic */ _) => /*@ typeArgs=int* */ [
+ f. /*@typeArgs=List<int>*/ /*@target=MyFuture.then*/ then(
+ /*@returnType=List<int>*/ (/*@ type=dynamic */ _) => /*@typeArgs=int*/ [
3
]);
Future<List<int>> g2() async {
- return /*@ typeArgs=int* */ [3];
+ return /*@typeArgs=int*/ [3];
}
Future<List<int>> g3() async {
- return new /*@ typeArgs=List<int*>* */ MyFuture.value(
- /*@ typeArgs=int* */ [3]);
+ return new /*@typeArgs=List<int>*/ MyFuture.value(
+ /*@typeArgs=int*/ [3]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline.expect
index d07da2f..581c6b6 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,10 +6,10 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-MyFuture f;
+MyFuture f = throw '';
Future<int> t1 = f.then((_) => new MyFuture.value('hi'));
Future<List<int>> t2 = f.then((_) => [3]);
Future<List<int>> g2() async {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline_modelled.expect
index 7eb12df..0522873 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,12 +6,12 @@
Future<List<int>> g3() async {}
Future<List<int>> t2 = f.then((_) => [3]);
Future<int> t1 = f.then((_) => new MyFuture.value('hi'));
-MyFuture f;
+MyFuture f = throw '';
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value([x]) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.expect
index ddc2463..6427ffa 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.expect
@@ -1,45 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi")){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* self::MyFuture<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field self::MyFuture<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>("hi")){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return new self::MyFuture::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return new self::MyFuture::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -50,8 +41,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.modular.expect
index ddc2463..6427ffa 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.modular.expect
@@ -1,45 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi")){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* self::MyFuture<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field self::MyFuture<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>("hi")){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return new self::MyFuture::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return new self::MyFuture::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -50,8 +41,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.outline.expect
index cec3e52..5607d26 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.outline.expect
@@ -1,60 +1,51 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1;
-static field asy::Future<core::List<core::int*>*>* t2;
-static method g2() → asy::Future<core::List<core::int*>*>* async
+static field self::MyFuture<dynamic> f;
+static field asy::Future<core::int> t1;
+static field asy::Future<core::List<core::int>> t2;
+static method g2() → asy::Future<core::List<core::int>> async
;
-static method g3() → asy::Future<core::List<core::int*>*>* async
+static method g3() → asy::Future<core::List<core::int>> async
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_2.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.transformed.expect
index e0786f8..e3d49b7 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_2.dart.weak.transformed.expect
@@ -1,45 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field self::MyFuture<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{self::MyFuture::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi")){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* self::MyFuture<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{self::MyFuture::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3)){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* self::MyFuture<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return core::_GrowableList::_literal1<core::int*>(3);
+static field self::MyFuture<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{self::MyFuture::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>("hi")){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → self::MyFuture<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{self::MyFuture::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => core::_GrowableList::_literal1<core::int>(3)){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → self::MyFuture<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return core::_GrowableList::_literal1<core::int>(3);
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return new self::MyFuture::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return new self::MyFuture::value<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3));
}
static method main() → dynamic {}
@@ -50,8 +41,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart b/pkg/front_end/testcases/inference/future_union_downwards_3.dart
index c53a139..5408834 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,25 +11,25 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-Future f;
+Future f = throw '';
// Instantiates Future<int>
-Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=Future<int*>* */ (/*@ type=dynamic */ _) =>
- new /*@ typeArgs=int* */ Future.value('hi'));
+Future<int> t1 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=Future<int>*/ (/*@ type=dynamic */ _) =>
+ new /*@typeArgs=int*/ Future.value('hi'));
// Instantiates List<int>
-Future<List<int>> t2 = f. /*@ typeArgs=List<int*>* */ /*@target=Future.then*/ then(
- /*@ returnType=List<int*>* */ (/*@ type=dynamic */ _) => /*@ typeArgs=int* */ [3]);
+Future<List<int>> t2 = f. /*@typeArgs=List<int>*/ /*@target=Future.then*/ then(
+ /*@returnType=List<int>*/ (/*@ type=dynamic */ _) => /*@typeArgs=int*/ [3]);
Future<List<int>> g2() async {
- return /*@ typeArgs=int* */ [3];
+ return /*@typeArgs=int*/ [3];
}
Future<List<int>> g3() async {
- return new /*@ typeArgs=List<int*>* */ Future.value(
- /*@ typeArgs=int* */ [3]);
+ return new /*@typeArgs=List<int>*/ Future.value(
+ /*@typeArgs=int*/ [3]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline.expect
index 175a1fe..ea397e4 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,10 +6,10 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-Future f;
+Future f = throw '';
Future<int> t1 = f.then((_) => new Future.value('hi'));
Future<List<int>> t2 = f.then((_) => [3]);
Future<List<int>> g2() async {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline_modelled.expect
index cda59eb..498f6d5 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,12 +6,12 @@
Future<List<int>> g3() async {}
Future<List<int>> t2 = f.then((_) => [3]);
Future<int> t1 = f.then((_) => new Future.value('hi'));
-Future f;
+Future f = throw '';
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value([x]) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.expect
index a49daa8..e195bf1 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
-// new /*@ typeArgs=int* */ Future.value('hi'));
-// ^
+// pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+// new /*@typeArgs=int*/ Future.value('hi'));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -12,43 +12,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
- new /*@ typeArgs=int* */ Future.value('hi'));
- ^" in "hi" as{TypeError} FutureOr<core::int*>?)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field asy::Future<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+ new /*@typeArgs=int*/ Future.value('hi'));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{asy::Future::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return asy::Future::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return asy::Future::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.modular.expect
index a49daa8..e195bf1 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
-// new /*@ typeArgs=int* */ Future.value('hi'));
-// ^
+// pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+// new /*@typeArgs=int*/ Future.value('hi'));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -12,43 +12,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
- new /*@ typeArgs=int* */ Future.value('hi'));
- ^" in "hi" as{TypeError} FutureOr<core::int*>?)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field asy::Future<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+ new /*@typeArgs=int*/ Future.value('hi'));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{asy::Future::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return asy::Future::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return asy::Future::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.outline.expect
index 2ba5919..de936c2 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.outline.expect
@@ -1,60 +1,51 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1;
-static field asy::Future<core::List<core::int*>*>* t2;
-static method g2() → asy::Future<core::List<core::int*>*>* async
+static field asy::Future<dynamic> f;
+static field asy::Future<core::int> t1;
+static field asy::Future<core::List<core::int>> t2;
+static method g2() → asy::Future<core::List<core::int>> async
;
-static method g3() → asy::Future<core::List<core::int*>*>* async
+static method g3() → asy::Future<core::List<core::int>> async
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_3.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.transformed.expect
index 0c3bc84..1c2a48f 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_3.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
-// new /*@ typeArgs=int* */ Future.value('hi'));
-// ^
+// pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+// new /*@typeArgs=int*/ Future.value('hi'));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -12,43 +12,34 @@
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → asy::Future<core::int*>* => asy::Future::value<core::int*>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:47: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>'.
- new /*@ typeArgs=int* */ Future.value('hi'));
- ^" in "hi" as{TypeError} FutureOr<core::int*>?)){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3)){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return core::_GrowableList::_literal1<core::int*>(3);
+static field asy::Future<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{asy::Future::then}<core::int>((dynamic _) → asy::Future<core::int> => asy::Future::value<core::int>(invalid-expression "pkg/front_end/testcases/inference/future_union_downwards_3.dart:21:44: Error: The argument type 'String' can't be assigned to the parameter type 'FutureOr<int>?'.
+ new /*@typeArgs=int*/ Future.value('hi'));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} FutureOr<core::int>?)){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{asy::Future::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => core::_GrowableList::_literal1<core::int>(3)){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return core::_GrowableList::_literal1<core::int>(3);
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return asy::Future::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return asy::Future::value<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3));
}
static method main() → dynamic {}
@@ -59,8 +50,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart b/pkg/front_end/testcases/inference/future_union_downwards_4.dart
index c6beb37..f65980e 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,25 +11,25 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-Future f;
+Future f = throw '';
// Instantiates Future<int>
-Future<int> t1 = f. /*@ typeArgs=int* */ /*@target=Future.then*/ then(
- /*@ returnType=MyFuture<int*>* */ (/*@ type=dynamic */ _) =>
- new /*@ typeArgs=int* */ MyFuture.value('hi'));
+Future<int> t1 = f. /*@typeArgs=int*/ /*@target=Future.then*/ then(
+ /*@returnType=MyFuture<int>*/ (/*@ type=dynamic */ _) =>
+ new /*@typeArgs=int*/ MyFuture.value('hi'));
// Instantiates List<int>
-Future<List<int>> t2 = f. /*@ typeArgs=List<int*>* */ /*@target=Future.then*/ then(
- /*@ returnType=List<int*>* */ (/*@ type=dynamic */ _) => /*@ typeArgs=int* */ [3]);
+Future<List<int>> t2 = f. /*@typeArgs=List<int>*/ /*@target=Future.then*/ then(
+ /*@returnType=List<int>*/ (/*@ type=dynamic */ _) => /*@typeArgs=int*/ [3]);
Future<List<int>> g2() async {
- return /*@ typeArgs=int* */ [3];
+ return /*@typeArgs=int*/ [3];
}
Future<List<int>> g3() async {
- return new /*@ typeArgs=List<int*>* */ MyFuture.value(
- /*@ typeArgs=int* */ [3]);
+ return new /*@typeArgs=List<int>*/ MyFuture.value(
+ /*@typeArgs=int*/ [3]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline.expect
index 3616ccf..c41fa7a 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,10 +6,10 @@
MyFuture() {}
MyFuture.value([x]) {}
dynamic noSuchMethod(invocation) => null;
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
}
-Future f;
+Future f = throw '';
Future<int> t1 = f.then((_) => new MyFuture.value('hi'));
Future<List<int>> t2 = f.then((_) => [3]);
Future<List<int>> g2() async {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline_modelled.expect
index 23bbb61..7414db2 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -7,12 +6,12 @@
Future<List<int>> g3() async {}
Future<List<int>> t2 = f.then((_) => [3]);
Future<int> t1 = f.then((_) => new MyFuture.value('hi'));
-Future f;
+Future f = throw '';
class MyFuture<T> implements Future<T> {
MyFuture() {}
MyFuture.value([x]) {}
- MyFuture<S> then<S>(FutureOr<S> f(T x), {Function onError}) => null;
+ MyFuture<S> then<S>(FutureOr<S> f(T x), {Function? onError}) => throw '';
dynamic noSuchMethod(invocation) => null;
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.expect
index dcf9785..780b5a0 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.expect
@@ -1,45 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi")){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field asy::Future<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>("hi")){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{asy::Future::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return new self::MyFuture::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return new self::MyFuture::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -50,8 +41,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.modular.expect
index dcf9785..780b5a0 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.modular.expect
@@ -1,45 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi")){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => <core::int*>[3]){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return <core::int*>[3];
+static field asy::Future<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>("hi")){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{asy::Future::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => <core::int>[3]){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return <core::int>[3];
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return new self::MyFuture::value<core::List<core::int*>*>(<core::int*>[3]);
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return new self::MyFuture::value<core::List<core::int>>(<core::int>[3]);
}
static method main() → dynamic {}
@@ -50,8 +41,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.outline.expect
index a8d85df..de936c2 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.outline.expect
@@ -1,60 +1,51 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
;
- constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = null]) → self::MyFuture<self::MyFuture::T%>
;
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = null}) → self::MyFuture<self::MyFuture::then::S*>*
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = null}) → self::MyFuture<self::MyFuture::then::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#catchError, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[onError]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#test: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#whenComplete, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[action]), core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#timeout, 0, const <core::Type*>[], core::List::unmodifiable<dynamic>(<dynamic>[timeLimit]), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#onTimeout: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#asStream, 0, const <core::Type*>[], const <dynamic>[], core::Map::unmodifiable<core::Symbol*, dynamic>(const <core::Symbol*, dynamic>{}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1;
-static field asy::Future<core::List<core::int*>*>* t2;
-static method g2() → asy::Future<core::List<core::int*>*>* async
+static field asy::Future<dynamic> f;
+static field asy::Future<core::int> t1;
+static field asy::Future<core::List<core::int>> t2;
+static method g2() → asy::Future<core::List<core::int>> async
;
-static method g3() → asy::Future<core::List<core::int*>*>* async
+static method g3() → asy::Future<core::List<core::int>> async
;
static method main() → dynamic
;
Extra constant evaluation status:
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> SymbolConstant(#catchError)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> SymbolConstant(#test)
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> SymbolConstant(#whenComplete)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> SymbolConstant(#asStream)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> ListConstant(const <dynamic>[])
-Evaluated: MapLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> MapConstant(const <Symbol*, dynamic>{})
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> SymbolConstant(#timeout)
-Evaluated: ListLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> ListConstant(const <Type*>[])
-Evaluated: SymbolLiteral @ org-dartlang-testcase:///future_union_downwards_4.dart:10:7 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#catchError)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:821:13 -> SymbolConstant(#test)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> SymbolConstant(#whenComplete)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> ListConstant(const <Type*>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:872:13 -> MapConstant(const <Symbol*, dynamic>{})
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#timeout)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> ListConstant(const <Type*>[])
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:916:13 -> SymbolConstant(#onTimeout)
+Evaluated: SymbolLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> SymbolConstant(#asStream)
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <Type*>[])
+Evaluated: ListLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> ListConstant(const <dynamic>[])
+Evaluated: MapLiteral @ org-dartlang-sdk:///sdk/lib/async/future.dart:881:13 -> MapConstant(const <Symbol*, dynamic>{})
Extra constant evaluation: evaluated: 46, effectively constant: 13
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.transformed.expect
index 756da4f..025e2eb 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_4.dart.weak.transformed.expect
@@ -1,45 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class MyFuture<T extends core::Object* = dynamic> extends core::Object implements asy::Future<self::MyFuture::T*> {
- constructor •() → self::MyFuture<self::MyFuture::T*>*
+class MyFuture<T extends core::Object? = dynamic> extends core::Object implements asy::Future<self::MyFuture::T%> {
+ constructor •() → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T*>*
+ constructor value([dynamic x = #C1]) → self::MyFuture<self::MyFuture::T%>
: super core::Object::•() {}
- method noSuchMethod(core::Invocation* invocation) → dynamic
+ method noSuchMethod(core::Invocation invocation) → dynamic
return null;
- method then<S extends core::Object* = dynamic>((self::MyFuture::T*) →* FutureOr<self::MyFuture::then::S*>* f, {core::Function* onError = #C1}) → self::MyFuture<self::MyFuture::then::S*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- no-such-method-forwarder method catchError(core::Function* onError, {(core::Object*) →* core::bool* test = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method whenComplete(() →* FutureOr<void>* action) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
- no-such-method-forwarder method asStream() → asy::Stream<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, #C8, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Stream<self::MyFuture::T*>*;
- no-such-method-forwarder method timeout(core::Duration* timeLimit, {covariant-by-class () →* FutureOr<self::MyFuture::T*>* onTimeout = #C1}) → asy::Future<self::MyFuture::T*>*
- return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C10: onTimeout}))){(core::Invocation*) →* dynamic} as{TypeError,ForDynamic} asy::Future<self::MyFuture::T*>*;
+ method then<S extends core::Object? = dynamic>((self::MyFuture::T%) → FutureOr<self::MyFuture::then::S%>f, {core::Function? onError = #C1}) → self::MyFuture<self::MyFuture::then::S%>
+ return throw "";
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ catchError(core::Function onError, {(core::Object) →? core::bool test = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C2, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(onError)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C4: test}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ whenComplete(() → FutureOr<void>action) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C5, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(action)), core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ timeout(core::Duration timeLimit, {covariant-by-class () →? FutureOr<self::MyFuture::T%>onTimeout = #C1}) → asy::Future<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C7, 0, #C3, core::List::unmodifiable<dynamic>(core::_GrowableList::_literal1<dynamic>(timeLimit)), core::Map::unmodifiable<core::Symbol*, dynamic>(<core::Symbol*, dynamic>{#C8: onTimeout}))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Future<self::MyFuture::T%>;
+ no-such-method-forwarder method /* from org-dartlang-sdk:///sdk/lib/async/future.dart */ asStream() → asy::Stream<self::MyFuture::T%>
+ return this.{self::MyFuture::noSuchMethod}(new core::_InvocationMirror::_withType(#C9, 0, #C3, #C10, core::Map::unmodifiable<core::Symbol*, dynamic>(#C6))){(core::Invocation) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<self::MyFuture::T%>;
}
-static field asy::Future<dynamic>* f;
-static field asy::Future<core::int*>* t1 = self::f.{asy::Future::then}<core::int*>((dynamic _) → self::MyFuture<core::int*>* => new self::MyFuture::value<core::int*>("hi")){((dynamic) →* FutureOr<core::int*>*, {onError: core::Function*}) →* asy::Future<core::int*>*};
-static field asy::Future<core::List<core::int*>*>* t2 = self::f.{asy::Future::then}<core::List<core::int*>*>((dynamic _) → core::List<core::int*>* => core::_GrowableList::_literal1<core::int*>(3)){((dynamic) →* FutureOr<core::List<core::int*>*>*, {onError: core::Function*}) →* asy::Future<core::List<core::int*>*>*};
-static method g2() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return core::_GrowableList::_literal1<core::int*>(3);
+static field asy::Future<dynamic> f = throw "";
+static field asy::Future<core::int> t1 = self::f.{asy::Future::then}<core::int>((dynamic _) → self::MyFuture<core::int> => new self::MyFuture::value<core::int>("hi")){((dynamic) → FutureOr<core::int>, {onError: core::Function?}) → asy::Future<core::int>};
+static field asy::Future<core::List<core::int>> t2 = self::f.{asy::Future::then}<core::List<core::int>>((dynamic _) → core::List<core::int> => core::_GrowableList::_literal1<core::int>(3)){((dynamic) → FutureOr<core::List<core::int>>, {onError: core::Function?}) → asy::Future<core::List<core::int>>};
+static method g2() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return core::_GrowableList::_literal1<core::int>(3);
}
-static method g3() → asy::Future<core::List<core::int*>*>* async /* futureValueType= core::List<core::int*>* */ {
- return new self::MyFuture::value<core::List<core::int*>*>(core::_GrowableList::_literal1<core::int*>(3));
+static method g3() → asy::Future<core::List<core::int>> async /* futureValueType= core::List<core::int> */ {
+ return new self::MyFuture::value<core::List<core::int>>(core::_GrowableList::_literal1<core::int>(3));
}
static method main() → dynamic {}
@@ -50,8 +41,8 @@
#C4 = #test
#C5 = #whenComplete
#C6 = <core::Symbol*, dynamic>{)
- #C7 = #asStream
- #C8 = <dynamic>[]
- #C9 = #timeout
- #C10 = #onTimeout
+ #C7 = #timeout
+ #C8 = #onTimeout
+ #C9 = #asStream
+ #C10 = <dynamic>[]
}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart
index 77b326f..5147d46 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart
@@ -1,17 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-foo() async {
- Future<List<A>> f1 = null;
- Future<List<A>> f2 = null;
- List<List<A>> merged = await Future. /*@ typeArgs=List<A*>* */ wait(
- /*@ typeArgs=Future<List<A*>*>* */ [f1, f2]);
+foo(Future<List<A>> f1, Future<List<A>> f2) async {
+ List<List<A>> merged = await Future. /*@typeArgs=List<A>*/ wait(
+ /*@typeArgs=Future<List<A>>*/ [f1, f2]);
}
class A {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline.expect
index 416be46..e4aa342 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-foo() async {}
+foo(Future<List<A>> f1, Future<List<A>> f2) async {}
class A {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline_modelled.expect
index 159a31b..4321312 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
class A {}
-foo() async {}
+foo(Future<List<A>> f1, Future<List<A>> f2) async {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.expect
index b226943..acca84c 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,23 +6,11 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method foo() → dynamic async /* futureValueType= dynamic */ {
- has-declared-initializer asy::Future<core::List<self::A*>*>* f1 = null;
- has-declared-initializer asy::Future<core::List<self::A*>*>* f2 = null;
- core::List<core::List<self::A*>*>* merged = await asy::Future::wait<core::List<self::A*>*>(<asy::Future<core::List<self::A*>*>*>[f1, f2]);
+static method foo(asy::Future<core::List<self::A>> f1, asy::Future<core::List<self::A>> f2) → dynamic async /* futureValueType= dynamic */ {
+ core::List<core::List<self::A>> merged = await asy::Future::wait<core::List<self::A>>(<asy::Future<core::List<self::A>>>[f1, f2]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.modular.expect
index b226943..acca84c 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,23 +6,11 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method foo() → dynamic async /* futureValueType= dynamic */ {
- has-declared-initializer asy::Future<core::List<self::A*>*>* f1 = null;
- has-declared-initializer asy::Future<core::List<self::A*>*>* f2 = null;
- core::List<core::List<self::A*>*>* merged = await asy::Future::wait<core::List<self::A*>*>(<asy::Future<core::List<self::A*>*>*>[f1, f2]);
+static method foo(asy::Future<core::List<self::A>> f1, asy::Future<core::List<self::A>> f2) → dynamic async /* futureValueType= dynamic */ {
+ core::List<core::List<self::A>> merged = await asy::Future::wait<core::List<self::A>>(<asy::Future<core::List<self::A>>>[f1, f2]);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.outline.expect
index c6f79d3..cc54232 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.outline.expect
@@ -1,24 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
+import "dart:async" as asy;
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method foo() → dynamic async
+static method foo(asy::Future<core::List<self::A>> f1, asy::Future<core::List<self::A>> f2) → dynamic async
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.transformed.expect
index d92020e..e7fde80 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_future_return.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,23 +6,11 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method foo() → dynamic async /* futureValueType= dynamic */ {
- has-declared-initializer asy::Future<core::List<self::A*>*>* f1 = null;
- has-declared-initializer asy::Future<core::List<self::A*>*>* f2 = null;
- core::List<core::List<self::A*>*>* merged = await asy::Future::wait<core::List<self::A*>*>(core::_GrowableList::_literal2<asy::Future<core::List<self::A*>*>*>(f1, f2));
+static method foo(asy::Future<core::List<self::A>> f1, asy::Future<core::List<self::A>> f2) → dynamic async /* futureValueType= dynamic */ {
+ core::List<core::List<self::A>> merged = await asy::Future::wait<core::List<self::A>>(core::_GrowableList::_literal2<asy::Future<core::List<self::A>>>(f1, f2));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart
index 95c5b37..2d5d58e 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,9 +9,8 @@
T id<T>(T x) => x;
-test() async {
- Future<String> f;
- String s = await /*@ typeArgs=FutureOr<String*>* */ id(f);
+test(Future<String> f) async {
+ String s = await /*@typeArgs=FutureOr<String>*/ id(f);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline.expect
index 10f9a56..285a794 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
import 'dart:async';
T id<T>(T x) => x;
-test() async {}
+test(Future<String> f) async {}
main() {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline_modelled.expect
index 026e937..d713ac0 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
import 'dart:async';
T id<T>(T x) => x;
main() {}
-test() async {}
+test(Future<String> f) async {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.expect
index 9fb7dae..31a86d7 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.expect
@@ -1,14 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method id<T extends core::Object* = dynamic>(self::id::T* x) → self::id::T*
+static method id<T extends core::Object? = dynamic>(self::id::T% x) → self::id::T%
return x;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- asy::Future<core::String*>* f;
- core::String* s = await self::id<FutureOr<core::String*>*>(f);
+static method test(asy::Future<core::String> f) → dynamic async /* futureValueType= dynamic */ {
+ core::String s = await self::id<FutureOr<core::String>>(f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.modular.expect
index 9fb7dae..31a86d7 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.modular.expect
@@ -1,14 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method id<T extends core::Object* = dynamic>(self::id::T* x) → self::id::T*
+static method id<T extends core::Object? = dynamic>(self::id::T% x) → self::id::T%
return x;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- asy::Future<core::String*>* f;
- core::String* s = await self::id<FutureOr<core::String*>*>(f);
+static method test(asy::Future<core::String> f) → dynamic async /* futureValueType= dynamic */ {
+ core::String s = await self::id<FutureOr<core::String>>(f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.outline.expect
index ede3be0..409c727 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.outline.expect
@@ -1,12 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
+import "dart:async" as asy;
import "dart:async";
-static method id<T extends core::Object* = dynamic>(self::id::T* x) → self::id::T*
+static method id<T extends core::Object? = dynamic>(self::id::T% x) → self::id::T%
;
-static method test() → dynamic async
+static method test(asy::Future<core::String> f) → dynamic async
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.transformed.expect
index 9fb7dae..31a86d7 100644
--- a/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_downwards_generic_method_with_generic_return.dart.weak.transformed.expect
@@ -1,14 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method id<T extends core::Object* = dynamic>(self::id::T* x) → self::id::T*
+static method id<T extends core::Object? = dynamic>(self::id::T% x) → self::id::T%
return x;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- asy::Future<core::String*>* f;
- core::String* s = await self::id<FutureOr<core::String*>*>(f);
+static method test(asy::Future<core::String> f) → dynamic async /* futureValueType= dynamic */ {
+ core::String s = await self::id<FutureOr<core::String>>(f);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart
index 806491f..cec22b8 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart
@@ -1,19 +1,19 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
main() async {
- var /*@ type=Future<B*>* */ b = new Future<B>.value(new B());
- var /*@ type=Future<C*>* */ c = new Future<C>.value(new C());
- var /*@ type=List<Future<A*>*>* */ lll = /*@ typeArgs=Future<A*>* */ [b, c];
- var /*@ type=List<A*>* */ result = await Future. /*@ typeArgs=A* */ wait(lll);
- var /*@ type=List<A*>* */ result2 = await Future. /*@ typeArgs=A* */ wait(
- /*@ typeArgs=Future<A*>* */ [b, c]);
+ var /*@type=Future<B>*/ b = new Future<B>.value(new B());
+ var /*@type=Future<C>*/ c = new Future<C>.value(new C());
+ var /*@type=List<Future<A>>*/ lll = /*@typeArgs=Future<A>*/ [b, c];
+ var /*@type=List<A>*/ result = await Future. /*@typeArgs=A*/ wait(lll);
+ var /*@type=List<A>*/ result2 = await Future. /*@typeArgs=A*/ wait(
+ /*@typeArgs=Future<A>*/ [b, c]);
List<A> list = result;
list = result2;
}
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline.expect
index 7a4e0a9..b625587 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline_modelled.expect
index ba709a1..0cb32a3 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.expect
index 8c17d48..3e12352 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,36 +6,26 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::A {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
static method main() → dynamic async /* futureValueType= dynamic */ {
- asy::Future<self::B*>* b = asy::Future::value<self::B*>(new self::B::•());
- asy::Future<self::C*>* c = asy::Future::value<self::C*>(new self::C::•());
- core::List<asy::Future<self::A*>*>* lll = <asy::Future<self::A*>*>[b, c];
- core::List<self::A*>* result = await asy::Future::wait<self::A*>(lll);
- core::List<self::A*>* result2 = await asy::Future::wait<self::A*>(<asy::Future<self::A*>*>[b, c]);
- core::List<self::A*>* list = result;
+ asy::Future<self::B> b = asy::Future::value<self::B>(new self::B::•());
+ asy::Future<self::C> c = asy::Future::value<self::C>(new self::C::•());
+ core::List<asy::Future<self::A>> lll = <asy::Future<self::A>>[b, c];
+ core::List<self::A> result = await asy::Future::wait<self::A>(lll);
+ core::List<self::A> result2 = await asy::Future::wait<self::A>(<asy::Future<self::A>>[b, c]);
+ core::List<self::A> list = result;
list = result2;
}
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.modular.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.modular.expect
index 8c17d48..3e12352 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,36 +6,26 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::A {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
static method main() → dynamic async /* futureValueType= dynamic */ {
- asy::Future<self::B*>* b = asy::Future::value<self::B*>(new self::B::•());
- asy::Future<self::C*>* c = asy::Future::value<self::C*>(new self::C::•());
- core::List<asy::Future<self::A*>*>* lll = <asy::Future<self::A*>*>[b, c];
- core::List<self::A*>* result = await asy::Future::wait<self::A*>(lll);
- core::List<self::A*>* result2 = await asy::Future::wait<self::A*>(<asy::Future<self::A*>*>[b, c]);
- core::List<self::A*>* list = result;
+ asy::Future<self::B> b = asy::Future::value<self::B>(new self::B::•());
+ asy::Future<self::C> c = asy::Future::value<self::C>(new self::C::•());
+ core::List<asy::Future<self::A>> lll = <asy::Future<self::A>>[b, c];
+ core::List<self::A> result = await asy::Future::wait<self::A>(lll);
+ core::List<self::A> result2 = await asy::Future::wait<self::A>(<asy::Future<self::A>>[b, c]);
+ core::List<self::A> list = result;
list = result2;
}
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.outline.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.outline.expect
index 1f4c3b4..0bb9032 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
class C extends self::A {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
static method main() → dynamic async
diff --git a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.transformed.expect
index 057267c..b63d029 100644
--- a/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/future_union_upwards_generic_methods.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,36 +6,26 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::A {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
static method main() → dynamic async /* futureValueType= dynamic */ {
- asy::Future<self::B*>* b = asy::Future::value<self::B*>(new self::B::•());
- asy::Future<self::C*>* c = asy::Future::value<self::C*>(new self::C::•());
- core::List<asy::Future<self::A*>*>* lll = core::_GrowableList::_literal2<asy::Future<self::A*>*>(b, c);
- core::List<self::A*>* result = await asy::Future::wait<self::A*>(lll);
- core::List<self::A*>* result2 = await asy::Future::wait<self::A*>(core::_GrowableList::_literal2<asy::Future<self::A*>*>(b, c));
- core::List<self::A*>* list = result;
+ asy::Future<self::B> b = asy::Future::value<self::B>(new self::B::•());
+ asy::Future<self::C> c = asy::Future::value<self::C>(new self::C::•());
+ core::List<asy::Future<self::A>> lll = core::_GrowableList::_literal2<asy::Future<self::A>>(b, c);
+ core::List<self::A> result = await asy::Future::wait<self::A>(lll);
+ core::List<self::A> result2 = await asy::Future::wait<self::A>(core::_GrowableList::_literal2<asy::Future<self::A>>(b, c));
+ core::List<self::A> list = result;
list = result2;
}
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart b/pkg/front_end/testcases/inference/generator_closure.dart
index c7b0b1c..ed7b973 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart
+++ b/pkg/front_end/testcases/inference/generator_closure.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
void foo(Stream<int> Function() values) {}
void main() {
- foo(/*@ returnType=Stream<int*>* */ () async* {
+ foo(/*@returnType=Stream<int>*/ () async* {
yield 0;
yield 1;
});
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline.expect
index 5d93834..d7b3836 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline_modelled.expect
index 5d93834..d7b3836 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.weak.expect b/pkg/front_end/testcases/inference/generator_closure.dart.weak.expect
index c703bed..b4d5076 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method foo(() →* asy::Stream<core::int*>* values) → void {}
+static method foo(() → asy::Stream<core::int> values) → void {}
static method main() → void {
- self::foo(() → asy::Stream<core::int*>* async* {
+ self::foo(() → asy::Stream<core::int> async* {
yield 0;
yield 1;
});
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generator_closure.dart.weak.modular.expect
index c703bed..b4d5076 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method foo(() →* asy::Stream<core::int*>* values) → void {}
+static method foo(() → asy::Stream<core::int> values) → void {}
static method main() → void {
- self::foo(() → asy::Stream<core::int*>* async* {
+ self::foo(() → asy::Stream<core::int> async* {
yield 0;
yield 1;
});
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generator_closure.dart.weak.outline.expect
index 394f01f..2b91af66 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method foo(() →* asy::Stream<core::int*>* values) → void
+static method foo(() → asy::Stream<core::int> values) → void
;
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/generator_closure.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generator_closure.dart.weak.transformed.expect
index c703bed..b4d5076 100644
--- a/pkg/front_end/testcases/inference/generator_closure.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generator_closure.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method foo(() →* asy::Stream<core::int*>* values) → void {}
+static method foo(() → asy::Stream<core::int> values) → void {}
static method main() → void {
- self::foo(() → asy::Stream<core::int*>* async* {
+ self::foo(() → asy::Stream<core::int> async* {
yield 0;
yield 1;
});
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart
index 58c7fba..4d1bd29 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
typedef void ToValue<T>(T value);
-main() {
- ToValue<T> f<T>(T x) => null;
- var /*@type=(int*) ->* void*/ x = f<int>(42);
- var /*@type=(int*) ->* void*/ y = f /*@typeArgs=int**/ (42);
+test() {
+ ToValue<T> f<T>(T x) => throw '';
+ var /*@type=(int) -> void*/ x = f<int>(42);
+ var /*@type=(int) -> void*/ y = f /*@typeArgs=int*/ (42);
ToValue<int> takesInt = x;
takesInt = y;
}
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline.expect
index 80672df..71191fd 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
typedef void ToValue<T>(T value);
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline_modelled.expect
index f3255a1..0fedb64 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-main() {}
+test() {}
typedef void ToValue<T>(T value);
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.expect
index b6875d1..47b181d 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef ToValue<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-static method main() → dynamic {
- function f<T extends core::Object* = dynamic>(T* x) → (T*) →* void
- return null;
- (core::int*) →* void x = f<core::int*>(42){(core::int*) →* (core::int*) →* void};
- (core::int*) →* void y = f<core::int*>(42){(core::int*) →* (core::int*) →* void};
- (core::int*) →* void takesInt = x;
+typedef ToValue<contravariant T extends core::Object? = dynamic> = (T%) → void;
+static method test() → dynamic {
+ function f<T extends core::Object? = dynamic>(T% x) → (T%) → void
+ return throw "";
+ (core::int) → void x = f<core::int>(42){(core::int) → (core::int) → void};
+ (core::int) → void y = f<core::int>(42){(core::int) → (core::int) → void};
+ (core::int) → void takesInt = x;
takesInt = y;
}
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.modular.expect
index b6875d1..47b181d 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef ToValue<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-static method main() → dynamic {
- function f<T extends core::Object* = dynamic>(T* x) → (T*) →* void
- return null;
- (core::int*) →* void x = f<core::int*>(42){(core::int*) →* (core::int*) →* void};
- (core::int*) →* void y = f<core::int*>(42){(core::int*) →* (core::int*) →* void};
- (core::int*) →* void takesInt = x;
+typedef ToValue<contravariant T extends core::Object? = dynamic> = (T%) → void;
+static method test() → dynamic {
+ function f<T extends core::Object? = dynamic>(T% x) → (T%) → void
+ return throw "";
+ (core::int) → void x = f<core::int>(42){(core::int) → (core::int) → void};
+ (core::int) → void y = f<core::int>(42){(core::int) → (core::int) → void};
+ (core::int) → void takesInt = x;
takesInt = y;
}
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.outline.expect
index 3a0416f..9768806 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef ToValue<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-static method main() → dynamic
+typedef ToValue<contravariant T extends core::Object? = dynamic> = (T%) → void;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.transformed.expect
index b6875d1..47b181d 100644
--- a/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_functions_return_typedef.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef ToValue<contravariant T extends core::Object* = dynamic> = (T*) →* void;
-static method main() → dynamic {
- function f<T extends core::Object* = dynamic>(T* x) → (T*) →* void
- return null;
- (core::int*) →* void x = f<core::int*>(42){(core::int*) →* (core::int*) →* void};
- (core::int*) →* void y = f<core::int*>(42){(core::int*) →* (core::int*) →* void};
- (core::int*) →* void takesInt = x;
+typedef ToValue<contravariant T extends core::Object? = dynamic> = (T%) → void;
+static method test() → dynamic {
+ function f<T extends core::Object? = dynamic>(T% x) → (T%) → void
+ return throw "";
+ (core::int) → void x = f<core::int>(42){(core::int) → (core::int) → void};
+ (core::int) → void y = f<core::int>(42){(core::int) → (core::int) → void};
+ (core::int) → void takesInt = x;
takesInt = y;
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart
index 1bf287e..82ebd4d 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart
@@ -1,12 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<S, T>(S s) => null;
-main() {
- String x = /*@ typeArgs=int*, String* */ f(42);
- String y = (f) /*@ typeArgs=int*, String* */ (42);
+T f<S, T>(S s) => throw '';
+
+test() {
+ String x = /*@typeArgs=int, String*/ f(42);
+ String y = (f) /*@typeArgs=int, String*/ (42);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline.expect
index 737e479..adb7f53 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-T f<S, T>(S s) => null;
-main() {}
+T f<S, T>(S s) => throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline_modelled.expect
index 737e479..adb7f53 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-T f<S, T>(S s) => null;
-main() {}
+T f<S, T>(S s) => throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.expect
index 421c4af..34c9ac5 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<S extends core::Object* = dynamic, T extends core::Object* = dynamic>(self::f::S* s) → self::f::T*
- return null;
-static method main() → dynamic {
- core::String* x = self::f<core::int*, core::String*>(42);
- core::String* y = #C1<core::int*, core::String*>(42){(core::int*) →* core::String*};
+static method f<S extends core::Object? = dynamic, T extends core::Object? = dynamic>(self::f::S% s) → self::f::T%
+ return throw "";
+static method test() → dynamic {
+ core::String x = self::f<core::int, core::String>(42);
+ core::String y = #C1<core::int, core::String>(42){(core::int) → core::String};
}
constants {
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.modular.expect
index 421c4af..34c9ac5 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<S extends core::Object* = dynamic, T extends core::Object* = dynamic>(self::f::S* s) → self::f::T*
- return null;
-static method main() → dynamic {
- core::String* x = self::f<core::int*, core::String*>(42);
- core::String* y = #C1<core::int*, core::String*>(42){(core::int*) →* core::String*};
+static method f<S extends core::Object? = dynamic, T extends core::Object? = dynamic>(self::f::S% s) → self::f::T%
+ return throw "";
+static method test() → dynamic {
+ core::String x = self::f<core::int, core::String>(42);
+ core::String y = #C1<core::int, core::String>(42){(core::int) → core::String};
}
constants {
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.outline.expect
index 9f34989..606de92 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<S extends core::Object* = dynamic, T extends core::Object* = dynamic>(self::f::S* s) → self::f::T*
+static method f<S extends core::Object? = dynamic, T extends core::Object? = dynamic>(self::f::S% s) → self::f::T%
;
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.transformed.expect
index 421c4af..34c9ac5 100644
--- a/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_basic_downward_inference.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<S extends core::Object* = dynamic, T extends core::Object* = dynamic>(self::f::S* s) → self::f::T*
- return null;
-static method main() → dynamic {
- core::String* x = self::f<core::int*, core::String*>(42);
- core::String* y = #C1<core::int*, core::String*>(42){(core::int*) →* core::String*};
+static method f<S extends core::Object? = dynamic, T extends core::Object? = dynamic>(self::f::S% s) → self::f::T%
+ return throw "";
+static method test() → dynamic {
+ core::String x = self::f<core::int, core::String>(42);
+ core::String y = #C1<core::int, core::String>(42){(core::int) → core::String};
}
constants {
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart
index 58b0e43..12c9b5a 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -23,6 +23,6 @@
*/
new Foo<String>()
- . /*error:COULD_NOT_INFER*/ /*@ typeArgs=int* */ /*@target=Foo.method*/ method(
+ . /*error:COULD_NOT_INFER*/ /*@typeArgs=int*/ /*@target=Foo.method*/ method(
42);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline.expect
index c0d3a00..c453bac 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo<T extends Pattern> {
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline_modelled.expect
index c0d3a00..c453bac 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo<T extends Pattern> {
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect
index 3871d0a..b5fb8b3 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart:26:79: Error: Inferred type argument 'int' doesn't conform to the bound 'String' of the type variable 'U' on 'Foo<String>.method'.
+// pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart:26:76: Error: Inferred type argument 'int' doesn't conform to the bound 'String' of the type variable 'U' on 'Foo<String>.method'.
// - 'Foo' is from 'pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// . /*error:COULD_NOT_INFER*/ /*@ typeArgs=int* */ /*@target=Foo.method*/ method(
-// ^
+// . /*error:COULD_NOT_INFER*/ /*@typeArgs=int*/ /*@target=Foo.method*/ method(
+// ^
//
import self as self;
import "dart:core" as core;
-class Foo<T extends core::Pattern*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends core::Pattern> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
: super core::Object::•()
;
- method method<covariant-by-class U extends self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
+ method method<covariant-by-class U extends self::Foo::T>(self::Foo::method::U u) → self::Foo::method::U
return u;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::Foo::•<core::String*>().{self::Foo::method}<core::int*>(42){(core::int*) →* core::int*};
+ new self::Foo::•<core::String>().{self::Foo::method}<core::int>(42){(core::int) → core::int};
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.modular.expect
index 3871d0a..b5fb8b3 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart:26:79: Error: Inferred type argument 'int' doesn't conform to the bound 'String' of the type variable 'U' on 'Foo<String>.method'.
+// pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart:26:76: Error: Inferred type argument 'int' doesn't conform to the bound 'String' of the type variable 'U' on 'Foo<String>.method'.
// - 'Foo' is from 'pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart'.
// Try specifying type arguments explicitly so that they conform to the bounds.
-// . /*error:COULD_NOT_INFER*/ /*@ typeArgs=int* */ /*@target=Foo.method*/ method(
-// ^
+// . /*error:COULD_NOT_INFER*/ /*@typeArgs=int*/ /*@target=Foo.method*/ method(
+// ^
//
import self as self;
import "dart:core" as core;
-class Foo<T extends core::Pattern*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends core::Pattern> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
: super core::Object::•()
;
- method method<covariant-by-class U extends self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
+ method method<covariant-by-class U extends self::Foo::T>(self::Foo::method::U u) → self::Foo::method::U
return u;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::Foo::•<core::String*>().{self::Foo::method}<core::int*>(42){(core::int*) →* core::int*};
+ new self::Foo::•<core::String>().{self::Foo::method}<core::int>(42){(core::int) → core::int};
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect
index 0542c0b..3c8a852 100644
--- a/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_correctly_recognize_generic_upper_bound.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Foo<T extends core::Pattern*> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+class Foo<T extends core::Pattern> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T>
;
- method method<covariant-by-class U extends self::Foo::T*>(self::Foo::method::U* u) → self::Foo::method::U*
+ method method<covariant-by-class U extends self::Foo::T>(self::Foo::method::U u) → self::Foo::method::U
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart
index a9994b2..c5494ef 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,30 +11,30 @@
void printDouble(double x) => print(x);
num myMax(num x, num y) =>
- /*@ typeArgs=num* */ max(x, y);
+ /*@typeArgs=num*/ max(x, y);
f() {
// Okay if static types match.
- printInt(/*@ typeArgs=int* */ max(1, 2));
- printInt(/*@ typeArgs=int* */ min(1, 2));
- printDouble(/*@ typeArgs=double* */ max(1.0, 2.0));
- printDouble(/*@ typeArgs=double* */ min(1.0, 2.0));
+ printInt(/*@typeArgs=int*/ max(1, 2));
+ printInt(/*@typeArgs=int*/ min(1, 2));
+ printDouble(/*@typeArgs=double*/ max(1.0, 2.0));
+ printDouble(/*@typeArgs=double*/ min(1.0, 2.0));
// No help for user-defined functions from num->num->num.
printInt(myMax(1, 2));
printInt(myMax(1, 2) as int);
printInt(
- /*@ typeArgs=int* */ max(1, 2.0));
+ /*@typeArgs=int*/ max(1, 2.0));
printInt(
- /*@ typeArgs=int* */ min(1, 2.0));
+ /*@typeArgs=int*/ min(1, 2.0));
printDouble(
- /*@ typeArgs=double* */ max(1, 2.0));
+ /*@typeArgs=double*/ max(1, 2.0));
printDouble(
- /*@ typeArgs=double* */ min(1, 2.0));
+ /*@typeArgs=double*/ min(1, 2.0));
// Types other than int and double are not accepted.
- printInt(/*@ typeArgs=int* */ min("hi", "there"));
+ printInt(/*@typeArgs=int*/ min("hi", "there"));
}
main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline.expect
index 36b34fe..b914263 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:math';
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline_modelled.expect
index a560376..d493668 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:math';
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.expect
index 9c23381..5faad62 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.expect
@@ -1,22 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
-// /*@ typeArgs=int* */ max(1, 2.0));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:24:12: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+// printInt(myMax(1, 2));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
-// /*@ typeArgs=int* */ min(1, 2.0));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+// /*@typeArgs=int*/ max(1, 2.0));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:37: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// printInt(/*@ typeArgs=int* */ min("hi", "there"));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+// /*@typeArgs=int*/ min(1, 2.0));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:43: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// printInt(/*@ typeArgs=int* */ min("hi", "there"));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:34: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// printInt(/*@typeArgs=int*/ min("hi", "there"));
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:40: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// printInt(/*@typeArgs=int*/ min("hi", "there"));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -24,31 +28,33 @@
import "dart:math";
-static method printInt(core::int* x) → void
+static method printInt(core::int x) → void
return core::print(x);
-static method printDouble(core::double* x) → void
+static method printDouble(core::double x) → void
return core::print(x);
-static method myMax(core::num* x, core::num* y) → core::num*
- return math::max<core::num*>(x, y);
+static method myMax(core::num x, core::num y) → core::num
+ return math::max<core::num>(x, y);
static method f() → dynamic {
- self::printInt(math::max<core::int*>(1, 2));
- self::printInt(math::min<core::int*>(1, 2));
- self::printDouble(math::max<core::double*>(1.0, 2.0));
- self::printDouble(math::min<core::double*>(1.0, 2.0));
- self::printInt(self::myMax(1, 2) as{TypeError} core::int*);
- self::printInt(self::myMax(1, 2) as core::int*);
- self::printInt(math::max<core::int*>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
- /*@ typeArgs=int* */ max(1, 2.0));
- ^" in 2.0 as{TypeError} core::int*));
- self::printInt(math::min<core::int*>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
- /*@ typeArgs=int* */ min(1, 2.0));
- ^" in 2.0 as{TypeError} core::int*));
- self::printDouble(math::max<core::double*>(1.0, 2.0));
- self::printDouble(math::min<core::double*>(1.0, 2.0));
- self::printInt(math::min<core::int*>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:37: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- printInt(/*@ typeArgs=int* */ min(\"hi\", \"there\"));
- ^" in "hi" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:43: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- printInt(/*@ typeArgs=int* */ min(\"hi\", \"there\"));
- ^" in "there" as{TypeError} core::int*));
+ self::printInt(math::max<core::int>(1, 2));
+ self::printInt(math::min<core::int>(1, 2));
+ self::printDouble(math::max<core::double>(1.0, 2.0));
+ self::printDouble(math::min<core::double>(1.0, 2.0));
+ self::printInt(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:24:12: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+ printInt(myMax(1, 2));
+ ^" in self::myMax(1, 2) as{TypeError,ForNonNullableByDefault} core::int);
+ self::printInt(self::myMax(1, 2) as{ForNonNullableByDefault} core::int);
+ self::printInt(math::max<core::int>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+ /*@typeArgs=int*/ max(1, 2.0));
+ ^" in 2.0 as{TypeError,ForNonNullableByDefault} core::int));
+ self::printInt(math::min<core::int>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+ /*@typeArgs=int*/ min(1, 2.0));
+ ^" in 2.0 as{TypeError,ForNonNullableByDefault} core::int));
+ self::printDouble(math::max<core::double>(1.0, 2.0));
+ self::printDouble(math::min<core::double>(1.0, 2.0));
+ self::printInt(math::min<core::int>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:34: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ printInt(/*@typeArgs=int*/ min(\"hi\", \"there\"));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:40: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ printInt(/*@typeArgs=int*/ min(\"hi\", \"there\"));
+ ^" in "there" as{TypeError,ForNonNullableByDefault} core::int));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.modular.expect
index 9c23381..5faad62 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.modular.expect
@@ -1,22 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
-// /*@ typeArgs=int* */ max(1, 2.0));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:24:12: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+// printInt(myMax(1, 2));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
-// /*@ typeArgs=int* */ min(1, 2.0));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+// /*@typeArgs=int*/ max(1, 2.0));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:37: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// printInt(/*@ typeArgs=int* */ min("hi", "there"));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+// /*@typeArgs=int*/ min(1, 2.0));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:43: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// printInt(/*@ typeArgs=int* */ min("hi", "there"));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:34: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// printInt(/*@typeArgs=int*/ min("hi", "there"));
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:40: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// printInt(/*@typeArgs=int*/ min("hi", "there"));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -24,31 +28,33 @@
import "dart:math";
-static method printInt(core::int* x) → void
+static method printInt(core::int x) → void
return core::print(x);
-static method printDouble(core::double* x) → void
+static method printDouble(core::double x) → void
return core::print(x);
-static method myMax(core::num* x, core::num* y) → core::num*
- return math::max<core::num*>(x, y);
+static method myMax(core::num x, core::num y) → core::num
+ return math::max<core::num>(x, y);
static method f() → dynamic {
- self::printInt(math::max<core::int*>(1, 2));
- self::printInt(math::min<core::int*>(1, 2));
- self::printDouble(math::max<core::double*>(1.0, 2.0));
- self::printDouble(math::min<core::double*>(1.0, 2.0));
- self::printInt(self::myMax(1, 2) as{TypeError} core::int*);
- self::printInt(self::myMax(1, 2) as core::int*);
- self::printInt(math::max<core::int*>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
- /*@ typeArgs=int* */ max(1, 2.0));
- ^" in 2.0 as{TypeError} core::int*));
- self::printInt(math::min<core::int*>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
- /*@ typeArgs=int* */ min(1, 2.0));
- ^" in 2.0 as{TypeError} core::int*));
- self::printDouble(math::max<core::double*>(1.0, 2.0));
- self::printDouble(math::min<core::double*>(1.0, 2.0));
- self::printInt(math::min<core::int*>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:37: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- printInt(/*@ typeArgs=int* */ min(\"hi\", \"there\"));
- ^" in "hi" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:43: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- printInt(/*@ typeArgs=int* */ min(\"hi\", \"there\"));
- ^" in "there" as{TypeError} core::int*));
+ self::printInt(math::max<core::int>(1, 2));
+ self::printInt(math::min<core::int>(1, 2));
+ self::printDouble(math::max<core::double>(1.0, 2.0));
+ self::printDouble(math::min<core::double>(1.0, 2.0));
+ self::printInt(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:24:12: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+ printInt(myMax(1, 2));
+ ^" in self::myMax(1, 2) as{TypeError,ForNonNullableByDefault} core::int);
+ self::printInt(self::myMax(1, 2) as{ForNonNullableByDefault} core::int);
+ self::printInt(math::max<core::int>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+ /*@typeArgs=int*/ max(1, 2.0));
+ ^" in 2.0 as{TypeError,ForNonNullableByDefault} core::int));
+ self::printInt(math::min<core::int>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+ /*@typeArgs=int*/ min(1, 2.0));
+ ^" in 2.0 as{TypeError,ForNonNullableByDefault} core::int));
+ self::printDouble(math::max<core::double>(1.0, 2.0));
+ self::printDouble(math::min<core::double>(1.0, 2.0));
+ self::printInt(math::min<core::int>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:34: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ printInt(/*@typeArgs=int*/ min(\"hi\", \"there\"));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:40: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ printInt(/*@typeArgs=int*/ min(\"hi\", \"there\"));
+ ^" in "there" as{TypeError,ForNonNullableByDefault} core::int));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.outline.expect
index 47b4040..359d5d6 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.outline.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:math";
-static method printInt(core::int* x) → void
+static method printInt(core::int x) → void
;
-static method printDouble(core::double* x) → void
+static method printDouble(core::double x) → void
;
-static method myMax(core::num* x, core::num* y) → core::num*
+static method myMax(core::num x, core::num y) → core::num
;
static method f() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.transformed.expect
index 9c23381..5faad62 100644
--- a/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart.weak.transformed.expect
@@ -1,22 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
-// /*@ typeArgs=int* */ max(1, 2.0));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:24:12: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+// printInt(myMax(1, 2));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
-// /*@ typeArgs=int* */ min(1, 2.0));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+// /*@typeArgs=int*/ max(1, 2.0));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:37: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// printInt(/*@ typeArgs=int* */ min("hi", "there"));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+// /*@typeArgs=int*/ min(1, 2.0));
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:43: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
-// printInt(/*@ typeArgs=int* */ min("hi", "there"));
-// ^
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:34: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// printInt(/*@typeArgs=int*/ min("hi", "there"));
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:40: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+// printInt(/*@typeArgs=int*/ min("hi", "there"));
+// ^
//
import self as self;
import "dart:core" as core;
@@ -24,31 +28,33 @@
import "dart:math";
-static method printInt(core::int* x) → void
+static method printInt(core::int x) → void
return core::print(x);
-static method printDouble(core::double* x) → void
+static method printDouble(core::double x) → void
return core::print(x);
-static method myMax(core::num* x, core::num* y) → core::num*
- return math::max<core::num*>(x, y);
+static method myMax(core::num x, core::num y) → core::num
+ return math::max<core::num>(x, y);
static method f() → dynamic {
- self::printInt(math::max<core::int*>(1, 2));
- self::printInt(math::min<core::int*>(1, 2));
- self::printDouble(math::max<core::double*>(1.0, 2.0));
- self::printDouble(math::min<core::double*>(1.0, 2.0));
- self::printInt(self::myMax(1, 2) as{TypeError} core::int*);
- self::printInt(self::myMax(1, 2) as core::int*);
- self::printInt(math::max<core::int*>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
- /*@ typeArgs=int* */ max(1, 2.0));
- ^" in 2.0 as{TypeError} core::int*));
- self::printInt(math::min<core::int*>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:35: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
- /*@ typeArgs=int* */ min(1, 2.0));
- ^" in 2.0 as{TypeError} core::int*));
- self::printDouble(math::max<core::double*>(1.0, 2.0));
- self::printDouble(math::min<core::double*>(1.0, 2.0));
- self::printInt(math::min<core::int*>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:37: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- printInt(/*@ typeArgs=int* */ min(\"hi\", \"there\"));
- ^" in "hi" as{TypeError} core::int*, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:43: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
- printInt(/*@ typeArgs=int* */ min(\"hi\", \"there\"));
- ^" in "there" as{TypeError} core::int*));
+ self::printInt(math::max<core::int>(1, 2));
+ self::printInt(math::min<core::int>(1, 2));
+ self::printDouble(math::max<core::double>(1.0, 2.0));
+ self::printDouble(math::min<core::double>(1.0, 2.0));
+ self::printInt(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:24:12: Error: The argument type 'num' can't be assigned to the parameter type 'int'.
+ printInt(myMax(1, 2));
+ ^" in self::myMax(1, 2) as{TypeError,ForNonNullableByDefault} core::int);
+ self::printInt(self::myMax(1, 2) as{ForNonNullableByDefault} core::int);
+ self::printInt(math::max<core::int>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:28:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+ /*@typeArgs=int*/ max(1, 2.0));
+ ^" in 2.0 as{TypeError,ForNonNullableByDefault} core::int));
+ self::printInt(math::min<core::int>(1, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:30:32: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
+ /*@typeArgs=int*/ min(1, 2.0));
+ ^" in 2.0 as{TypeError,ForNonNullableByDefault} core::int));
+ self::printDouble(math::max<core::double>(1.0, 2.0));
+ self::printDouble(math::min<core::double>(1.0, 2.0));
+ self::printInt(math::min<core::int>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:34: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ printInt(/*@typeArgs=int*/ min(\"hi\", \"there\"));
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, invalid-expression "pkg/front_end/testcases/inference/generic_methods_dart_math_min_max.dart:37:40: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
+ printInt(/*@typeArgs=int*/ min(\"hi\", \"there\"));
+ ^" in "there" as{TypeError,ForNonNullableByDefault} core::int));
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart
index 5669aef..8bb231c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline.expect
index 6f58ae4..2f8aafa 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline_modelled.expect
index 6f58ae4..2f8aafa 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.expect
index 6c102fe..9487f9c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,32 +25,22 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method m(invalid-type x) → invalid-type
return x;
}
static method main() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:18:73: Error: Expected 0 type arguments.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:18:73: Error: Expected 0 type arguments.
. /*error:WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD*/ /*@target=D.m*/ m<int>(
- ^" in new self::D::•().{self::D::m}{<inapplicable>}.<core::int*>(42){(invalid-type) →* invalid-type};
+ ^" in new self::D::•().{self::D::m}{<inapplicable>}.<core::int>(42){(invalid-type) → invalid-type};
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.modular.expect
index 6c102fe..9487f9c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,32 +25,22 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method m(invalid-type x) → invalid-type
return x;
}
static method main() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:18:73: Error: Expected 0 type arguments.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart:18:73: Error: Expected 0 type arguments.
. /*error:WRONG_NUMBER_OF_TYPE_ARGUMENTS_METHOD*/ /*@target=D.m*/ m<int>(
- ^" in new self::D::•().{self::D::m}{<inapplicable>}.<core::int*>(42){(invalid-type) →* invalid-type};
+ ^" in new self::D::•().{self::D::m}{<inapplicable>}.<core::int>(42){(invalid-type) → invalid-type};
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.outline.expect
index 3d1f663..5d1e1c0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_do_not_infer_invalid_override_of_generic_method.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,23 +21,13 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method m(invalid-type x) → invalid-type
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart
index 89c2a52..8935116 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart
@@ -1,16 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>(List<T> s) => null;
-test() {
- String x = /*@ typeArgs=String* */ f(/*@ typeArgs=String* */ ['hi']);
- String y =
- /*@ typeArgs=String* */ f(
- /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
-}
+T f<T>(List<T> s) => throw '';
-main() {}
+test() {
+ String x = /*@typeArgs=String*/ f(/*@typeArgs=String*/ ['hi']);
+ String y =
+ /*@typeArgs=String*/ f(
+ /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline.expect
index 715dadf..f72a938 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline.expect
@@ -1,6 +1,4 @@
-// @dart = 2.9
library test;
-T f<T>(List<T> s) => null;
+T f<T>(List<T> s) => throw '';
test() {}
-main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline_modelled.expect
index 3de7c0a..f72a938 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.textual_outline_modelled.expect
@@ -1,6 +1,4 @@
-// @dart = 2.9
library test;
-T f<T>(List<T> s) => null;
-main() {}
+T f<T>(List<T> s) => throw '';
test() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.expect
index 79f41c9..93e00e2 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.expect
@@ -1,20 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
-// ^
+// pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:14:76: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+// ^
//
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>(core::List<self::f::T*>* s) → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>(core::List<self::f::T%> s) → self::f::T%
+ return throw "";
static method test() → dynamic {
- core::String* x = self::f<core::String*>(<core::String*>["hi"]);
- core::String* y = self::f<core::String*>(<core::String*>[invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
- ^" in 42 as{TypeError} core::String*]);
+ core::String x = self::f<core::String>(<core::String>["hi"]);
+ core::String y = self::f<core::String>(<core::String>[invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:14:76: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String]);
}
-static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.modular.expect
index 79f41c9..93e00e2 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.modular.expect
@@ -1,20 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
-// ^
+// pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:14:76: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+// ^
//
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>(core::List<self::f::T*>* s) → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>(core::List<self::f::T%> s) → self::f::T%
+ return throw "";
static method test() → dynamic {
- core::String* x = self::f<core::String*>(<core::String*>["hi"]);
- core::String* y = self::f<core::String*>(<core::String*>[invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
- ^" in 42 as{TypeError} core::String*]);
+ core::String x = self::f<core::String>(<core::String>["hi"]);
+ core::String y = self::f<core::String>(<core::String>[invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:14:76: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String]);
}
-static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.outline.expect
index 649bb11..47f1bcc 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.outline.expect
@@ -1,10 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>(core::List<self::f::T*>* s) → self::f::T*
+static method f<T extends core::Object? = dynamic>(core::List<self::f::T%> s) → self::f::T%
;
static method test() → dynamic
;
-static method main() → dynamic
- ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.transformed.expect
index 71fc12a..7a33c99 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart.weak.transformed.expect
@@ -1,20 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
-// /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
-// ^
+// pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:14:76: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+// ^
//
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>(core::List<self::f::T*>* s) → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>(core::List<self::f::T%> s) → self::f::T%
+ return throw "";
static method test() → dynamic {
- core::String* x = self::f<core::String*>(core::_GrowableList::_literal1<core::String*>("hi"));
- core::String* y = self::f<core::String*>(core::_GrowableList::_literal1<core::String*>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:13:79: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- /*@ typeArgs=String* */ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
- ^" in 42 as{TypeError} core::String*));
+ core::String x = self::f<core::String>(core::_GrowableList::_literal1<core::String>("hi"));
+ core::String y = self::f<core::String>(core::_GrowableList::_literal1<core::String>(invalid-expression "pkg/front_end/testcases/inference/generic_methods_downwards_inference_affects_arguments.dart:14:76: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ /*@typeArgs=String*/ [/*error:LIST_ELEMENT_TYPE_NOT_ASSIGNABLE*/ 42]);
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String));
}
-static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart
index 61d1113..d878fef 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart
@@ -1,37 +1,35 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-void test() {
- List<int> o;
- int y = o. /*@ typeArgs=int* */ /*@target=Iterable.fold*/ fold(
+void test(List<int> o) {
+ int y = o. /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold(
0,
- /*@ returnType=int* */ (/*@ type=int* */ x,
- /*@ type=int* */ y) =>
+ /*@returnType=int*/ (/*@type=int*/ x,
+ /*@type=int*/ y) =>
x /*@target=num.+*/ + y);
- var /*@ type=dynamic */ z =
- o. /*@ typeArgs=dynamic */ /*@target=Iterable.fold*/ fold(
+ var /*@type=int*/ z =
+ o. /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold(
0,
- /*@ returnType=dynamic */ (/*@ type=dynamic */ x,
- /*@ type=int* */ y) => /*info:DYNAMIC_INVOKE*/ x + y);
+ /*@returnType=int*/ (/*@type=int*/ x,
+ /*@type=int*/ y) => /*info:DYNAMIC_INVOKE*/ x /*@target=num.+*/+ y);
y = /*info:DYNAMIC_CAST*/ z;
}
-void functionExpressionInvocation() {
- List<int> o;
- int y = (o. /*@target=Iterable.fold*/ fold) /*@ typeArgs=int* */ (
+void functionExpressionInvocation(List<int> o) {
+ int y = (o. /*@target=Iterable.fold*/ fold) /*@typeArgs=int*/ (
0,
- /*@ returnType=int* */ (/*@ type=int* */ x,
- /*@ type=int* */ y) =>
+ /*@returnType=int*/ (/*@type=int*/ x,
+ /*@type=int*/ y) =>
x /*@target=num.+*/ + y);
- var /*@ type=dynamic */ z =
- (o. /*@target=Iterable.fold*/ fold) /*@ typeArgs=dynamic */ (
+ var /*@type=int*/ z =
+ (o. /*@target=Iterable.fold*/ fold) /*@typeArgs=int*/ (
0,
- /*@ returnType=dynamic */ (/*@ type=dynamic */ x,
- /*@ type=int* */ y) => /*info:DYNAMIC_INVOKE*/ x + y);
+ /*@returnType=int*/ (/*@type=int*/ x,
+ /*@type=int*/ y) => /*info:DYNAMIC_INVOKE*/ x /*@target=num.+*/+ y);
y = /*info:DYNAMIC_CAST*/ z;
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline.expect
index 7227f33..3e6b803 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-void test() {}
-void functionExpressionInvocation() {}
+void test(List<int> o) {}
+void functionExpressionInvocation(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline_modelled.expect
index 7f28e4c..de51537 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
main() {}
-void functionExpressionInvocation() {}
-void test() {}
+void functionExpressionInvocation(List<int> o) {}
+void test(List<int> o) {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.expect
index b0966cb..7540e9e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.expect
@@ -1,17 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test() → void {
- core::List<core::int*>* o;
- core::int* y = o.{core::Iterable::fold}<core::int*>(0, (core::int* x, core::int* y) → core::int* => x.{core::num::+}(y){(core::num*) →* core::int*}){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- dynamic z = o.{core::Iterable::fold}<dynamic>(0, (dynamic x, core::int* y) → dynamic => x{dynamic}.+(y)){(dynamic, (dynamic, core::int*) →* dynamic) →* dynamic};
- y = z as{TypeError,ForDynamic} core::int*;
+static method test(core::List<core::int> o) → void {
+ core::int y = o.{core::Iterable::fold}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ core::int z = o.{core::Iterable::fold}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ y = z;
}
-static method functionExpressionInvocation() → void {
- core::List<core::int*>* o;
- core::int* y = o.{core::Iterable::fold}{<T extends core::Object* = dynamic>(T*, (T*, core::int*) →* T*) →* T*}<core::int*>(0, (core::int* x, core::int* y) → core::int* => x.{core::num::+}(y){(core::num*) →* core::int*}){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- dynamic z = o.{core::Iterable::fold}{<T extends core::Object* = dynamic>(T*, (T*, core::int*) →* T*) →* T*}<dynamic>(0, (dynamic x, core::int* y) → dynamic => x{dynamic}.+(y)){(dynamic, (dynamic, core::int*) →* dynamic) →* dynamic};
- y = z as{TypeError,ForDynamic} core::int*;
+static method functionExpressionInvocation(core::List<core::int> o) → void {
+ core::int y = o.{core::Iterable::fold}{<T extends core::Object? = dynamic>(T%, (T%, core::int) → T%) → T%}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ core::int z = o.{core::Iterable::fold}{<T extends core::Object? = dynamic>(T%, (T%, core::int) → T%) → T%}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ y = z;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.modular.expect
index b0966cb..7540e9e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.modular.expect
@@ -1,17 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test() → void {
- core::List<core::int*>* o;
- core::int* y = o.{core::Iterable::fold}<core::int*>(0, (core::int* x, core::int* y) → core::int* => x.{core::num::+}(y){(core::num*) →* core::int*}){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- dynamic z = o.{core::Iterable::fold}<dynamic>(0, (dynamic x, core::int* y) → dynamic => x{dynamic}.+(y)){(dynamic, (dynamic, core::int*) →* dynamic) →* dynamic};
- y = z as{TypeError,ForDynamic} core::int*;
+static method test(core::List<core::int> o) → void {
+ core::int y = o.{core::Iterable::fold}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ core::int z = o.{core::Iterable::fold}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ y = z;
}
-static method functionExpressionInvocation() → void {
- core::List<core::int*>* o;
- core::int* y = o.{core::Iterable::fold}{<T extends core::Object* = dynamic>(T*, (T*, core::int*) →* T*) →* T*}<core::int*>(0, (core::int* x, core::int* y) → core::int* => x.{core::num::+}(y){(core::num*) →* core::int*}){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- dynamic z = o.{core::Iterable::fold}{<T extends core::Object* = dynamic>(T*, (T*, core::int*) →* T*) →* T*}<dynamic>(0, (dynamic x, core::int* y) → dynamic => x{dynamic}.+(y)){(dynamic, (dynamic, core::int*) →* dynamic) →* dynamic};
- y = z as{TypeError,ForDynamic} core::int*;
+static method functionExpressionInvocation(core::List<core::int> o) → void {
+ core::int y = o.{core::Iterable::fold}{<T extends core::Object? = dynamic>(T%, (T%, core::int) → T%) → T%}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ core::int z = o.{core::Iterable::fold}{<T extends core::Object? = dynamic>(T%, (T%, core::int) → T%) → T%}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ y = z;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.outline.expect
index b3ae44d..fae9d0e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.outline.expect
@@ -1,9 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test() → void
+static method test(core::List<core::int> o) → void
;
-static method functionExpressionInvocation() → void
+static method functionExpressionInvocation(core::List<core::int> o) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.transformed.expect
index b0966cb..7540e9e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_downwards_inference_fold.dart.weak.transformed.expect
@@ -1,17 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test() → void {
- core::List<core::int*>* o;
- core::int* y = o.{core::Iterable::fold}<core::int*>(0, (core::int* x, core::int* y) → core::int* => x.{core::num::+}(y){(core::num*) →* core::int*}){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- dynamic z = o.{core::Iterable::fold}<dynamic>(0, (dynamic x, core::int* y) → dynamic => x{dynamic}.+(y)){(dynamic, (dynamic, core::int*) →* dynamic) →* dynamic};
- y = z as{TypeError,ForDynamic} core::int*;
+static method test(core::List<core::int> o) → void {
+ core::int y = o.{core::Iterable::fold}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ core::int z = o.{core::Iterable::fold}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ y = z;
}
-static method functionExpressionInvocation() → void {
- core::List<core::int*>* o;
- core::int* y = o.{core::Iterable::fold}{<T extends core::Object* = dynamic>(T*, (T*, core::int*) →* T*) →* T*}<core::int*>(0, (core::int* x, core::int* y) → core::int* => x.{core::num::+}(y){(core::num*) →* core::int*}){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- dynamic z = o.{core::Iterable::fold}{<T extends core::Object* = dynamic>(T*, (T*, core::int*) →* T*) →* T*}<dynamic>(0, (dynamic x, core::int* y) → dynamic => x{dynamic}.+(y)){(dynamic, (dynamic, core::int*) →* dynamic) →* dynamic};
- y = z as{TypeError,ForDynamic} core::int*;
+static method functionExpressionInvocation(core::List<core::int> o) → void {
+ core::int y = o.{core::Iterable::fold}{<T extends core::Object? = dynamic>(T%, (T%, core::int) → T%) → T%}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ core::int z = o.{core::Iterable::fold}{<T extends core::Object? = dynamic>(T%, (T%, core::int) → T%) → T%}<core::int>(0, (core::int x, core::int y) → core::int => x.{core::num::+}(y){(core::num) → core::int}){(core::int, (core::int, core::int) → core::int) → core::int};
+ y = z;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart
index 73bbfa1..48404eb 100644
--- a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline.expect
index 7a24e2d..9964182 100644
--- a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline_modelled.expect
index f6ecc9b..c3f4d33 100644
--- a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.expect
index 7241ba2..e4a0657 100644
--- a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -36,34 +36,24 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method m(dynamic x) → dynamic
return x;
- method g(core::int* x) → dynamic
+ method g(core::int x) → dynamic
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method m<T extends core::Object* = dynamic>(self::D::m::T* x) → self::D::m::T*
+ method m<T extends core::Object? = dynamic>(self::D::m::T% x) → self::D::m::T%
return x;
- method g<T extends core::Object* = dynamic>(self::D::g::T* x) → self::D::g::T*
+ method g<T extends core::Object? = dynamic>(self::D::g::T% x) → self::D::g::T%
return x;
}
static method main() → dynamic {
- core::int* y = (new self::D::•() as self::C*).{self::C::m}(42){(dynamic) →* dynamic} as{TypeError,ForDynamic} core::int*;
+ core::int y = (new self::D::•() as{ForNonNullableByDefault} self::C).{self::C::m}(42){(dynamic) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.modular.expect
index 7241ba2..e4a0657 100644
--- a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -36,34 +36,24 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method m(dynamic x) → dynamic
return x;
- method g(core::int* x) → dynamic
+ method g(core::int x) → dynamic
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method m<T extends core::Object* = dynamic>(self::D::m::T* x) → self::D::m::T*
+ method m<T extends core::Object? = dynamic>(self::D::m::T% x) → self::D::m::T%
return x;
- method g<T extends core::Object* = dynamic>(self::D::g::T* x) → self::D::g::T*
+ method g<T extends core::Object? = dynamic>(self::D::g::T% x) → self::D::g::T%
return x;
}
static method main() → dynamic {
- core::int* y = (new self::D::•() as self::C*).{self::C::m}(42){(dynamic) →* dynamic} as{TypeError,ForDynamic} core::int*;
+ core::int y = (new self::D::•() as{ForNonNullableByDefault} self::C).{self::C::m}(42){(dynamic) → dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.outline.expect
index 1f56a3f..b5123bf 100644
--- a/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_handle_override_of_non_generic_with_generic.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -36,29 +36,19 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method m(dynamic x) → dynamic
;
- method g(core::int* x) → dynamic
+ method g(core::int x) → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- method m<T extends core::Object* = dynamic>(self::D::m::T* x) → self::D::m::T*
+ method m<T extends core::Object? = dynamic>(self::D::m::T% x) → self::D::m::T%
;
- method g<T extends core::Object* = dynamic>(self::D::g::T* x) → self::D::g::T*
+ method g<T extends core::Object? = dynamic>(self::D::g::T% x) → self::D::g::T%
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart
index c6130e2..03f1b63 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> extends D<T> {
- f<U>(x) {}
+ f<U>(x) => throw '';
}
class D<T> {
- F<U> f<U>(U u) => null;
+ F<U> f<U>(U u) => throw '';
}
typedef void F<V>(V v);
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline.expect
index d66ee02..d011015 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class C<T> extends D<T> {
- f<U>(x) {}
+ f<U>(x) => throw '';
}
class D<T> {
- F<U> f<U>(U u) => null;
+ F<U> f<U>(U u) => throw '';
}
typedef void F<V>(V v);
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline_modelled.expect
index 3c49c2f..6a8757b 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class C<T> extends D<T> {
- f<U>(x) {}
+ f<U>(x) => throw '';
}
class D<T> {
- F<U> f<U>(U u) => null;
+ F<U> f<U>(U u) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.expect
index 6d57e34..9a2c836 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.expect
@@ -1,29 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant V extends core::Object? = dynamic> = (V%) → void;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::f::U*) →* void {}
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::f::U%) → void
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → (self::D::f::U*) →* void
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → (self::D::f::U%) → void
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.modular.expect
index 6d57e34..9a2c836 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.modular.expect
@@ -1,29 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant V extends core::Object? = dynamic> = (V%) → void;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::f::U*) →* void {}
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::f::U%) → void
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → (self::D::f::U*) →* void
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → (self::D::f::U%) → void
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.outline.expect
index e555d5a..15d9665 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant V extends core::Object? = dynamic> = (V%) → void;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::f::U*) →* void
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::f::U%) → void
;
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → (self::D::f::U*) →* void
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → (self::D::f::U%) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.transformed.expect
index 6d57e34..9a2c836 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type.dart.weak.transformed.expect
@@ -1,29 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant V extends core::Object* = dynamic> = (V*) →* void;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<contravariant V extends core::Object? = dynamic> = (V%) → void;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::f::U*) →* void {}
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::f::U%) → void
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → (self::D::f::U*) →* void
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → (self::D::f::U%) → void
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart
index 2ba38e0..8ca88c6 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline.expect
index 709c06d..7bcb050 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> extends D<T> {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline_modelled.expect
index 2421964..6958c93 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class D<T> {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.expect
index 58ca700..b3a4c4c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef G<V extends core::Object? = dynamic> = () → core::List<V%>;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(() →* core::List<self::C::f::U*>* g) → void
+ method f<U extends core::Object? = dynamic>(() → core::List<self::C::f::U%> g) → void
return null;
}
-abstract class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract method f<U extends core::Object* = dynamic>(() →* core::List<self::D::f::U*>* g) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f<U extends core::Object? = dynamic>(() → core::List<self::D::f::U%> g) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.modular.expect
index 58ca700..b3a4c4c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef G<V extends core::Object? = dynamic> = () → core::List<V%>;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(() →* core::List<self::C::f::U*>* g) → void
+ method f<U extends core::Object? = dynamic>(() → core::List<self::C::f::U%> g) → void
return null;
}
-abstract class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract method f<U extends core::Object* = dynamic>(() →* core::List<self::D::f::U*>* g) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f<U extends core::Object? = dynamic>(() → core::List<self::D::f::U%> g) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.outline.expect
index 49d55a4..e0c0d79 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef G<V extends core::Object? = dynamic> = () → core::List<V%>;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
;
- method f<U extends core::Object* = dynamic>(() →* core::List<self::C::f::U*>* g) → void
+ method f<U extends core::Object? = dynamic>(() → core::List<self::C::f::U%> g) → void
;
}
-abstract class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- abstract method f<U extends core::Object* = dynamic>(() →* core::List<self::D::f::U*>* g) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f<U extends core::Object? = dynamic>(() → core::List<self::D::f::U%> g) → void;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.transformed.expect
index 58ca700..b3a4c4c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_parameter_type2.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef G<V extends core::Object* = dynamic> = () →* core::List<V*>*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef G<V extends core::Object? = dynamic> = () → core::List<V%>;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(() →* core::List<self::C::f::U*>* g) → void
+ method f<U extends core::Object? = dynamic>(() → core::List<self::C::f::U%> g) → void
return null;
}
-abstract class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+abstract class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract method f<U extends core::Object* = dynamic>(() →* core::List<self::D::f::U*>* g) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f<U extends core::Object? = dynamic>(() → core::List<self::D::f::U%> g) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart
index 42fabfa..a8a848f 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> extends D<T> {
- f<U>(x) {}
+ f<U>(x) => throw '';
}
class D<T> {
- F<U> f<U>(U u) => null;
+ F<U> f<U>(U u) => throw '';
}
typedef V F<V>();
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline.expect
index fe58fcb..183a5c1 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class C<T> extends D<T> {
- f<U>(x) {}
+ f<U>(x) => throw '';
}
class D<T> {
- F<U> f<U>(U u) => null;
+ F<U> f<U>(U u) => throw '';
}
typedef V F<V>();
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline_modelled.expect
index 1669140..d4714d1 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class C<T> extends D<T> {
- f<U>(x) {}
+ f<U>(x) => throw '';
}
class D<T> {
- F<U> f<U>(U u) => null;
+ F<U> f<U>(U u) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.expect
index 60d43bc..79957b0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.expect
@@ -1,29 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<V extends core::Object* = dynamic> = () →* V*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<V extends core::Object? = dynamic> = () → V%;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → () →* self::C::f::U* {}
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → () → self::C::f::U%
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → () →* self::D::f::U*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → () → self::D::f::U%
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.modular.expect
index 60d43bc..79957b0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.modular.expect
@@ -1,29 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<V extends core::Object* = dynamic> = () →* V*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<V extends core::Object? = dynamic> = () → V%;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → () →* self::C::f::U* {}
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → () → self::C::f::U%
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → () →* self::D::f::U*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → () → self::D::f::U%
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.outline.expect
index a085008..67aaabb 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<V extends core::Object* = dynamic> = () →* V*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<V extends core::Object? = dynamic> = () → V%;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → () →* self::C::f::U*
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → () → self::C::f::U%
;
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → () →* self::D::f::U*
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → () → self::D::f::U%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.transformed.expect
index 60d43bc..79957b0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_function_return_type.dart.weak.transformed.expect
@@ -1,29 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<V extends core::Object* = dynamic> = () →* V*;
-class C<T extends core::Object* = dynamic> extends self::D<self::C::T*> {
- synthetic constructor •() → self::C<self::C::T*>*
+typedef F<V extends core::Object? = dynamic> = () → V%;
+class C<T extends core::Object? = dynamic> extends self::D<self::C::T%> {
+ synthetic constructor •() → self::C<self::C::T%>
: super self::D::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → () →* self::C::f::U* {}
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → () → self::C::f::U%
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::D::f::U* u) → () →* self::D::f::U*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::D::f::U% u) → () → self::D::f::U%
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart
index 4787183..62d4090 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect
index a033796..f285551 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.expect
@@ -2,81 +2,81 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:26:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:31:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:33:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:34:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:45:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:50:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:51:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:73:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
-// - 'Object' is from 'dart:core'.
-// Try specifying type arguments explicitly so that they conform to the bounds.
-// . /*@target=C.m*/ m);
-// ^
-//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:75:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:82:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:77:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:84:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:88:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:91:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// . /*@target=C.m*/ m);
// ^
//
@@ -114,10 +114,10 @@
self::takeIIO(#C2);
self::takeDDO(#C3);
self::takeOOI(#C5 as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in #C4 as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in #C4 as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON(#C5 as{TypeError} (core::Object*, core::Object*) →* core::num*);
@@ -132,10 +132,10 @@
self::takeIIO(#C7);
self::takeDDO(#C8);
self::takeOOI(#C10 as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in #C9 as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in #C9 as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON(#C10 as{TypeError} (core::Object*, core::Object*) →* core::num*);
@@ -152,10 +152,10 @@
self::takeOON((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOO((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOI((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:88:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
. /*@target=C.m*/ m);
^" in (new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::num*>) as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:91:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
. /*@target=C.m*/ m);
^" in (new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::num*>) as{TypeError} (core::int*, core::double*) →* core::double*);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.modular.expect
index a033796..f285551 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.modular.expect
@@ -2,81 +2,81 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:26:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:31:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:33:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:34:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:45:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:50:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:51:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:73:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
-// - 'Object' is from 'dart:core'.
-// Try specifying type arguments explicitly so that they conform to the bounds.
-// . /*@target=C.m*/ m);
-// ^
-//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:75:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:82:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:77:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:84:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:88:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:91:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// . /*@target=C.m*/ m);
// ^
//
@@ -114,10 +114,10 @@
self::takeIIO(#C2);
self::takeDDO(#C3);
self::takeOOI(#C5 as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in #C4 as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in #C4 as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON(#C5 as{TypeError} (core::Object*, core::Object*) →* core::num*);
@@ -132,10 +132,10 @@
self::takeIIO(#C7);
self::takeDDO(#C8);
self::takeOOI(#C10 as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in #C9 as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in #C9 as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON(#C10 as{TypeError} (core::Object*, core::Object*) →* core::num*);
@@ -152,10 +152,10 @@
self::takeOON((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOO((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOI((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:88:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
. /*@target=C.m*/ m);
^" in (new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::num*>) as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:91:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
. /*@target=C.m*/ m);
^" in (new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::num*>) as{TypeError} (core::int*, core::double*) →* core::double*);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect
index a033796..f285551 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart.weak.transformed.expect
@@ -2,81 +2,81 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:26:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:31:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:33:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:34:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:45:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:50:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:51:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:73:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
-// - 'Object' is from 'dart:core'.
-// Try specifying type arguments explicitly so that they conform to the bounds.
-// . /*@target=C.m*/ m);
-// ^
-//
// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:75:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:82:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:77:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:84:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:88:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
// . /*@target=C.m*/ m);
// ^
//
-// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:91:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
// . /*@target=C.m*/ m);
// ^
//
@@ -114,10 +114,10 @@
self::takeIIO(#C2);
self::takeDDO(#C3);
self::takeOOI(#C5 as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in #C4 as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:32:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
^" in #C4 as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON(#C5 as{TypeError} (core::Object*, core::Object*) →* core::num*);
@@ -132,10 +132,10 @@
self::takeIIO(#C7);
self::takeDDO(#C8);
self::takeOOI(#C10 as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:48:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in #C9 as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:49:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
^" in #C9 as{TypeError} (core::int*, core::double*) →* core::double*);
self::takeOON(#C10 as{TypeError} (core::Object*, core::Object*) →* core::num*);
@@ -152,10 +152,10 @@
self::takeOON((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOO((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::num*);
self::takeOOI((new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::Object*>) as{TypeError} (core::Object*, core::Object*) →* core::int*);
- self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:86:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:88:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
. /*@target=C.m*/ m);
^" in (new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::num*>) as{TypeError} (core::double*, core::int*) →* core::int*);
- self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:89:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation.dart:91:29: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
. /*@target=C.m*/ m);
^" in (new self::C::•().{self::C::m}{<T extends core::num*>(T*, T*) →* T*}<core::num*>) as{TypeError} (core::int*, core::double*) →* core::double*);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart
new file mode 100644
index 0000000..cf4d948
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart
@@ -0,0 +1,105 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:math' as math;
+import 'dart:math' show min;
+
+class C {
+ T m<T extends num>(T x, T y) => throw '';
+}
+
+test() {
+ takeIII(math.max);
+ takeDDD(math.max);
+ takeNNN(math.max);
+ takeIDN(math.max);
+ takeDIN(math.max);
+ takeIIN(math.max);
+ takeDDN(math.max);
+ takeIIO(math.max);
+ takeDDO(math.max);
+
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ takeIDI(
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ takeDID(
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+
+// Also test SimpleIdentifier
+ takeIII(min);
+ takeDDD(min);
+ takeNNN(min);
+ takeIDN(min);
+ takeDIN(min);
+ takeIIN(min);
+ takeDDN(min);
+ takeIIO(min);
+ takeDDO(min);
+
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+
+// Also PropertyAccess
+ takeIII(new C(). /*@target=C.m*/ m);
+ takeDDD(new C(). /*@target=C.m*/ m);
+ takeNNN(new C(). /*@target=C.m*/ m);
+ takeIDN(new C(). /*@target=C.m*/ m);
+ takeDIN(new C(). /*@target=C.m*/ m);
+ takeIIN(new C(). /*@target=C.m*/ m);
+ takeDDN(new C(). /*@target=C.m*/ m);
+ takeIIO(new C(). /*@target=C.m*/ m);
+ takeDDO(new C(). /*@target=C.m*/ m);
+
+// Note: this is a warning because a downcast of a method tear-off could work
+// (derived method can be a subtype):
+//
+// class D extends C {
+// S m<S extends num>(Object x, Object y);
+// }
+//
+// That's legal because we're loosening parameter types.
+//
+// We do issue the inference error though, similar to generic function calls.
+ takeOON(/*error:COULD_NOT_INFER,info:DOWN_CAST_COMPOSITE*/ new C()
+ . /*@target=C.m*/ m);
+ takeOOO(/*error:COULD_NOT_INFER,info:DOWN_CAST_COMPOSITE*/ new C()
+ . /*@target=C.m*/ m);
+
+// Note: this is a warning because a downcast of a method tear-off could work
+// in "normal" Dart, due to bivariance.
+//
+// We do issue the inference error though, similar to generic function calls.
+ takeOOI(/*error:COULD_NOT_INFER,info:DOWN_CAST_COMPOSITE*/ new C()
+ . /*@target=C.m*/ m);
+
+ takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ new C()
+ . /*@target=C.m*/ m);
+ takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ new C()
+ . /*@target=C.m*/ m);
+}
+
+void takeIII(int fn(int a, int b)) {}
+void takeDDD(double fn(double a, double b)) {}
+void takeIDI(int fn(double a, int b)) {}
+void takeDID(double fn(int a, double b)) {}
+void takeIDN(num fn(double a, int b)) {}
+void takeDIN(num fn(int a, double b)) {}
+void takeIIN(num fn(int a, int b)) {}
+void takeDDN(num fn(double a, double b)) {}
+void takeNNN(num fn(num a, num b)) {}
+void takeOON(num fn(Object a, Object b)) {}
+void takeOOO(num fn(Object a, Object b)) {}
+void takeOOI(int fn(Object a, Object b)) {}
+void takeIIO(Object fn(int a, int b)) {}
+void takeDDO(Object fn(double a, double b)) {}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.textual_outline.expect
new file mode 100644
index 0000000..df9caf1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.textual_outline.expect
@@ -0,0 +1,25 @@
+library test;
+
+import 'dart:math' as math;
+import 'dart:math' show min;
+
+class C {
+ T m<T extends num>(T x, T y) => throw '';
+}
+
+test() {}
+void takeIII(int fn(int a, int b)) {}
+void takeDDD(double fn(double a, double b)) {}
+void takeIDI(int fn(double a, int b)) {}
+void takeDID(double fn(int a, double b)) {}
+void takeIDN(num fn(double a, int b)) {}
+void takeDIN(num fn(int a, double b)) {}
+void takeIIN(num fn(int a, int b)) {}
+void takeDDN(num fn(double a, double b)) {}
+void takeNNN(num fn(num a, num b)) {}
+void takeOON(num fn(Object a, Object b)) {}
+void takeOOO(num fn(Object a, Object b)) {}
+void takeOOI(int fn(Object a, Object b)) {}
+void takeIIO(Object fn(int a, int b)) {}
+void takeDDO(Object fn(double a, double b)) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..c62a9cd
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.textual_outline_modelled.expect
@@ -0,0 +1,25 @@
+library test;
+
+import 'dart:math' as math;
+import 'dart:math' show min;
+
+class C {
+ T m<T extends num>(T x, T y) => throw '';
+}
+
+main() {}
+test() {}
+void takeDDD(double fn(double a, double b)) {}
+void takeDDN(num fn(double a, double b)) {}
+void takeDDO(Object fn(double a, double b)) {}
+void takeDID(double fn(int a, double b)) {}
+void takeDIN(num fn(int a, double b)) {}
+void takeIDI(int fn(double a, int b)) {}
+void takeIDN(num fn(double a, int b)) {}
+void takeIII(int fn(int a, int b)) {}
+void takeIIN(num fn(int a, int b)) {}
+void takeIIO(Object fn(int a, int b)) {}
+void takeNNN(num fn(num a, num b)) {}
+void takeOOI(int fn(Object a, Object b)) {}
+void takeOON(num fn(Object a, Object b)) {}
+void takeOOO(num fn(Object a, Object b)) {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.expect
new file mode 100644
index 0000000..13d3bf3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.expect
@@ -0,0 +1,251 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:85:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:87:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// . /*@target=C.m*/ m);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:math" as math;
+import "dart:math" show min;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+ method m<T extends core::num>(self::C::m::T x, self::C::m::T y) → self::C::m::T
+ return throw "";
+}
+static method test() → dynamic {
+ self::takeIII(#C2);
+ self::takeDDD(#C3);
+ self::takeNNN(#C4);
+ self::takeIDN(#C4);
+ self::takeDIN(#C4);
+ self::takeIIN(#C2);
+ self::takeDDN(#C3);
+ self::takeIIO(#C2);
+ self::takeDDO(#C3);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ ^" in #C4 as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ ^" in #C4 as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeIII(#C7);
+ self::takeDDD(#C8);
+ self::takeNNN(#C9);
+ self::takeIDN(#C9);
+ self::takeDIN(#C9);
+ self::takeIIN(#C7);
+ self::takeDDN(#C8);
+ self::takeIIO(#C7);
+ self::takeDDO(#C8);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ ^" in #C9 as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ ^" in #C9 as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeIII(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDD(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeNNN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeIDN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeDIN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeIIN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeIIO(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDO(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:85:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>) as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:87:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>) as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+}
+static method takeIII((core::int, core::int) → core::int fn) → void {}
+static method takeDDD((core::double, core::double) → core::double fn) → void {}
+static method takeIDI((core::double, core::int) → core::int fn) → void {}
+static method takeDID((core::int, core::double) → core::double fn) → void {}
+static method takeIDN((core::double, core::int) → core::num fn) → void {}
+static method takeDIN((core::int, core::double) → core::num fn) → void {}
+static method takeIIN((core::int, core::int) → core::num fn) → void {}
+static method takeDDN((core::double, core::double) → core::num fn) → void {}
+static method takeNNN((core::num, core::num) → core::num fn) → void {}
+static method takeOON((core::Object, core::Object) → core::num fn) → void {}
+static method takeOOO((core::Object, core::Object) → core::num fn) → void {}
+static method takeOOI((core::Object, core::Object) → core::int fn) → void {}
+static method takeIIO((core::int, core::int) → core::Object fn) → void {}
+static method takeDDO((core::double, core::double) → core::Object fn) → void {}
+static method main() → dynamic {}
+
+constants {
+ #C1 = static-tearoff math::max
+ #C2 = instantiation #C1 <core::int*>
+ #C3 = instantiation #C1 <core::double*>
+ #C4 = instantiation #C1 <core::num*>
+ #C5 = instantiation #C1 <core::Object*>
+ #C6 = static-tearoff math::min
+ #C7 = instantiation #C6 <core::int*>
+ #C8 = instantiation #C6 <core::double*>
+ #C9 = instantiation #C6 <core::num*>
+ #C10 = instantiation #C6 <core::Object*>
+}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.modular.expect
new file mode 100644
index 0000000..13d3bf3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.modular.expect
@@ -0,0 +1,251 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:85:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:87:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// . /*@target=C.m*/ m);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:math" as math;
+import "dart:math" show min;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+ method m<T extends core::num>(self::C::m::T x, self::C::m::T y) → self::C::m::T
+ return throw "";
+}
+static method test() → dynamic {
+ self::takeIII(#C2);
+ self::takeDDD(#C3);
+ self::takeNNN(#C4);
+ self::takeIDN(#C4);
+ self::takeDIN(#C4);
+ self::takeIIN(#C2);
+ self::takeDDN(#C3);
+ self::takeIIO(#C2);
+ self::takeDDO(#C3);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ ^" in #C4 as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ ^" in #C4 as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeIII(#C7);
+ self::takeDDD(#C8);
+ self::takeNNN(#C9);
+ self::takeIDN(#C9);
+ self::takeDIN(#C9);
+ self::takeIIN(#C7);
+ self::takeDDN(#C8);
+ self::takeIIO(#C7);
+ self::takeDDO(#C8);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ ^" in #C9 as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ ^" in #C9 as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeIII(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDD(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeNNN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeIDN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeDIN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeIIN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeIIO(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDO(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:85:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>) as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:87:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>) as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+}
+static method takeIII((core::int, core::int) → core::int fn) → void {}
+static method takeDDD((core::double, core::double) → core::double fn) → void {}
+static method takeIDI((core::double, core::int) → core::int fn) → void {}
+static method takeDID((core::int, core::double) → core::double fn) → void {}
+static method takeIDN((core::double, core::int) → core::num fn) → void {}
+static method takeDIN((core::int, core::double) → core::num fn) → void {}
+static method takeIIN((core::int, core::int) → core::num fn) → void {}
+static method takeDDN((core::double, core::double) → core::num fn) → void {}
+static method takeNNN((core::num, core::num) → core::num fn) → void {}
+static method takeOON((core::Object, core::Object) → core::num fn) → void {}
+static method takeOOO((core::Object, core::Object) → core::num fn) → void {}
+static method takeOOI((core::Object, core::Object) → core::int fn) → void {}
+static method takeIIO((core::int, core::int) → core::Object fn) → void {}
+static method takeDDO((core::double, core::double) → core::Object fn) → void {}
+static method main() → dynamic {}
+
+constants {
+ #C1 = static-tearoff math::max
+ #C2 = instantiation #C1 <core::int*>
+ #C3 = instantiation #C1 <core::double*>
+ #C4 = instantiation #C1 <core::num*>
+ #C5 = instantiation #C1 <core::Object*>
+ #C6 = static-tearoff math::min
+ #C7 = instantiation #C6 <core::int*>
+ #C8 = instantiation #C6 <core::double*>
+ #C9 = instantiation #C6 <core::num*>
+ #C10 = instantiation #C6 <core::Object*>
+}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.outline.expect
new file mode 100644
index 0000000..34f3e72
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.outline.expect
@@ -0,0 +1,45 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:math" as math;
+import "dart:math" show min;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ ;
+ method m<T extends core::num>(self::C::m::T x, self::C::m::T y) → self::C::m::T
+ ;
+}
+static method test() → dynamic
+ ;
+static method takeIII((core::int, core::int) → core::int fn) → void
+ ;
+static method takeDDD((core::double, core::double) → core::double fn) → void
+ ;
+static method takeIDI((core::double, core::int) → core::int fn) → void
+ ;
+static method takeDID((core::int, core::double) → core::double fn) → void
+ ;
+static method takeIDN((core::double, core::int) → core::num fn) → void
+ ;
+static method takeDIN((core::int, core::double) → core::num fn) → void
+ ;
+static method takeIIN((core::int, core::int) → core::num fn) → void
+ ;
+static method takeDDN((core::double, core::double) → core::num fn) → void
+ ;
+static method takeNNN((core::num, core::num) → core::num fn) → void
+ ;
+static method takeOON((core::Object, core::Object) → core::num fn) → void
+ ;
+static method takeOOO((core::Object, core::Object) → core::num fn) → void
+ ;
+static method takeOOI((core::Object, core::Object) → core::int fn) → void
+ ;
+static method takeIIO((core::int, core::int) → core::Object fn) → void
+ ;
+static method takeDDO((core::double, core::double) → core::Object fn) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.transformed.expect
new file mode 100644
index 0000000..13d3bf3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart.weak.transformed.expect
@@ -0,0 +1,251 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: Inferred type argument 'Object' doesn't conform to the bound 'num' of the type variable 'T' on 'T Function<T extends num>(T, T)'.
+// - 'Object' is from 'dart:core'.
+// Try specifying type arguments explicitly so that they conform to the bounds.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+// - 'Object' is from 'dart:core'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:85:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+// . /*@target=C.m*/ m);
+// ^
+//
+// pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:87:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+// . /*@target=C.m*/ m);
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+import "dart:math" as math;
+import "dart:math" show min;
+
+class C extends core::Object {
+ synthetic constructor •() → self::C
+ : super core::Object::•()
+ ;
+ method m<T extends core::num>(self::C::m::T x, self::C::m::T y) → self::C::m::T
+ return throw "";
+}
+static method test() → dynamic {
+ self::takeIII(#C2);
+ self::takeDDD(#C3);
+ self::takeNNN(#C4);
+ self::takeIDN(#C4);
+ self::takeDIN(#C4);
+ self::takeIIN(#C2);
+ self::takeDDN(#C3);
+ self::takeIIO(#C2);
+ self::takeDDO(#C3);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:26:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:28:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ ^" in #C4 as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:30:73: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ /*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ math.max);
+ ^" in #C4 as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:31:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:32:70: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ math.max);
+ ^" in #C5 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeIII(#C7);
+ self::takeDDD(#C8);
+ self::takeNNN(#C9);
+ self::takeIDN(#C9);
+ self::takeDIN(#C9);
+ self::takeIIN(#C7);
+ self::takeDDN(#C8);
+ self::takeIIO(#C7);
+ self::takeDDO(#C8);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:45:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOI(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:46:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ takeIDI(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ ^" in #C9 as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:47:72: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ takeDID(/*error:COULD_NOT_INFER,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ min);
+ ^" in #C9 as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:48:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOON(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:49:65: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ takeOOO(/*error:COULD_NOT_INFER,error:INVALID_CAST_FUNCTION*/ min);
+ ^" in #C10 as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeIII(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDD(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeNNN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeIDN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeDIN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>);
+ self::takeIIN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDN(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeIIO(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::int>);
+ self::takeDDO(new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::double>);
+ self::takeOON(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:73:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOO(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:75:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'num Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::num);
+ self::takeOOI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:82:25: Error: The argument type 'Object Function(Object, Object)' can't be assigned to the parameter type 'int Function(Object, Object)'.
+ - 'Object' is from 'dart:core'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::Object>) as{TypeError,ForNonNullableByDefault} (core::Object, core::Object) → core::int);
+ self::takeIDI(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:85:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'int Function(double, int)'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>) as{TypeError,ForNonNullableByDefault} (core::double, core::int) → core::int);
+ self::takeDID(invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_generic_instantiation2.dart:87:25: Error: The argument type 'num Function(num, num)' can't be assigned to the parameter type 'double Function(int, double)'.
+ . /*@target=C.m*/ m);
+ ^" in (new self::C::•().{self::C::m}{<T extends core::num>(T, T) → T}<core::num>) as{TypeError,ForNonNullableByDefault} (core::int, core::double) → core::double);
+}
+static method takeIII((core::int, core::int) → core::int fn) → void {}
+static method takeDDD((core::double, core::double) → core::double fn) → void {}
+static method takeIDI((core::double, core::int) → core::int fn) → void {}
+static method takeDID((core::int, core::double) → core::double fn) → void {}
+static method takeIDN((core::double, core::int) → core::num fn) → void {}
+static method takeDIN((core::int, core::double) → core::num fn) → void {}
+static method takeIIN((core::int, core::int) → core::num fn) → void {}
+static method takeDDN((core::double, core::double) → core::num fn) → void {}
+static method takeNNN((core::num, core::num) → core::num fn) → void {}
+static method takeOON((core::Object, core::Object) → core::num fn) → void {}
+static method takeOOO((core::Object, core::Object) → core::num fn) → void {}
+static method takeOOI((core::Object, core::Object) → core::int fn) → void {}
+static method takeIIO((core::int, core::int) → core::Object fn) → void {}
+static method takeDDO((core::double, core::double) → core::Object fn) → void {}
+static method main() → dynamic {}
+
+constants {
+ #C1 = static-tearoff math::max
+ #C2 = instantiation #C1 <core::int*>
+ #C3 = instantiation #C1 <core::double*>
+ #C4 = instantiation #C1 <core::num*>
+ #C5 = instantiation #C1 <core::Object*>
+ #C6 = static-tearoff math::min
+ #C7 = instantiation #C6 <core::int*>
+ #C8 = instantiation #C6 <core::double*>
+ #C9 = instantiation #C6 <core::num*>
+ #C10 = instantiation #C6 <core::Object*>
+}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart
index f07480d..79ae9b53 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline.expect
index 9d4eae2..6dbee2c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline_modelled.expect
index 9d4eae2..6dbee2c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.expect
index 530ec6a..f0137b7 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method m<S extends core::Object* = dynamic>(self::D::m::S* x) → self::D::m::S*
+ method m<S extends core::Object? = dynamic>(self::D::m::S% x) → self::D::m::S%
return x;
}
static method main() → dynamic {
- core::int* y = new self::D::•().{self::D::m}<core::int*>(42){(core::int*) →* core::int*};
+ core::int y = new self::D::•().{self::D::m}<core::int>(42){(core::int) → core::int};
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.modular.expect
index 530ec6a..f0137b7 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.modular.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method m<S extends core::Object* = dynamic>(self::D::m::S* x) → self::D::m::S*
+ method m<S extends core::Object? = dynamic>(self::D::m::S% x) → self::D::m::S%
return x;
}
static method main() → dynamic {
- core::int* y = new self::D::•().{self::D::m}<core::int*>(42){(core::int*) →* core::int*};
+ core::int y = new self::D::•().{self::D::m}<core::int>(42){(core::int) → core::int};
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.outline.expect
index c579aa3..30924df 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- method m<S extends core::Object* = dynamic>(self::D::m::S* x) → self::D::m::S*
+ method m<S extends core::Object? = dynamic>(self::D::m::S% x) → self::D::m::S%
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.transformed.expect
index 530ec6a..f0137b7 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_generic_method_type.dart.weak.transformed.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method m<S extends core::Object* = dynamic>(self::D::m::S* x) → self::D::m::S*
+ method m<S extends core::Object? = dynamic>(self::D::m::S% x) → self::D::m::S%
return x;
}
static method main() → dynamic {
- core::int* y = new self::D::•().{self::D::m}<core::int*>(42){(core::int*) →* core::int*};
+ core::int y = new self::D::•().{self::D::m}<core::int>(42){(core::int) → core::int};
core::print(y);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart
index e828e03..21f6d44 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline.expect
index 4d02026..7454c6f 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:_foreign_helper' show JS;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline_modelled.expect
index 7a52b63..482fa81 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:_foreign_helper' show JS;
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.expect
index 4831a9f..b5eff67 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.expect
@@ -5,7 +5,7 @@
// import 'dart:_foreign_helper' show JS; // error
// ^
//
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -27,7 +27,7 @@
import "dart:_foreign_helper" show JS;
static method test() → dynamic {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:12:14: Error: Method not found: 'JS'.
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:12:14: Error: Method not found: 'JS'.
String x = JS('int', '42'); // error
^^";
invalid-type y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:13:34: Error: Method not found: 'JS'.
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.modular.expect
index 4831a9f..b5eff67 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.modular.expect
@@ -5,7 +5,7 @@
// import 'dart:_foreign_helper' show JS; // error
// ^
//
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -27,7 +27,7 @@
import "dart:_foreign_helper" show JS;
static method test() → dynamic {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:12:14: Error: Method not found: 'JS'.
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:12:14: Error: Method not found: 'JS'.
String x = JS('int', '42'); // error
^^";
invalid-type y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:13:34: Error: Method not found: 'JS'.
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.outline.expect
index e2d9cb9..aab17f7 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.outline.expect
@@ -5,7 +5,7 @@
// import 'dart:_foreign_helper' show JS; // error
// ^
//
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
diff --git a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.transformed.expect
index 23c34ad..dd30be9 100644
--- a/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -20,7 +20,7 @@
import "dart:_foreign_helper" show JS;
static method test() → dynamic {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:12:14: Error: Method not found: 'JS'.
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:12:14: Error: Method not found: 'JS'.
String x = JS('int', '42'); // error
^^";
invalid-type y = invalid-expression "pkg/front_end/testcases/inference/generic_methods_infer_js_builtin.dart:13:34: Error: Method not found: 'JS'.
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
index 956f7f0..b84cf0b 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart
@@ -1,14 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-void f() {
- List<String> y;
- Iterable<String> x = y. /*@ typeArgs=String* */ /*@target=Iterable.map*/ map(
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
+void f(List<String> y) {
+ Iterable<String> x = y. /*@typeArgs=String*/ /*@target=Iterable.map*/ map(
+ /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
z) =>
1.0);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline.expect
index 20442db..e6acce6 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-void f() {}
+void f(List<String> y) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline_modelled.expect
index a609d1d..3788019 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
main() {}
-void f() {}
+void f(List<String> y) {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.expect
index f3dc908..4ce7c8d 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.expect
@@ -1,18 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/generic_methods_inference_error.dart:12:11: Error: A value of type 'double' can't be returned from a function with return type 'String'.
// 1.0);
// ^
//
import self as self;
import "dart:core" as core;
-static method f() → void {
- core::List<core::String*>* y;
- core::Iterable<core::String*>* x = y.{core::Iterable::map}<core::String*>((core::String* z) → core::String* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+static method f(core::List<core::String> y) → void {
+ core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>((core::String z) → core::String => invalid-expression "pkg/front_end/testcases/inference/generic_methods_inference_error.dart:12:11: Error: A value of type 'double' can't be returned from a function with return type 'String'.
1.0);
- ^" in 1.0 as{TypeError} core::String*){((core::String*) →* core::String*) →* core::Iterable<core::String*>*};
+ ^" in 1.0 as{TypeError,ForNonNullableByDefault} core::String){((core::String) → core::String) → core::Iterable<core::String>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.modular.expect
index f3dc908..4ce7c8d 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.modular.expect
@@ -1,18 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/generic_methods_inference_error.dart:12:11: Error: A value of type 'double' can't be returned from a function with return type 'String'.
// 1.0);
// ^
//
import self as self;
import "dart:core" as core;
-static method f() → void {
- core::List<core::String*>* y;
- core::Iterable<core::String*>* x = y.{core::Iterable::map}<core::String*>((core::String* z) → core::String* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+static method f(core::List<core::String> y) → void {
+ core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>((core::String z) → core::String => invalid-expression "pkg/front_end/testcases/inference/generic_methods_inference_error.dart:12:11: Error: A value of type 'double' can't be returned from a function with return type 'String'.
1.0);
- ^" in 1.0 as{TypeError} core::String*){((core::String*) →* core::String*) →* core::Iterable<core::String*>*};
+ ^" in 1.0 as{TypeError,ForNonNullableByDefault} core::String){((core::String) → core::String) → core::Iterable<core::String>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.outline.expect
index 824697a..18dd20b 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method f() → void
+static method f(core::List<core::String> y) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.transformed.expect
index f3dc908..4ce7c8d 100644
--- a/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_inference_error.dart.weak.transformed.expect
@@ -1,18 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/generic_methods_inference_error.dart:12:11: Error: A value of type 'double' can't be returned from a function with return type 'String'.
// 1.0);
// ^
//
import self as self;
import "dart:core" as core;
-static method f() → void {
- core::List<core::String*>* y;
- core::Iterable<core::String*>* x = y.{core::Iterable::map}<core::String*>((core::String* z) → core::String* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_inference_error.dart:13:11: Error: A value of type 'double' can't be assigned to a variable of type 'String'.
+static method f(core::List<core::String> y) → void {
+ core::Iterable<core::String> x = y.{core::Iterable::map}<core::String>((core::String z) → core::String => invalid-expression "pkg/front_end/testcases/inference/generic_methods_inference_error.dart:12:11: Error: A value of type 'double' can't be returned from a function with return type 'String'.
1.0);
- ^" in 1.0 as{TypeError} core::String*){((core::String*) →* core::String*) →* core::Iterable<core::String*>*};
+ ^" in 1.0 as{TypeError,ForNonNullableByDefault} core::String){((core::String) → core::String) → core::Iterable<core::String>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart
index 789febd..4f9eafa 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart
@@ -1,46 +1,46 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-Future<int> make(int x) => (new /*@ typeArgs=int* */ Future(
- /*@ returnType=int* */ () => x));
+Future<int> make(int x) => (new /*@typeArgs=int*/ Future(
+ /*@returnType=int*/ () => x));
test() {
Iterable<Future<int>> list = <int>[1, 2, 3]
- . /*@ typeArgs=Future<int*>* */ /*@target=Iterable.map*/ map(make);
- Future<List<int>> results = Future. /*@ typeArgs=int* */ wait(list);
+ . /*@typeArgs=Future<int>*/ /*@target=Iterable.map*/ map(make);
+ Future<List<int>> results = Future. /*@typeArgs=int*/ wait(list);
Future<String> results2 =
- results. /*@ typeArgs=String* */ /*@target=Future.then*/ then(
- /*@ returnType=FutureOr<String*>* */ (List<int> list) => list
- . /*@ typeArgs=FutureOr<String*>* */ /*@target=Iterable.fold*/ fold(
+ results. /*@typeArgs=String*/ /*@target=Future.then*/ then(
+ /*@returnType=FutureOr<String>*/ (List<int> list) => list
+ . /*@typeArgs=FutureOr<String>*/ /*@target=Iterable.fold*/ fold(
'',
- /*@ returnType=FutureOr<String*>* */ (/*@ type=FutureOr<String*>* */ x,
- /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+ /*@returnType=FutureOr<String>*/ (/*@type=FutureOr<String>*/ x,
+ /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
y. /*@target=int.toString*/ toString()));
Future<String> results3 =
- results. /*@ typeArgs=String* */ /*@target=Future.then*/ then(
- /*@ returnType=FutureOr<String*>* */ (List<int> list) => list
- . /*@ typeArgs=FutureOr<String*>* */ /*@target=Iterable.fold*/ fold(
+ results. /*@typeArgs=String*/ /*@target=Future.then*/ then(
+ /*@returnType=FutureOr<String>*/ (List<int> list) => list
+ . /*@typeArgs=FutureOr<String>*/ /*@target=Iterable.fold*/ fold(
'',
- /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
+ /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
x,
- /*@ type=int* */ y) =>
+ /*@type=int*/ y) =>
x /*@target=String.+*/ +
y. /*@target=int.toString*/ toString()));
Future<String> results4 =
- results. /*@ typeArgs=String* */ /*@target=Future.then*/ then(
- /*@ returnType=String* */ (List<int> list) =>
+ results. /*@typeArgs=String*/ /*@target=Future.then*/ then(
+ /*@returnType=String*/ (List<int> list) =>
list. /*@target=Iterable.fold*/ fold<String>(
'',
- /*@ returnType=String* */ (/*@ type=String* */ x,
- /*@ type=int* */ y) =>
+ /*@returnType=String*/ (/*@type=String*/ x,
+ /*@type=int*/ y) =>
x /*@target=String.+*/ +
y. /*@target=int.toString*/ toString()));
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline.expect
index 99d9ed4..649c05e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline_modelled.expect
index 2756589..67fe832 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.expect
index 2f4c738..f0cbcc0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
+// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
// Try correcting the operator to an existing operator, or defining a '+' operator.
-// /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
-// ^
+// /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:111: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
-// /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
-// ^
+// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
+// /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
+// ^
//
import self as self;
import "dart:core" as core;
@@ -17,19 +17,19 @@
import "dart:async";
-static method make(core::int* x) → asy::Future<core::int*>*
- return asy::Future::•<core::int*>(() → core::int* => x);
+static method make(core::int x) → asy::Future<core::int>
+ return asy::Future::•<core::int>(() → core::int => x);
static method test() → dynamic {
- core::Iterable<asy::Future<core::int*>*>* list = <core::int*>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int*>*>(#C1){((core::int*) →* asy::Future<core::int*>*) →* core::Iterable<asy::Future<core::int*>*>*};
- asy::Future<core::List<core::int*>*>* results = asy::Future::wait<core::int*>(list);
- asy::Future<core::String*>* results2 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", (FutureOr<core::String*>* x, core::int* y) → FutureOr<core::String*>* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
+ core::Iterable<asy::Future<core::int>> list = <core::int>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int>>(#C1){((core::int) → asy::Future<core::int>) → core::Iterable<asy::Future<core::int>>};
+ asy::Future<core::List<core::int>> results = asy::Future::wait<core::int>(list);
+ asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → FutureOr<core::String> => list.{core::Iterable::fold}<FutureOr<core::String>>("", (FutureOr<core::String>x, core::int y) → FutureOr<core::String> => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
Try correcting the operator to an existing operator, or defining a '+' operator.
- /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
- ^" in x{<unresolved>}.+(y.{core::int::toString}(){() →* core::String*}) as{TypeError,ForDynamic} FutureOr<core::String*>*){(FutureOr<core::String*>*, (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*) →* FutureOr<core::String*>*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
- asy::Future<core::String*>* results3 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:111: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
- /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
- ^" in ((core::String* x, core::int* y) → core::String* => x.{core::String::+}(y.{core::int::toString}(){() →* core::String*}){(core::String*) →* core::String*}) as{TypeError} (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*){(FutureOr<core::String*>*, (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*) →* FutureOr<core::String*>*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
- asy::Future<core::String*>* results4 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → core::String* => list.{core::Iterable::fold}<core::String*>("", (core::String* x, core::int* y) → core::String* => x.{core::String::+}(y.{core::int::toString}(){() →* core::String*}){(core::String*) →* core::String*}){(core::String*, (core::String*, core::int*) →* core::String*) →* core::String*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
+ /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+ ^" in x{<unresolved>}.+(y.{core::int::toString}(){() → core::String}) as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::String>){(FutureOr<core::String>, (FutureOr<core::String>, core::int) → FutureOr<core::String>) → FutureOr<core::String>}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
+ asy::Future<core::String> results3 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → FutureOr<core::String> => list.{core::Iterable::fold}<FutureOr<core::String>>("", invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
+ /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
+ ^" in ((core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}(){() → core::String}){(core::String) → core::String}) as{TypeError,ForNonNullableByDefault} (FutureOr<core::String>, core::int) → FutureOr<core::String>){(FutureOr<core::String>, (FutureOr<core::String>, core::int) → FutureOr<core::String>) → FutureOr<core::String>}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
+ asy::Future<core::String> results4 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → core::String => list.{core::Iterable::fold}<core::String>("", (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}(){() → core::String}){(core::String) → core::String}){(core::String, (core::String, core::int) → core::String) → core::String}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.modular.expect
index 2f4c738..f0cbcc0 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.modular.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
+// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
// Try correcting the operator to an existing operator, or defining a '+' operator.
-// /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
-// ^
+// /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:111: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
-// /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
-// ^
+// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
+// /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
+// ^
//
import self as self;
import "dart:core" as core;
@@ -17,19 +17,19 @@
import "dart:async";
-static method make(core::int* x) → asy::Future<core::int*>*
- return asy::Future::•<core::int*>(() → core::int* => x);
+static method make(core::int x) → asy::Future<core::int>
+ return asy::Future::•<core::int>(() → core::int => x);
static method test() → dynamic {
- core::Iterable<asy::Future<core::int*>*>* list = <core::int*>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int*>*>(#C1){((core::int*) →* asy::Future<core::int*>*) →* core::Iterable<asy::Future<core::int*>*>*};
- asy::Future<core::List<core::int*>*>* results = asy::Future::wait<core::int*>(list);
- asy::Future<core::String*>* results2 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", (FutureOr<core::String*>* x, core::int* y) → FutureOr<core::String*>* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
+ core::Iterable<asy::Future<core::int>> list = <core::int>[1, 2, 3].{core::Iterable::map}<asy::Future<core::int>>(#C1){((core::int) → asy::Future<core::int>) → core::Iterable<asy::Future<core::int>>};
+ asy::Future<core::List<core::int>> results = asy::Future::wait<core::int>(list);
+ asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → FutureOr<core::String> => list.{core::Iterable::fold}<FutureOr<core::String>>("", (FutureOr<core::String>x, core::int y) → FutureOr<core::String> => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
Try correcting the operator to an existing operator, or defining a '+' operator.
- /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
- ^" in x{<unresolved>}.+(y.{core::int::toString}(){() →* core::String*}) as{TypeError,ForDynamic} FutureOr<core::String*>*){(FutureOr<core::String*>*, (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*) →* FutureOr<core::String*>*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
- asy::Future<core::String*>* results3 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:111: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
- /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
- ^" in ((core::String* x, core::int* y) → core::String* => x.{core::String::+}(y.{core::int::toString}(){() →* core::String*}){(core::String*) →* core::String*}) as{TypeError} (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*){(FutureOr<core::String*>*, (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*) →* FutureOr<core::String*>*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
- asy::Future<core::String*>* results4 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → core::String* => list.{core::Iterable::fold}<core::String*>("", (core::String* x, core::int* y) → core::String* => x.{core::String::+}(y.{core::int::toString}(){() →* core::String*}){(core::String*) →* core::String*}){(core::String*, (core::String*, core::int*) →* core::String*) →* core::String*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
+ /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+ ^" in x{<unresolved>}.+(y.{core::int::toString}(){() → core::String}) as{TypeError,ForDynamic,ForNonNullableByDefault} FutureOr<core::String>){(FutureOr<core::String>, (FutureOr<core::String>, core::int) → FutureOr<core::String>) → FutureOr<core::String>}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
+ asy::Future<core::String> results3 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → FutureOr<core::String> => list.{core::Iterable::fold}<FutureOr<core::String>>("", invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
+ /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
+ ^" in ((core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}(){() → core::String}){(core::String) → core::String}) as{TypeError,ForNonNullableByDefault} (FutureOr<core::String>, core::int) → FutureOr<core::String>){(FutureOr<core::String>, (FutureOr<core::String>, core::int) → FutureOr<core::String>) → FutureOr<core::String>}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
+ asy::Future<core::String> results4 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → core::String => list.{core::Iterable::fold}<core::String>("", (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}(){() → core::String}){(core::String) → core::String}){(core::String, (core::String, core::int) → core::String) → core::String}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.outline.expect
index abf425d..524cc39 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-static method make(core::int* x) → asy::Future<core::int*>*
+static method make(core::int x) → asy::Future<core::int>
;
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.transformed.expect
index 5a62ebc..8e606ae 100644
--- a/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
+// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
// Try correcting the operator to an existing operator, or defining a '+' operator.
-// /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
-// ^
+// /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+// ^
//
-// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:111: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
-// /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
-// ^
+// pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
+// /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
+// ^
//
import self as self;
import "dart:core" as core;
@@ -17,19 +17,19 @@
import "dart:async";
-static method make(core::int* x) → asy::Future<core::int*>*
- return asy::Future::•<core::int*>(() → core::int* => x);
+static method make(core::int x) → asy::Future<core::int>
+ return asy::Future::•<core::int>(() → core::int => x);
static method test() → dynamic {
- core::Iterable<asy::Future<core::int*>*>* list = core::_GrowableList::_literal3<core::int*>(1, 2, 3).{core::Iterable::map}<asy::Future<core::int*>*>(#C1){((core::int*) →* asy::Future<core::int*>*) →* core::Iterable<asy::Future<core::int*>*>*};
- asy::Future<core::List<core::int*>*>* results = asy::Future::wait<core::int*>(list);
- asy::Future<core::String*>* results2 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", (FutureOr<core::String*>* x, core::int* y) → FutureOr<core::String*>* => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:123: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
+ core::Iterable<asy::Future<core::int>> list = core::_GrowableList::_literal3<core::int>(1, 2, 3).{core::Iterable::map}<asy::Future<core::int>>(#C1){((core::int) → asy::Future<core::int>) → core::Iterable<asy::Future<core::int>>};
+ asy::Future<core::List<core::int>> results = asy::Future::wait<core::int>(list);
+ asy::Future<core::String> results2 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → FutureOr<core::String> => list.{core::Iterable::fold}<FutureOr<core::String>>("", (FutureOr<core::String>x, core::int y) → FutureOr<core::String> => invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:23:120: Error: The operator '+' isn't defined for the class 'FutureOr<String>'.
Try correcting the operator to an existing operator, or defining a '+' operator.
- /*@ type=int* */ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
- ^" in x{<unresolved>}.+(y.{core::int::toString}(){() →* core::String*})){(FutureOr<core::String*>*, (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*) →* FutureOr<core::String*>*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
- asy::Future<core::String*>* results3 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → FutureOr<core::String*>* => list.{core::Iterable::fold}<FutureOr<core::String*>*>("", invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:111: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
- /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@ returnType=String* */ (String
- ^" in ((core::String* x, core::int* y) → core::String* => x.{core::String::+}(y.{core::int::toString}(){() →* core::String*}){(core::String*) →* core::String*}) as{TypeError} (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*){(FutureOr<core::String*>*, (FutureOr<core::String*>*, core::int*) →* FutureOr<core::String*>*) →* FutureOr<core::String*>*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
- asy::Future<core::String*>* results4 = results.{asy::Future::then}<core::String*>((core::List<core::int*>* list) → core::String* => list.{core::Iterable::fold}<core::String*>("", (core::String* x, core::int* y) → core::String* => x.{core::String::+}(y.{core::int::toString}(){() →* core::String*}){(core::String*) →* core::String*}){(core::String*, (core::String*, core::int*) →* core::String*) →* core::String*}){((core::List<core::int*>*) →* FutureOr<core::String*>*, {onError: core::Function*}) →* asy::Future<core::String*>*};
+ /*@type=int*/ y) => /*info:DYNAMIC_CAST,info:DYNAMIC_INVOKE*/ x /*error:UNDEFINED_OPERATOR*/ +
+ ^" in x{<unresolved>}.+(y.{core::int::toString}(){() → core::String})){(FutureOr<core::String>, (FutureOr<core::String>, core::int) → FutureOr<core::String>) → FutureOr<core::String>}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
+ asy::Future<core::String> results3 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → FutureOr<core::String> => list.{core::Iterable::fold}<FutureOr<core::String>>("", invalid-expression "pkg/front_end/testcases/inference/generic_methods_iterable_and_future.dart:31:108: Error: The argument type 'String Function(String, int)' can't be assigned to the parameter type 'FutureOr<String> Function(FutureOr<String>, int)'.
+ /*info:INFERRED_TYPE_CLOSURE,error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ /*@returnType=String*/ (String
+ ^" in ((core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}(){() → core::String}){(core::String) → core::String}) as{TypeError,ForNonNullableByDefault} (FutureOr<core::String>, core::int) → FutureOr<core::String>){(FutureOr<core::String>, (FutureOr<core::String>, core::int) → FutureOr<core::String>) → FutureOr<core::String>}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
+ asy::Future<core::String> results4 = results.{asy::Future::then}<core::String>((core::List<core::int> list) → core::String => list.{core::Iterable::fold}<core::String>("", (core::String x, core::int y) → core::String => x.{core::String::+}(y.{core::int::toString}(){() → core::String}){(core::String) → core::String}){(core::String, (core::String, core::int) → core::String) → core::String}){((core::List<core::int>) → FutureOr<core::String>, {onError: core::Function?}) → asy::Future<core::String>};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart
index 0d2a532..89673c2 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:math' as math;
class Trace {
- List<Frame> frames = /*@ typeArgs=Frame* */ [];
+ List<Frame> frames = /*@typeArgs=Frame*/ [];
}
class Frame {
@@ -16,15 +16,15 @@
}
main() {
- List<Trace> traces = /*@ typeArgs=Trace* */ [];
- var /*@ type=int* */ longest =
- traces. /*@ typeArgs=int* */ /*@target=Iterable.map*/ map(
- /*@ returnType=int* */ (/*@ type=Trace* */ trace) {
+ List<Trace> traces = /*@typeArgs=Trace*/ [];
+ var /*@type=int*/ longest =
+ traces. /*@typeArgs=int*/ /*@target=Iterable.map*/ map(
+ /*@returnType=int*/ (/*@type=Trace*/ trace) {
return trace. /*@target=Trace.frames*/ frames
- . /*@ typeArgs=int* */ /*@target=Iterable.map*/ map(
- /*@ returnType=int* */ (/*@ type=Frame* */ frame) => frame
+ . /*@typeArgs=int*/ /*@target=Iterable.map*/ map(
+ /*@returnType=int*/ (/*@type=Frame*/ frame) => frame
. /*@target=Frame.location*/ location
. /*@target=String.length*/ length)
- . /*@ typeArgs=int* */ /*@target=Iterable.fold*/ fold(0, math.max);
- }). /*@ typeArgs=int* */ /*@target=Iterable.fold*/ fold(0, math.max);
+ . /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold(0, math.max);
+ }). /*@typeArgs=int*/ /*@target=Iterable.fold*/ fold(0, math.max);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline.expect
index 79c2848..5998d2c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:math' as math;
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline_modelled.expect
index 8401faf..2248ecd 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:math' as math;
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.expect
index 5a1deb3..dc3bf41 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.expect
@@ -1,46 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:math" as math;
class Trace extends core::Object {
- field core::List<self::Frame*>* frames = <self::Frame*>[];
- synthetic constructor •() → self::Trace*
+ field core::List<self::Frame> frames = <self::Frame>[];
+ synthetic constructor •() → self::Trace
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Frame extends core::Object {
- field core::String* location = "";
- synthetic constructor •() → self::Frame*
+ field core::String location = "";
+ synthetic constructor •() → self::Frame
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<self::Trace*>* traces = <self::Trace*>[];
- core::int* longest = traces.{core::Iterable::map}<core::int*>((self::Trace* trace) → core::int* {
- return trace.{self::Trace::frames}{core::List<self::Frame*>*}.{core::Iterable::map}<core::int*>((self::Frame* frame) → core::int* => frame.{self::Frame::location}{core::String*}.{core::String::length}{core::int*}){((self::Frame*) →* core::int*) →* core::Iterable<core::int*>*}.{core::Iterable::fold}<core::int*>(0, #C2){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- }){((self::Trace*) →* core::int*) →* core::Iterable<core::int*>*}.{core::Iterable::fold}<core::int*>(0, #C2){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
+ core::List<self::Trace> traces = <self::Trace>[];
+ core::int longest = traces.{core::Iterable::map}<core::int>((self::Trace trace) → core::int {
+ return trace.{self::Trace::frames}{core::List<self::Frame>}.{core::Iterable::map}<core::int>((self::Frame frame) → core::int => frame.{self::Frame::location}{core::String}.{core::String::length}{core::int}){((self::Frame) → core::int) → core::Iterable<core::int>}.{core::Iterable::fold}<core::int>(0, #C2){(core::int, (core::int, core::int) → core::int) → core::int};
+ }){((self::Trace) → core::int) → core::Iterable<core::int>}.{core::Iterable::fold}<core::int>(0, #C2){(core::int, (core::int, core::int) → core::int) → core::int};
}
constants {
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.modular.expect
index 5a1deb3..dc3bf41 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.modular.expect
@@ -1,46 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:math" as math;
class Trace extends core::Object {
- field core::List<self::Frame*>* frames = <self::Frame*>[];
- synthetic constructor •() → self::Trace*
+ field core::List<self::Frame> frames = <self::Frame>[];
+ synthetic constructor •() → self::Trace
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Frame extends core::Object {
- field core::String* location = "";
- synthetic constructor •() → self::Frame*
+ field core::String location = "";
+ synthetic constructor •() → self::Frame
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<self::Trace*>* traces = <self::Trace*>[];
- core::int* longest = traces.{core::Iterable::map}<core::int*>((self::Trace* trace) → core::int* {
- return trace.{self::Trace::frames}{core::List<self::Frame*>*}.{core::Iterable::map}<core::int*>((self::Frame* frame) → core::int* => frame.{self::Frame::location}{core::String*}.{core::String::length}{core::int*}){((self::Frame*) →* core::int*) →* core::Iterable<core::int*>*}.{core::Iterable::fold}<core::int*>(0, #C2){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- }){((self::Trace*) →* core::int*) →* core::Iterable<core::int*>*}.{core::Iterable::fold}<core::int*>(0, #C2){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
+ core::List<self::Trace> traces = <self::Trace>[];
+ core::int longest = traces.{core::Iterable::map}<core::int>((self::Trace trace) → core::int {
+ return trace.{self::Trace::frames}{core::List<self::Frame>}.{core::Iterable::map}<core::int>((self::Frame frame) → core::int => frame.{self::Frame::location}{core::String}.{core::String::length}{core::int}){((self::Frame) → core::int) → core::Iterable<core::int>}.{core::Iterable::fold}<core::int>(0, #C2){(core::int, (core::int, core::int) → core::int) → core::int};
+ }){((self::Trace) → core::int) → core::Iterable<core::int>}.{core::Iterable::fold}<core::int>(0, #C2){(core::int, (core::int, core::int) → core::int) → core::int};
}
constants {
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.outline.expect
index 3ab2c3c..2c0706c 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:math" as math;
class Trace extends core::Object {
- field core::List<self::Frame*>* frames;
- synthetic constructor •() → self::Trace*
+ field core::List<self::Frame> frames;
+ synthetic constructor •() → self::Trace
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Frame extends core::Object {
- field core::String* location;
- synthetic constructor •() → self::Frame*
+ field core::String location;
+ synthetic constructor •() → self::Frame
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.transformed.expect
index 28f2a02..f962667 100644
--- a/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_nested_generic_instantiation.dart.weak.transformed.expect
@@ -1,46 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:math" as math;
class Trace extends core::Object {
- field core::List<self::Frame*>* frames = core::_GrowableList::•<self::Frame*>(0);
- synthetic constructor •() → self::Trace*
+ field core::List<self::Frame> frames = core::_GrowableList::•<self::Frame>(0);
+ synthetic constructor •() → self::Trace
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Frame extends core::Object {
- field core::String* location = "";
- synthetic constructor •() → self::Frame*
+ field core::String location = "";
+ synthetic constructor •() → self::Frame
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<self::Trace*>* traces = core::_GrowableList::•<self::Trace*>(0);
- core::int* longest = traces.{core::Iterable::map}<core::int*>((self::Trace* trace) → core::int* {
- return trace.{self::Trace::frames}{core::List<self::Frame*>*}.{core::Iterable::map}<core::int*>((self::Frame* frame) → core::int* => frame.{self::Frame::location}{core::String*}.{core::String::length}{core::int*}){((self::Frame*) →* core::int*) →* core::Iterable<core::int*>*}.{core::Iterable::fold}<core::int*>(0, #C2){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
- }){((self::Trace*) →* core::int*) →* core::Iterable<core::int*>*}.{core::Iterable::fold}<core::int*>(0, #C2){(core::int*, (core::int*, core::int*) →* core::int*) →* core::int*};
+ core::List<self::Trace> traces = core::_GrowableList::•<self::Trace>(0);
+ core::int longest = traces.{core::Iterable::map}<core::int>((self::Trace trace) → core::int {
+ return trace.{self::Trace::frames}{core::List<self::Frame>}.{core::Iterable::map}<core::int>((self::Frame frame) → core::int => frame.{self::Frame::location}{core::String}.{core::String::length}{core::int}){((self::Frame) → core::int) → core::Iterable<core::int>}.{core::Iterable::fold}<core::int>(0, #C2){(core::int, (core::int, core::int) → core::int) → core::int};
+ }){((self::Trace) → core::int) → core::Iterable<core::int>}.{core::Iterable::fold}<core::int>(0, #C2){(core::int, (core::int, core::int) → core::int) → core::int};
}
constants {
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
index 2d47432..36e7f6e 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
typedef Iterable<num> F(int x);
typedef List<int> G(double x);
-T generic<T>(a(T _), b(T _)) => null;
+T generic<T>(a(T _), b(T _)) => throw '';
-main() {
- var /*@ type=(num*) ->* List<int*>* */ v = /*@ typeArgs=(num*) ->* List<int*>* */ generic(
+test() {
+ var /*@type=(num) -> List<int>*/ v = /*@typeArgs=(num) -> List<int>*/ generic(
/*@ returnType=Null */ (F f) => null,
/*@ returnType=Null */ (G g) => null);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline.expect
index bebea8a..c42a0f8 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
typedef Iterable<num> F(int x);
typedef List<int> G(double x);
-T generic<T>(a(T _), b(T _)) => null;
-main() {}
+T generic<T>(a(T _), b(T _)) => throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline_modelled.expect
index b5ba1cc..d698710 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T generic<T>(a(T _), b(T _)) => null;
-main() {}
+T generic<T>(a(T _), b(T _)) => throw '';
+test() {}
typedef Iterable<num> F(int x);
typedef List<int> G(double x);
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.expect
index 868f419..62338f9 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = (core::int*) →* core::Iterable<core::num*>*;
-typedef G = (core::double*) →* core::List<core::int*>*;
-static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
- return null;
-static method main() → dynamic {
- (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → Null => null, ((core::double*) →* core::List<core::int*>* g) → Null => null);
+typedef F = (core::int) → core::Iterable<core::num>;
+typedef G = (core::double) → core::List<core::int>;
+static method generic<T extends core::Object? = dynamic>((self::generic::T%) → dynamic a, (self::generic::T%) → dynamic b) → self::generic::T%
+ return throw "";
+static method test() → dynamic {
+ (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → Null => null, ((core::double) → core::List<core::int> g) → Null => null);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.modular.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.modular.expect
index 868f419..62338f9 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = (core::int*) →* core::Iterable<core::num*>*;
-typedef G = (core::double*) →* core::List<core::int*>*;
-static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
- return null;
-static method main() → dynamic {
- (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → Null => null, ((core::double*) →* core::List<core::int*>* g) → Null => null);
+typedef F = (core::int) → core::Iterable<core::num>;
+typedef G = (core::double) → core::List<core::int>;
+static method generic<T extends core::Object? = dynamic>((self::generic::T%) → dynamic a, (self::generic::T%) → dynamic b) → self::generic::T%
+ return throw "";
+static method test() → dynamic {
+ (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → Null => null, ((core::double) → core::List<core::int> g) → Null => null);
}
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.outline.expect
index 2afc98d..3c48ccb 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = (core::int*) →* core::Iterable<core::num*>*;
-typedef G = (core::double*) →* core::List<core::int*>*;
-static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
+typedef F = (core::int) → core::Iterable<core::num>;
+typedef G = (core::double) → core::List<core::int>;
+static method generic<T extends core::Object? = dynamic>((self::generic::T%) → dynamic a, (self::generic::T%) → dynamic b) → self::generic::T%
;
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.transformed.expect
index 868f419..62338f9 100644
--- a/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/generic_methods_uses_greatest_lower_bound.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = (core::int*) →* core::Iterable<core::num*>*;
-typedef G = (core::double*) →* core::List<core::int*>*;
-static method generic<T extends core::Object* = dynamic>((self::generic::T*) →* dynamic a, (self::generic::T*) →* dynamic b) → self::generic::T*
- return null;
-static method main() → dynamic {
- (core::num*) →* core::List<core::int*>* v = self::generic<(core::num*) →* core::List<core::int*>*>(((core::int*) →* core::Iterable<core::num*>* f) → Null => null, ((core::double*) →* core::List<core::int*>* g) → Null => null);
+typedef F = (core::int) → core::Iterable<core::num>;
+typedef G = (core::double) → core::List<core::int>;
+static method generic<T extends core::Object? = dynamic>((self::generic::T%) → dynamic a, (self::generic::T%) → dynamic b) → self::generic::T%
+ return throw "";
+static method test() → dynamic {
+ (core::num) → core::List<core::int> v = self::generic<(core::num) → core::List<core::int>>(((core::int) → core::Iterable<core::num> f) → Null => null, ((core::double) → core::List<core::int> g) → Null => null);
}
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart
index ea24047..a287d09 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class C<E> {
- void sort([int compare(E a, E b)]) {
- /*@ typeArgs=C::E* */ sort2(this, compare ?? _compareAny);
+ void sort([int Function(E a, E b)? compare]) {
+ /*@typeArgs=C::E%*/ sort2(this, compare ?? _compareAny);
}
static int _compareAny(a, b) {
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline.expect b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline.expect
index aaecf72..3b60698 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
abstract class C<E> {
- void sort([int compare(E a, E b)]) {}
+ void sort([int Function(E a, E b)? compare]) {}
static int _compareAny(a, b) {}
static void sort2<E>(C<E> a, int compare(E a, E b)) {}
}
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline_modelled.expect
index f34440f..075e425 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
abstract class C<E> {
static int _compareAny(a, b) {}
static void sort2<E>(C<E> a, int compare(E a, E b)) {}
- void sort([int compare(E a, E b)]) {}
+ void sort([int Function(E a, E b)? compare]) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.expect b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.expect
index d6bd505..6d0492d 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::E*>*
+abstract class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
: super core::Object::•()
;
- method sort([(self::C::E*, self::C::E*) →* core::int* compare = #C1]) → void {
- self::C::sort2<self::C::E*>(this, let final (self::C::E*, self::C::E*) →* core::int* #t1 = compare in #t1 == null ?{(self::C::E*, self::C::E*) →* core::int*} #C2 : #t1);
+ method sort([(self::C::E%, self::C::E%) →? core::int compare = #C1]) → void {
+ self::C::sort2<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t1 = compare in #t1 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t1{(self::C::E%, self::C::E%) → core::int});
}
- static method _compareAny(dynamic a, dynamic b) → core::int* {
+ static method _compareAny(dynamic a, dynamic b) → core::int {
throw "unimplemented";
}
- static method sort2<E extends core::Object* = dynamic>(self::C<self::C::sort2::E*>* a, (self::C::sort2::E*, self::C::sort2::E*) →* core::int* compare) → void {
+ static method sort2<E extends core::Object? = dynamic>(self::C<self::C::sort2::E%> a, (self::C::sort2::E%, self::C::sort2::E%) → core::int compare) → void {
throw "unimplemented";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.modular.expect b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.modular.expect
index d6bd505..6d0492d 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::E*>*
+abstract class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
: super core::Object::•()
;
- method sort([(self::C::E*, self::C::E*) →* core::int* compare = #C1]) → void {
- self::C::sort2<self::C::E*>(this, let final (self::C::E*, self::C::E*) →* core::int* #t1 = compare in #t1 == null ?{(self::C::E*, self::C::E*) →* core::int*} #C2 : #t1);
+ method sort([(self::C::E%, self::C::E%) →? core::int compare = #C1]) → void {
+ self::C::sort2<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t1 = compare in #t1 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t1{(self::C::E%, self::C::E%) → core::int});
}
- static method _compareAny(dynamic a, dynamic b) → core::int* {
+ static method _compareAny(dynamic a, dynamic b) → core::int {
throw "unimplemented";
}
- static method sort2<E extends core::Object* = dynamic>(self::C<self::C::sort2::E*>* a, (self::C::sort2::E*, self::C::sort2::E*) →* core::int* compare) → void {
+ static method sort2<E extends core::Object? = dynamic>(self::C<self::C::sort2::E%> a, (self::C::sort2::E%, self::C::sort2::E%) → core::int compare) → void {
throw "unimplemented";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.outline.expect b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.outline.expect
index d909d15..fbe67f7 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::E*>*
+abstract class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
;
- method sort([(self::C::E*, self::C::E*) →* core::int* compare = null]) → void
+ method sort([(self::C::E%, self::C::E%) →? core::int compare = null]) → void
;
- static method _compareAny(dynamic a, dynamic b) → core::int*
+ static method _compareAny(dynamic a, dynamic b) → core::int
;
- static method sort2<E extends core::Object* = dynamic>(self::C<self::C::sort2::E*>* a, (self::C::sort2::E*, self::C::sort2::E*) →* core::int* compare) → void
+ static method sort2<E extends core::Object? = dynamic>(self::C<self::C::sort2::E%> a, (self::C::sort2::E%, self::C::sort2::E%) → core::int compare) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.transformed.expect
index d6bd505..6d0492d 100644
--- a/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/greatest_closure_multiple_params.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class C<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::E*>*
+abstract class C<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::E%>
: super core::Object::•()
;
- method sort([(self::C::E*, self::C::E*) →* core::int* compare = #C1]) → void {
- self::C::sort2<self::C::E*>(this, let final (self::C::E*, self::C::E*) →* core::int* #t1 = compare in #t1 == null ?{(self::C::E*, self::C::E*) →* core::int*} #C2 : #t1);
+ method sort([(self::C::E%, self::C::E%) →? core::int compare = #C1]) → void {
+ self::C::sort2<self::C::E%>(this, let final (self::C::E%, self::C::E%) →? core::int #t1 = compare in #t1 == null ?{(self::C::E%, self::C::E%) → core::int} #C2 : #t1{(self::C::E%, self::C::E%) → core::int});
}
- static method _compareAny(dynamic a, dynamic b) → core::int* {
+ static method _compareAny(dynamic a, dynamic b) → core::int {
throw "unimplemented";
}
- static method sort2<E extends core::Object* = dynamic>(self::C<self::C::sort2::E*>* a, (self::C::sort2::E*, self::C::sort2::E*) →* core::int* compare) → void {
+ static method sort2<E extends core::Object? = dynamic>(self::C<self::C::sort2::E%> a, (self::C::sort2::E%, self::C::sort2::E%) → core::int compare) → void {
throw "unimplemented";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart b/pkg/front_end/testcases/inference/inconsistent_overrides.dart
index a8d51ad..250171f 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart
@@ -1,27 +1,27 @@
// Copyright (c) 2019, 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.
-// @dart=2.9
+
library test;
/*@testedFeatures=inference*/
class A {
- A f(A x, {A y}) {}
- A g(A x, {A y}) {}
- A h(A x, {A y}) {}
+ A f(A x, {A? y}) => throw '';
+ A g(A x, {A? y}) => throw '';
+ A h(A x, {A? y}) => throw '';
}
class B extends A implements I {
- f(x, {y}) {}
- g(x, {y}) {}
- h(x, {y}) {}
+ f(x, {y}) => throw '';
+ g(x, {y}) => throw '';
+ h(x, {y}) => throw '';
}
class I {
- I f(I x, {I y}) {}
- A g(I x, {I y}) {}
- A h(A x, {I y}) {}
+ I f(I x, {I? y}) => throw '';
+ A g(I x, {I? y}) => throw '';
+ A h(A x, {I? y}) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline.expect
index 4951b24..a4e284c 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline.expect
@@ -1,22 +1,21 @@
-// @dart = 2.9
library test;
class A {
- A f(A x, {A y}) {}
- A g(A x, {A y}) {}
- A h(A x, {A y}) {}
+ A f(A x, {A? y}) => throw '';
+ A g(A x, {A? y}) => throw '';
+ A h(A x, {A? y}) => throw '';
}
class B extends A implements I {
- f(x, {y}) {}
- g(x, {y}) {}
- h(x, {y}) {}
+ f(x, {y}) => throw '';
+ g(x, {y}) => throw '';
+ h(x, {y}) => throw '';
}
class I {
- I f(I x, {I y}) {}
- A g(I x, {I y}) {}
- A h(A x, {I y}) {}
+ I f(I x, {I? y}) => throw '';
+ A g(I x, {I? y}) => throw '';
+ A h(A x, {I? y}) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline_modelled.expect
index cebb95b..d59fef1 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.textual_outline_modelled.expect
@@ -1,22 +1,21 @@
-// @dart = 2.9
library test;
class A {
- A f(A x, {A y}) {}
- A g(A x, {A y}) {}
- A h(A x, {A y}) {}
+ A f(A x, {A? y}) => throw '';
+ A g(A x, {A? y}) => throw '';
+ A h(A x, {A? y}) => throw '';
}
class B extends A implements I {
- f(x, {y}) {}
- g(x, {y}) {}
- h(x, {y}) {}
+ f(x, {y}) => throw '';
+ g(x, {y}) => throw '';
+ h(x, {y}) => throw '';
}
class I {
- A g(I x, {I y}) {}
- A h(A x, {I y}) {}
- I f(I x, {I y}) {}
+ A g(I x, {I? y}) => throw '';
+ A h(A x, {I? y}) => throw '';
+ I f(I x, {I? y}) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.expect
index 2948381e..11fb585 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.expect
@@ -1,86 +1,75 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer types for 'f' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// f(x, {y}) {}
+// f(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:10:5: Context: This is one of the overridden members.
-// A f(A x, {A y}) {}
+// A f(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:22:5: Context: This is one of the overridden members.
-// I f(I x, {I y}) {}
+// I f(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:3: Error: Can't infer types for 'g' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// g(x, {y}) {}
+// g(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:11:5: Context: This is one of the overridden members.
-// A g(A x, {A y}) {}
+// A g(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:23:5: Context: This is one of the overridden members.
-// A g(I x, {I y}) {}
+// A g(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:3: Error: Can't infer types for 'h' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// h(x, {y}) {}
+// h(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:12:5: Context: This is one of the overridden members.
-// A h(A x, {A y}) {}
+// A h(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:24:5: Context: This is one of the overridden members.
-// A h(A x, {I y}) {}
+// A h(A x, {I? y}) => throw '';
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method f(self::A* x, {self::A* y = #C1}) → self::A* {}
- method g(self::A* x, {self::A* y = #C1}) → self::A* {}
- method h(self::A* x, {self::A* y = #C1}) → self::A* {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
+ method g(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
+ method h(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- method f(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
- method g(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
- method h(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
+ method f(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
+ method g(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
+ method h(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
}
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method f(self::I* x, {self::I* y = #C1}) → self::I* {}
- method g(self::I* x, {self::I* y = #C1}) → self::A* {}
- method h(self::A* x, {self::I* y = #C1}) → self::A* {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f(self::I x, {self::I? y = #C1}) → self::I
+ return throw "";
+ method g(self::I x, {self::I? y = #C1}) → self::A
+ return throw "";
+ method h(self::A x, {self::I? y = #C1}) → self::A
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.modular.expect
index 2948381e..11fb585 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.modular.expect
@@ -1,86 +1,75 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer types for 'f' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// f(x, {y}) {}
+// f(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:10:5: Context: This is one of the overridden members.
-// A f(A x, {A y}) {}
+// A f(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:22:5: Context: This is one of the overridden members.
-// I f(I x, {I y}) {}
+// I f(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:3: Error: Can't infer types for 'g' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// g(x, {y}) {}
+// g(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:11:5: Context: This is one of the overridden members.
-// A g(A x, {A y}) {}
+// A g(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:23:5: Context: This is one of the overridden members.
-// A g(I x, {I y}) {}
+// A g(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:3: Error: Can't infer types for 'h' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// h(x, {y}) {}
+// h(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:12:5: Context: This is one of the overridden members.
-// A h(A x, {A y}) {}
+// A h(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:24:5: Context: This is one of the overridden members.
-// A h(A x, {I y}) {}
+// A h(A x, {I? y}) => throw '';
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method f(self::A* x, {self::A* y = #C1}) → self::A* {}
- method g(self::A* x, {self::A* y = #C1}) → self::A* {}
- method h(self::A* x, {self::A* y = #C1}) → self::A* {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
+ method g(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
+ method h(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- method f(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
- method g(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
- method h(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
+ method f(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
+ method g(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
+ method h(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
}
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method f(self::I* x, {self::I* y = #C1}) → self::I* {}
- method g(self::I* x, {self::I* y = #C1}) → self::A* {}
- method h(self::A* x, {self::I* y = #C1}) → self::A* {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f(self::I x, {self::I? y = #C1}) → self::I
+ return throw "";
+ method g(self::I x, {self::I? y = #C1}) → self::A
+ return throw "";
+ method h(self::A x, {self::I? y = #C1}) → self::A
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.outline.expect
index 66062f6..fe3bf3f 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.outline.expect
@@ -1,65 +1,55 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer types for 'f' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// f(x, {y}) {}
+// f(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:10:5: Context: This is one of the overridden members.
-// A f(A x, {A y}) {}
+// A f(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:22:5: Context: This is one of the overridden members.
-// I f(I x, {I y}) {}
+// I f(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:3: Error: Can't infer types for 'g' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// g(x, {y}) {}
+// g(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:11:5: Context: This is one of the overridden members.
-// A g(A x, {A y}) {}
+// A g(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:23:5: Context: This is one of the overridden members.
-// A g(I x, {I y}) {}
+// A g(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:3: Error: Can't infer types for 'h' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// h(x, {y}) {}
+// h(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:12:5: Context: This is one of the overridden members.
-// A h(A x, {A y}) {}
+// A h(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:24:5: Context: This is one of the overridden members.
-// A h(A x, {I y}) {}
+// A h(A x, {I? y}) => throw '';
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- method f(self::A* x, {self::A* y = null}) → self::A*
+ method f(self::A x, {self::A? y = null}) → self::A
;
- method g(self::A* x, {self::A* y = null}) → self::A*
+ method g(self::A x, {self::A? y = null}) → self::A
;
- method h(self::A* x, {self::A* y = null}) → self::A*
+ method h(self::A x, {self::A? y = null}) → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method f(invalid-type x, {invalid-type y = null}) → invalid-type
;
@@ -69,24 +59,14 @@
;
}
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- method f(self::I* x, {self::I* y = null}) → self::I*
+ method f(self::I x, {self::I? y = null}) → self::I
;
- method g(self::I* x, {self::I* y = null}) → self::A*
+ method g(self::I x, {self::I? y = null}) → self::A
;
- method h(self::A* x, {self::I* y = null}) → self::A*
+ method h(self::A x, {self::I? y = null}) → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.transformed.expect
index 2948381e..11fb585 100644
--- a/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inconsistent_overrides.dart.weak.transformed.expect
@@ -1,86 +1,75 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:16:3: Error: Can't infer types for 'f' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// f(x, {y}) {}
+// f(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:10:5: Context: This is one of the overridden members.
-// A f(A x, {A y}) {}
+// A f(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:22:5: Context: This is one of the overridden members.
-// I f(I x, {I y}) {}
+// I f(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:17:3: Error: Can't infer types for 'g' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// g(x, {y}) {}
+// g(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:11:5: Context: This is one of the overridden members.
-// A g(A x, {A y}) {}
+// A g(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:23:5: Context: This is one of the overridden members.
-// A g(I x, {I y}) {}
+// A g(I x, {I? y}) => throw '';
// ^
//
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:18:3: Error: Can't infer types for 'h' as the overridden members don't have a combined signature.
// Try adding explicit types.
-// h(x, {y}) {}
+// h(x, {y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:12:5: Context: This is one of the overridden members.
-// A h(A x, {A y}) {}
+// A h(A x, {A? y}) => throw '';
// ^
// pkg/front_end/testcases/inference/inconsistent_overrides.dart:24:5: Context: This is one of the overridden members.
-// A h(A x, {I y}) {}
+// A h(A x, {I? y}) => throw '';
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method f(self::A* x, {self::A* y = #C1}) → self::A* {}
- method g(self::A* x, {self::A* y = #C1}) → self::A* {}
- method h(self::A* x, {self::A* y = #C1}) → self::A* {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
+ method g(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
+ method h(self::A x, {self::A? y = #C1}) → self::A
+ return throw "";
}
class B extends self::A implements self::I {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- method f(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
- method g(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
- method h(invalid-type x, {invalid-type y = #C1}) → invalid-type {}
+ method f(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
+ method g(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
+ method h(invalid-type x, {invalid-type y = #C1}) → invalid-type
+ return throw "";
}
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method f(self::I* x, {self::I* y = #C1}) → self::I* {}
- method g(self::I* x, {self::I* y = #C1}) → self::A* {}
- method h(self::A* x, {self::I* y = #C1}) → self::A* {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f(self::I x, {self::I? y = #C1}) → self::I
+ return throw "";
+ method g(self::I x, {self::I? y = #C1}) → self::A
+ return throw "";
+ method h(self::A x, {self::I? y = #C1}) → self::A
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart
index 013282d..76224c4 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline.expect
index a3414de..2eac7bf 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline_modelled.expect
index 9327a7a..04312eb 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class I {
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.expect
index d7facc2..3c0dfbd 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
operator []=(dynamic index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
operator []=(dynamic index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
operator []=(dynamic index, dynamic value) → void {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.modular.expect
index d7facc2..3c0dfbd 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.modular.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
operator []=(dynamic index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
operator []=(dynamic index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
operator []=(dynamic index, dynamic value) → void {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.outline.expect
index cd6595c..274ce5d 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.outline.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
operator []=(dynamic index, dynamic value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
operator []=(dynamic index, dynamic value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
operator []=(dynamic index, dynamic value) → void
;
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.transformed.expect
index d7facc2..3c0dfbd 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type.dart.weak.transformed.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
operator []=(dynamic index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
operator []=(dynamic index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
operator []=(dynamic index, dynamic value) → void {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart
index ee83d01..8ca0f2e 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline.expect
index 7cc3c0d..65369b6 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline_modelled.expect
index 4868c82..7202539 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class I {
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.expect
index 9cecf38..c562486 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator []=(core::int* index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int index, dynamic value) → void {}
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator []=(core::int* index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int index, dynamic value) → void {}
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- operator []=(core::int* index, dynamic value) → void {}
+ operator []=(core::int index, dynamic value) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.modular.expect
index 9cecf38..c562486 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.modular.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator []=(core::int* index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int index, dynamic value) → void {}
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator []=(core::int* index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int index, dynamic value) → void {}
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- operator []=(core::int* index, dynamic value) → void {}
+ operator []=(core::int index, dynamic value) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.outline.expect
index 13c3679..e46b914 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- operator []=(core::int* index, dynamic value) → void
+ operator []=(core::int index, dynamic value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- operator []=(core::int* index, dynamic value) → void
+ operator []=(core::int index, dynamic value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- operator []=(core::int* index, dynamic value) → void
+ operator []=(core::int index, dynamic value) → void
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.transformed.expect
index 9cecf38..c562486 100644
--- a/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/index_assign_operator_return_type_2.dart.weak.transformed.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator []=(core::int* index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int index, dynamic value) → void {}
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator []=(core::int* index, dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int index, dynamic value) → void {}
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- operator []=(core::int* index, dynamic value) → void {}
+ operator []=(core::int index, dynamic value) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart
index 7d4ade9..bd7233a 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline.expect
index 847ad57..e8e8fb2 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline_modelled.expect
index 847ad57..e8e8fb2 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.expect
index d6c7c50..9e277e0 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
- return self::f() as{TypeError,ForDynamic} core::int*;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get x() → core::int
+ return self::f() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+ set x(core::int value) → void {}
}
class B extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::B*
+ field core::int x = 0;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f() → dynamic
return null;
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.modular.expect
index d6c7c50..9e277e0 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
- return self::f() as{TypeError,ForDynamic} core::int*;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get x() → core::int
+ return self::f() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+ set x(core::int value) → void {}
}
class B extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::B*
+ field core::int x = 0;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f() → dynamic
return null;
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.outline.expect
index 42f26a4..b62ea27 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.outline.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- get x() → core::int*
+ get x() → core::int
;
- set x(core::int* value) → void
+ set x(core::int value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::B*
+ field core::int x;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.transformed.expect
index d6c7c50..9e277e0 100644
--- a/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_accessor_from_later_inferred_field.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
- return self::f() as{TypeError,ForDynamic} core::int*;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get x() → core::int
+ return self::f() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+ set x(core::int value) → void {}
}
class B extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::B*
+ field core::int x = 0;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method f() → dynamic
return null;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart
index c8f9c85..197c615 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart
@@ -1,40 +1,43 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ A operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
B member;
+ B? member2;
+
+ Test(this.member, this.member2);
void test() {
- /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
+ /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+
+ /*@target=Test.member2*/ /*@target=Test.member2*/ member2
+ ??= /*@typeArgs=B?*/ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ /*@target=B.+*/ += /*@typeArgs=C*/ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@target=B.**/ *= /*@typeArgs=B*/ f();
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
-
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@target=B.&*/ &= /*@typeArgs=A*/ f();
/*@target=B.-*/ -- /*@target=Test.member*/ /*@target=Test.member*/
member;
@@ -42,30 +45,30 @@
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
- var /*@ type=B* */ v1 = /*@target=Test.member*/ member =
- /*@ typeArgs=B* */ f();
+ var /*@type=B*/ v1 = /*@target=Test.member*/ member =
+ /*@typeArgs=B*/ f();
- var /*@ type=B* */ v2 = /*@target=Test.member*/ /*@target=Test.member*/
- member ??= /*@ typeArgs=B* */ f();
+ var /*@type=B?*/ v2 = /*@target=Test.member2*/ /*@target=Test.member2*/
+ member2 ??= /*@typeArgs=B?*/ f();
- var /*@ type=A* */ v3 = /*@target=Test.member*/ /*@target=Test.member*/
+ var /*@type=A*/ v3 = /*@target=Test.member*/ /*@target=Test.member*/
member /*@target=B.+*/ +=
- /*@ typeArgs=C* */ f();
+ /*@typeArgs=C*/ f();
- var /*@ type=B* */ v4 = /*@target=Test.member*/ /*@target=Test.member*/
+ var /*@type=B*/ v4 = /*@target=Test.member*/ /*@target=Test.member*/
member /*@target=B.**/ *=
- /*@ typeArgs=B* */ f();
+ /*@typeArgs=B*/ f();
- var /*@ type=C* */ v5 = /*@target=Test.member*/ /*@target=Test.member*/
+ var /*@type=C*/ v5 = /*@target=Test.member*/ /*@target=Test.member*/
member /*@target=B.&*/ &=
- /*@ typeArgs=A* */ f();
+ /*@typeArgs=A*/ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ --
+ var /*@type=B*/ v6 = /*@target=B.-*/ --
/*@target=Test.member*/ /*@target=Test.member*/ member;
- var /*@ type=B* */ v7 =
- /*@ type=B* */ /*@target=Test.member*/ /*@target=Test.member*/
- /*@ type=B* */ member /*@target=B.-*/ --;
+ var /*@type=B*/ v7 =
+ /*@type=B*/ /*@target=Test.member*/ /*@target=Test.member*/
+ /*@type=B*/ member /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline.expect
index fc944b3..d0dd27a 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline.expect
@@ -1,21 +1,22 @@
-// @dart = 2.9
library test;
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ A operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
B member;
+ B? member2;
+ Test(this.member, this.member2);
void test() {}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect
index cb5ae88..25b8c25 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect
@@ -1,21 +1,22 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator *(B v) => null;
- B operator -(int i) => null;
- C operator &(A v) => null;
+ A operator +(C v) => throw '';
+ B operator *(B v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
class Test {
+ B? member2;
B member;
+ Test(this.member, this.member2);
void test() {}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.expect
index 43a39ef..8b160fa 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.expect
@@ -1,72 +1,76 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:34:25: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+// - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// /*@target=B.+*/ += /*@typeArgs=C*/ f();
+// ^
+//
+// pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:55:32: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+// - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// member /*@target=B.+*/ +=
+// ^
+//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::A
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
- : super core::Object::•()
+ field self::B member;
+ field self::B? member2;
+ constructor •(self::B member, self::B? member2) → self::Test
+ : self::Test::member = member, self::Test::member2 = member2, super core::Object::•()
;
method test() → void {
- this.{self::Test::member} = self::f<self::B*>();
- this.{self::Test::member}{self::B*} == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : null;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v1 = this.{self::Test::member} = self::f<self::B*>();
- self::B* v2 = let final self::B* #t1 = this.{self::Test::member}{self::B*} in #t1 == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : #t1;
- self::A* v3 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- self::B* v4 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- self::C* v5 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- self::B* v6 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v7 = let final self::B* #t2 = this.{self::Test::member}{self::B*} in let final self::B* #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int*) →* self::B*} in #t2;
+ this.{self::Test::member} = self::f<self::B>();
+ this.{self::Test::member2}{self::B?} == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : null;
+ this.{self::Test::member} = invalid-expression "pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:34:25: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+ - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ ^" in this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::A} as{TypeError,ForNonNullableByDefault} self::B;
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = this.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = this.{self::Test::member2}{self::B?} in #t1 == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : #t1{self::B};
+ self::A v3 = this.{self::Test::member} = invalid-expression "pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:55:32: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+ - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ member /*@target=B.+*/ +=
+ ^" in this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::A} as{TypeError,ForNonNullableByDefault} self::B;
+ self::B v4 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = this.{self::Test::member}{self::B} in let final self::B #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.modular.expect
index 43a39ef..8b160fa 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.modular.expect
@@ -1,72 +1,76 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:34:25: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+// - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// /*@target=B.+*/ += /*@typeArgs=C*/ f();
+// ^
+//
+// pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:55:32: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+// - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// member /*@target=B.+*/ +=
+// ^
+//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::A
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
- : super core::Object::•()
+ field self::B member;
+ field self::B? member2;
+ constructor •(self::B member, self::B? member2) → self::Test
+ : self::Test::member = member, self::Test::member2 = member2, super core::Object::•()
;
method test() → void {
- this.{self::Test::member} = self::f<self::B*>();
- this.{self::Test::member}{self::B*} == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : null;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v1 = this.{self::Test::member} = self::f<self::B*>();
- self::B* v2 = let final self::B* #t1 = this.{self::Test::member}{self::B*} in #t1 == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : #t1;
- self::A* v3 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- self::B* v4 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- self::C* v5 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- self::B* v6 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v7 = let final self::B* #t2 = this.{self::Test::member}{self::B*} in let final self::B* #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int*) →* self::B*} in #t2;
+ this.{self::Test::member} = self::f<self::B>();
+ this.{self::Test::member2}{self::B?} == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : null;
+ this.{self::Test::member} = invalid-expression "pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:34:25: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+ - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ ^" in this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::A} as{TypeError,ForNonNullableByDefault} self::B;
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = this.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = this.{self::Test::member2}{self::B?} in #t1 == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : #t1{self::B};
+ self::A v3 = this.{self::Test::member} = invalid-expression "pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:55:32: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+ - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ member /*@target=B.+*/ +=
+ ^" in this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::A} as{TypeError,ForNonNullableByDefault} self::B;
+ self::B v4 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = this.{self::Test::member}{self::B} in let final self::B #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.outline.expect
index 30989d3..d728e67 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.outline.expect
@@ -1,55 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(self::C* v) → self::A*
+ operator +(self::C v) → self::A
;
- operator -(core::int* i) → self::B*
+ operator -(core::int i) → self::B
;
- operator *(self::B* v) → self::B*
+ operator *(self::B v) → self::B
;
- operator &(self::A* v) → self::C*
+ operator &(self::A v) → self::C
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class Test extends core::Object {
- field self::B* member;
- synthetic constructor •() → self::Test*
+ field self::B member;
+ field self::B? member2;
+ constructor •(self::B member, self::B? member2) → self::Test
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.transformed.expect
index 43a39ef..8b160fa 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart.weak.transformed.expect
@@ -1,72 +1,76 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:34:25: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+// - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// /*@target=B.+*/ += /*@typeArgs=C*/ f();
+// ^
+//
+// pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:55:32: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+// - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+// member /*@target=B.+*/ +=
+// ^
+//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::A
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
- : super core::Object::•()
+ field self::B member;
+ field self::B? member2;
+ constructor •(self::B member, self::B? member2) → self::Test
+ : self::Test::member = member, self::Test::member2 = member2, super core::Object::•()
;
method test() → void {
- this.{self::Test::member} = self::f<self::B*>();
- this.{self::Test::member}{self::B*} == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : null;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v1 = this.{self::Test::member} = self::f<self::B*>();
- self::B* v2 = let final self::B* #t1 = this.{self::Test::member}{self::B*} in #t1 == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : #t1;
- self::A* v3 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- self::B* v4 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- self::C* v5 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- self::B* v6 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v7 = let final self::B* #t2 = this.{self::Test::member}{self::B*} in let final self::B* #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int*) →* self::B*} in #t2;
+ this.{self::Test::member} = self::f<self::B>();
+ this.{self::Test::member2}{self::B?} == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : null;
+ this.{self::Test::member} = invalid-expression "pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:34:25: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+ - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ ^" in this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::A} as{TypeError,ForNonNullableByDefault} self::B;
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = this.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = this.{self::Test::member2}{self::B?} in #t1 == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : #t1{self::B};
+ self::A v3 = this.{self::Test::member} = invalid-expression "pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart:55:32: Error: A value of type 'A' can't be assigned to a variable of type 'B'.
+ - 'A' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_implicit_this.dart'.
+ member /*@target=B.+*/ +=
+ ^" in this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::A} as{TypeError,ForNonNullableByDefault} self::B;
+ self::B v4 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = this.{self::Test::member}{self::B} in let final self::B #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards.dart b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards.dart
index 7892af4..96f2626 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,14 +17,13 @@
void test() {
var /*@ type=int* */ v1 = /*@target=Test1.t*/ t = getInt();
- var /*@ type=int* */ v4 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
- ??= getInt();
+ var /*@ type=int* */ v4 = /*@target=Test1.t*/ /*@target=Test1.t*/ t ??=
+ getInt();
- var /*@ type=int* */ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
- /*@target=num.+*/ += getInt();
+ var /*@ type=int* */ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t /*@target=num.+*/ +=
+ getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++
- /*@target=Test1.t*/ /*@target=Test1.t*/ t;
+ var /*@ type=int* */ v10 = /*@target=num.+*/ ++ /*@target=Test1.t*/ /*@target=Test1.t*/ t;
var /*@ type=int* */ v11 =
/*@ type=int* */ /*@target=Test1.t*/ /*@target=Test1.t*/
@@ -40,26 +41,25 @@
var /*@ type=double* */ v3 = /*@target=Test2.t*/ t = getDouble();
- var /*@ type=num* */ v4 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- ??= getInt();
+ var /*@ type=num* */ v4 = /*@target=Test2.t*/ /*@target=Test2.t*/ t ??=
+ getInt();
- var /*@ type=num* */ v5 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- ??= getNum();
+ var /*@ type=num* */ v5 = /*@target=Test2.t*/ /*@target=Test2.t*/ t ??=
+ getNum();
- var /*@ type=num* */ v6 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- ??= getDouble();
+ var /*@ type=num* */ v6 = /*@target=Test2.t*/ /*@target=Test2.t*/ t ??=
+ getDouble();
- var /*@ type=num* */ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.+*/ += getInt();
+ var /*@ type=num* */ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getInt();
- var /*@ type=num* */ v8 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.+*/ += getNum();
+ var /*@ type=num* */ v8 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getNum();
- var /*@ type=num* */ v9 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
- /*@target=num.+*/ += getDouble();
+ var /*@ type=num* */ v9 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++
- /*@target=Test2.t*/ /*@target=Test2.t*/ t;
+ var /*@ type=num* */ v10 = /*@target=num.+*/ ++ /*@target=Test2.t*/ /*@target=Test2.t*/ t;
var /*@ type=num* */ v11 =
/*@ type=num* */ /*@target=Test2.t*/ /*@target=Test2.t*/
@@ -73,20 +73,19 @@
void test3() {
var /*@ type=double* */ v3 = /*@target=Test3.t*/ t = getDouble();
- var /*@ type=double* */ v6 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- ??= getDouble();
+ var /*@ type=double* */ v6 = /*@target=Test3.t*/ /*@target=Test3.t*/ t ??=
+ getDouble();
- var /*@ type=double* */ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- /*@target=double.+*/ += getInt();
+ var /*@ type=double* */ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getInt();
- var /*@ type=double* */ v8 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- /*@target=double.+*/ += getNum();
+ var /*@ type=double* */ v8 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getNum();
- var /*@ type=double* */ v9 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
- /*@target=double.+*/ += getDouble();
+ var /*@ type=double* */ v9 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++
- /*@target=Test3.t*/ /*@target=Test3.t*/ t;
+ var /*@ type=double* */ v10 = /*@target=double.+*/ ++ /*@target=Test3.t*/ /*@target=Test3.t*/ t;
var /*@ type=double* */ v11 =
/*@ type=double* */ /*@target=Test3.t*/ /*@target=Test3.t*/
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart
new file mode 100644
index 0000000..a35b3f1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart
@@ -0,0 +1,102 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int t;
+ int? t2;
+
+ Test1(this.t, this.t2);
+
+ void test() {
+ var /*@type=int*/ v1 = /*@target=Test1.t*/ t = getInt();
+
+ var /*@type=int*/ v4 = /*@target=Test1.t2*/ /*@target=Test1.t2*/ t2 ??=
+ getInt();
+
+ var /*@type=int*/ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++ /*@target=Test1.t*/ /*@target=Test1.t*/ t;
+
+ var /*@type=int*/ v11 =
+ /*@type=int*/ /*@target=Test1.t*/ /*@target=Test1.t*/
+ /*@type=int*/ t /*@target=num.+*/ ++;
+ }
+}
+
+class Test2 {
+ num t;
+ num? t2;
+
+ Test2(this.t, this.t2);
+
+ void test() {
+ var /*@type=int*/ v1 = /*@target=Test2.t*/ t = getInt();
+
+ var /*@type=num*/ v2 = /*@target=Test2.t*/ t = getNum();
+
+ var /*@type=double*/ v3 = /*@target=Test2.t*/ t = getDouble();
+
+ var /*@type=num*/ v4 = /*@target=Test2.t2*/ /*@target=Test2.t2*/ t2 ??=
+ getInt();
+
+ var /*@type=num*/ v5 = /*@target=Test2.t2*/ /*@target=Test2.t2*/ t2 ??=
+ getNum();
+
+ var /*@type=num*/ v6 = /*@target=Test2.t2*/ /*@target=Test2.t2*/ t2 ??=
+ getDouble();
+
+ var /*@type=num*/ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=num*/ v8 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++ /*@target=Test2.t*/ /*@target=Test2.t*/ t;
+
+ var /*@type=num*/ v11 =
+ /*@target=Test2.t*/ /*@type=num*/ /*@target=Test2.t*/ /*@type=num*/ t /*@target=num.+*/ ++;
+ }
+}
+
+class Test3 {
+ double t;
+ double? t2;
+
+ Test3(this.t, this.t2);
+
+ void test3() {
+ var /*@type=double*/ v3 = /*@target=Test3.t*/ t = getDouble();
+
+ var /*@type=double*/ v6 = /*@target=Test3.t2*/ /*@target=Test3.t2*/ t2 ??=
+ getDouble();
+
+ var /*@type=double*/ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getInt();
+
+ var /*@type=double*/ v8 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++ /*@target=Test3.t*/ /*@target=Test3.t*/ t;
+
+ var /*@type=double*/ v11 =
+ /*@type=double*/ /*@target=Test3.t*/ /*@target=Test3.t*/
+ /*@type=double*/ t /*@target=double.+*/ ++;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..a225c9a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.textual_outline.expect
@@ -0,0 +1,28 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int t;
+ int? t2;
+ Test1(this.t, this.t2);
+ void test() {}
+}
+
+class Test2 {
+ num t;
+ num? t2;
+ Test2(this.t, this.t2);
+ void test() {}
+}
+
+class Test3 {
+ double t;
+ double? t2;
+ Test3(this.t, this.t2);
+ void test3() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..e16ac89
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,27 @@
+library test;
+
+class Test1 {
+ Test1(this.t, this.t2);
+ int? t2;
+ int t;
+ void test() {}
+}
+
+class Test2 {
+ Test2(this.t, this.t2);
+ num? t2;
+ num t;
+ void test() {}
+}
+
+class Test3 {
+ Test3(this.t, this.t2);
+ double? t2;
+ double t;
+ void test3() {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.expect
new file mode 100644
index 0000000..4e47ead
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t;
+ field core::int? t2;
+ constructor •(core::int t, core::int? t2) → self::Test1
+ : self::Test1::t = t, self::Test1::t2 = t2, super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test1::t} = self::getInt();
+ core::int v4 = let final core::int? #t1 = this.{self::Test1::t2}{core::int?} in #t1 == null ?{core::int} this.{self::Test1::t2} = self::getInt() : #t1{core::int};
+ core::int v7 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = this.{self::Test1::t}{core::int} in let final core::int #t3 = this.{self::Test1::t} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends core::Object {
+ field core::num t;
+ field core::num? t2;
+ constructor •(core::num t, core::num? t2) → self::Test2
+ : self::Test2::t = t, self::Test2::t2 = t2, super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test2::t} = self::getInt();
+ core::num v2 = this.{self::Test2::t} = self::getNum();
+ core::double v3 = this.{self::Test2::t} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = this.{self::Test2::t2}{core::num?} in #t4 == null ?{core::num} this.{self::Test2::t2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = this.{self::Test2::t2}{core::num?} in #t5 == null ?{core::num} this.{self::Test2::t2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = this.{self::Test2::t2}{core::num?} in #t6 == null ?{core::num} this.{self::Test2::t2} = self::getDouble() : #t6{core::num};
+ core::num v7 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = this.{self::Test2::t}{core::num} in let final core::num #t8 = this.{self::Test2::t} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends core::Object {
+ field core::double t;
+ field core::double? t2;
+ constructor •(core::double t, core::double? t2) → self::Test3
+ : self::Test3::t = t, self::Test3::t2 = t2, super core::Object::•()
+ ;
+ method test3() → void {
+ core::double v3 = this.{self::Test3::t} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = this.{self::Test3::t2}{core::double?} in #t9 == null ?{core::double} this.{self::Test3::t2} = self::getDouble() : #t9{core::double};
+ core::double v7 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = this.{self::Test3::t}{core::double} in let final core::double #t11 = this.{self::Test3::t} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..4e47ead
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.modular.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t;
+ field core::int? t2;
+ constructor •(core::int t, core::int? t2) → self::Test1
+ : self::Test1::t = t, self::Test1::t2 = t2, super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test1::t} = self::getInt();
+ core::int v4 = let final core::int? #t1 = this.{self::Test1::t2}{core::int?} in #t1 == null ?{core::int} this.{self::Test1::t2} = self::getInt() : #t1{core::int};
+ core::int v7 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = this.{self::Test1::t}{core::int} in let final core::int #t3 = this.{self::Test1::t} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends core::Object {
+ field core::num t;
+ field core::num? t2;
+ constructor •(core::num t, core::num? t2) → self::Test2
+ : self::Test2::t = t, self::Test2::t2 = t2, super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test2::t} = self::getInt();
+ core::num v2 = this.{self::Test2::t} = self::getNum();
+ core::double v3 = this.{self::Test2::t} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = this.{self::Test2::t2}{core::num?} in #t4 == null ?{core::num} this.{self::Test2::t2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = this.{self::Test2::t2}{core::num?} in #t5 == null ?{core::num} this.{self::Test2::t2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = this.{self::Test2::t2}{core::num?} in #t6 == null ?{core::num} this.{self::Test2::t2} = self::getDouble() : #t6{core::num};
+ core::num v7 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = this.{self::Test2::t}{core::num} in let final core::num #t8 = this.{self::Test2::t} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends core::Object {
+ field core::double t;
+ field core::double? t2;
+ constructor •(core::double t, core::double? t2) → self::Test3
+ : self::Test3::t = t, self::Test3::t2 = t2, super core::Object::•()
+ ;
+ method test3() → void {
+ core::double v3 = this.{self::Test3::t} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = this.{self::Test3::t2}{core::double?} in #t9 == null ?{core::double} this.{self::Test3::t2} = self::getDouble() : #t9{core::double};
+ core::double v7 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = this.{self::Test3::t}{core::double} in let final core::double #t11 = this.{self::Test3::t} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..81126d4
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t;
+ field core::int? t2;
+ constructor •(core::int t, core::int? t2) → self::Test1
+ ;
+ method test() → void
+ ;
+}
+class Test2 extends core::Object {
+ field core::num t;
+ field core::num? t2;
+ constructor •(core::num t, core::num? t2) → self::Test2
+ ;
+ method test() → void
+ ;
+}
+class Test3 extends core::Object {
+ field core::double t;
+ field core::double? t2;
+ constructor •(core::double t, core::double? t2) → self::Test3
+ ;
+ method test3() → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..4e47ead
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_implicit_this_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t;
+ field core::int? t2;
+ constructor •(core::int t, core::int? t2) → self::Test1
+ : self::Test1::t = t, self::Test1::t2 = t2, super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test1::t} = self::getInt();
+ core::int v4 = let final core::int? #t1 = this.{self::Test1::t2}{core::int?} in #t1 == null ?{core::int} this.{self::Test1::t2} = self::getInt() : #t1{core::int};
+ core::int v7 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = this.{self::Test1::t}{core::int} in let final core::int #t3 = this.{self::Test1::t} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends core::Object {
+ field core::num t;
+ field core::num? t2;
+ constructor •(core::num t, core::num? t2) → self::Test2
+ : self::Test2::t = t, self::Test2::t2 = t2, super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test2::t} = self::getInt();
+ core::num v2 = this.{self::Test2::t} = self::getNum();
+ core::double v3 = this.{self::Test2::t} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = this.{self::Test2::t2}{core::num?} in #t4 == null ?{core::num} this.{self::Test2::t2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = this.{self::Test2::t2}{core::num?} in #t5 == null ?{core::num} this.{self::Test2::t2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = this.{self::Test2::t2}{core::num?} in #t6 == null ?{core::num} this.{self::Test2::t2} = self::getDouble() : #t6{core::num};
+ core::num v7 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = this.{self::Test2::t}{core::num} in let final core::num #t8 = this.{self::Test2::t} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends core::Object {
+ field core::double t;
+ field core::double? t2;
+ constructor •(core::double t, core::double? t2) → self::Test3
+ : self::Test3::t = t, self::Test3::t2 = t2, super core::Object::•()
+ ;
+ method test3() → void {
+ core::double v3 = this.{self::Test3::t} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = this.{self::Test3::t2}{core::double?} in #t9 == null ?{core::double} this.{self::Test3::t2} = self::getDouble() : #t9{core::double};
+ core::double v7 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = this.{self::Test3::t}{core::double} in let final core::double #t11 = this.{self::Test3::t} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart
index f72d8ca..38d2ead 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,72 +10,78 @@
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, B v) {}
void test() {
- Test t = /*@ typeArgs=Test* */ f();
+ Test t = /*@typeArgs=Test*/ f();
+ Test2 t2 = /*@typeArgs=Test2*/ f();
t /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [/*@typeArgs=Index*/ f()]
- ??= /*@ typeArgs=B* */ f();
+ ??= /*@typeArgs=B?*/ f();
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()]
+ /*@target=B.+*/ += /*@typeArgs=C*/ f();
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()]
+ /*@target=B.**/ *= /*@typeArgs=B*/ f();
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()]
+ /*@target=B.&*/ &= /*@typeArgs=A*/ f();
- t /*@target=Test.[]*/ [/*@ typeArgs=Index* */ f()];
+ t /*@target=Test.[]*/ [/*@typeArgs=Index*/ f()];
/*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()];
+ /*@typeArgs=Index*/ f()];
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
- var /*@ type=B* */ v1 = t /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ var /*@type=B*/ v1 = t /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
- var /*@ type=B* */ v2 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
+ var /*@type=B?*/ v2 = t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()]
- ??= /*@ typeArgs=B* */ f();
+ ??= /*@typeArgs=B?*/ f();
- var /*@ type=B* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@type=B*/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()]
+ /*@target=B.**/ *= /*@typeArgs=B*/ f();
- var /*@ type=C* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@type=C*/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()]
+ /*@target=B.&*/ &= /*@typeArgs=A*/ f();
- var /*@ type=B* */ v6 = t /*@target=Test.[]*/ [/*@ typeArgs=Index* */ f()];
+ var /*@type=B*/ v6 = t /*@target=Test.[]*/ [/*@typeArgs=Index*/ f()];
- var /*@ type=B* */ v7 =
+ var /*@type=B*/ v7 =
/*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()];
+ /*@typeArgs=Index*/ f()];
- var /*@ type=B* */ v8 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ var /*@type=B*/ v8 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline.expect
index 5ad8b13..976eb43 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Index {}
@@ -6,20 +5,25 @@
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, B v) {}
void test() {}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline_modelled.expect
index d66beca..b9e3599 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.textual_outline_modelled.expect
@@ -1,15 +1,14 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator *(B v) => null;
- B operator -(int i) => null;
- C operator &(A v) => null;
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
@@ -17,9 +16,14 @@
class Index {}
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, B v) {}
void test() {}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.expect
index 446a6ee..158db2e 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.expect
@@ -1,91 +1,70 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::B* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::B*>()){(self::Index*, self::B*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::B*} #t1.{self::Test::[]=}(#t2, self::f<self::B*>()){(self::Index*, self::B*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*){(self::Index*, self::B*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*}){(self::Index*, self::B*) →* void};
- let final self::Test* #t7 = t in let final self::Index* #t8 = self::f<self::Index*>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*}){(self::Index*, self::B*) →* void};
- t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in let final self::B* #t11 = #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index*, self::B*) →* void} in #t11;
- let final self::Test* #t13 = t in let final self::Index* #t14 = self::f<self::Index*>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void};
- self::B* v1 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = self::f<self::B*>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index*, self::B*) →* void} in #t17;
- self::B* v2 = let final self::Test* #t19 = t in let final self::Index* #t20 = self::f<self::Index*>() in let final self::B* #t21 = #t19.{self::Test::[]}(#t20){(self::Index*) →* self::B*} in #t21 == null ?{self::B*} let final self::B* #t22 = self::f<self::B*>() in let final void #t23 = #t19.{self::Test::[]=}(#t20, #t22){(self::Index*, self::B*) →* void} in #t22 : #t21;
- self::B* v4 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::B* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::B*) →* void} in #t26;
- self::C* v5 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::C* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index*, self::B*) →* void} in #t30;
- self::B* v6 = t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- self::B* v7 = let final self::Test* #t32 = t in let final self::Index* #t33 = self::f<self::Index*>() in let final self::B* #t34 = #t32.{self::Test::[]}(#t33){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index*, self::B*) →* void} in #t34;
- self::B* v8 = let final self::Test* #t36 = t in let final self::Index* #t37 = self::f<self::Index*>() in let final self::B* #t38 = #t36.{self::Test::[]}(#t37){(self::Index*) →* self::B*} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void} in #t38;
+ self::Test t = self::f<self::Test>();
+ self::Test2 t2 = self::f<self::Test2>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Test2 #t1 = t2 in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test2::[]}(#t2){(self::Index) → self::B?} == null ?{self::B?} #t1.{self::Test2::[]=}(#t2, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t5 = t in let final self::Index #t6 = self::f<self::Index>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::B #t11 = #t9.{self::Test::[]}(#t10){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::B) → void} in #t11;
+ let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Test #t15 = t in let final self::Index #t16 = self::f<self::Index>() in let final self::B #t17 = self::f<self::B>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index, self::B) → void} in #t17;
+ self::B? v2 = let final self::Test2 #t19 = t2 in let final self::Index #t20 = self::f<self::Index>() in let final self::B? #t21 = #t19.{self::Test2::[]}(#t20){(self::Index) → self::B?} in #t21 == null ?{self::B?} let final self::B? #t22 = self::f<self::B?>() in let final void #t23 = #t19.{self::Test2::[]=}(#t20, #t22){(self::Index, self::B?) → void} in #t22 : #t21{self::B};
+ self::B v4 = let final self::Test #t24 = t in let final self::Index #t25 = self::f<self::Index>() in let final self::B #t26 = #t24.{self::Test::[]}(#t25){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index, self::B) → void} in #t26;
+ self::C v5 = let final self::Test #t28 = t in let final self::Index #t29 = self::f<self::Index>() in let final self::C #t30 = #t28.{self::Test::[]}(#t29){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index, self::B) → void} in #t30;
+ self::B v6 = t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ self::B v7 = let final self::Test #t32 = t in let final self::Index #t33 = self::f<self::Index>() in let final self::B #t34 = #t32.{self::Test::[]}(#t33){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index, self::B) → void} in #t34;
+ self::B v8 = let final self::Test #t36 = t in let final self::Index #t37 = self::f<self::Index>() in let final self::B #t38 = #t36.{self::Test::[]}(#t37){(self::Index) → self::B} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t38;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.modular.expect
index 446a6ee..158db2e 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.modular.expect
@@ -1,91 +1,70 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::B* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::B*>()){(self::Index*, self::B*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::B*} #t1.{self::Test::[]=}(#t2, self::f<self::B*>()){(self::Index*, self::B*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*){(self::Index*, self::B*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*}){(self::Index*, self::B*) →* void};
- let final self::Test* #t7 = t in let final self::Index* #t8 = self::f<self::Index*>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*}){(self::Index*, self::B*) →* void};
- t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in let final self::B* #t11 = #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index*, self::B*) →* void} in #t11;
- let final self::Test* #t13 = t in let final self::Index* #t14 = self::f<self::Index*>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void};
- self::B* v1 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = self::f<self::B*>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index*, self::B*) →* void} in #t17;
- self::B* v2 = let final self::Test* #t19 = t in let final self::Index* #t20 = self::f<self::Index*>() in let final self::B* #t21 = #t19.{self::Test::[]}(#t20){(self::Index*) →* self::B*} in #t21 == null ?{self::B*} let final self::B* #t22 = self::f<self::B*>() in let final void #t23 = #t19.{self::Test::[]=}(#t20, #t22){(self::Index*, self::B*) →* void} in #t22 : #t21;
- self::B* v4 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::B* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::B*) →* void} in #t26;
- self::C* v5 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::C* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index*, self::B*) →* void} in #t30;
- self::B* v6 = t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- self::B* v7 = let final self::Test* #t32 = t in let final self::Index* #t33 = self::f<self::Index*>() in let final self::B* #t34 = #t32.{self::Test::[]}(#t33){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index*, self::B*) →* void} in #t34;
- self::B* v8 = let final self::Test* #t36 = t in let final self::Index* #t37 = self::f<self::Index*>() in let final self::B* #t38 = #t36.{self::Test::[]}(#t37){(self::Index*) →* self::B*} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void} in #t38;
+ self::Test t = self::f<self::Test>();
+ self::Test2 t2 = self::f<self::Test2>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Test2 #t1 = t2 in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test2::[]}(#t2){(self::Index) → self::B?} == null ?{self::B?} #t1.{self::Test2::[]=}(#t2, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t5 = t in let final self::Index #t6 = self::f<self::Index>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::B #t11 = #t9.{self::Test::[]}(#t10){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::B) → void} in #t11;
+ let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Test #t15 = t in let final self::Index #t16 = self::f<self::Index>() in let final self::B #t17 = self::f<self::B>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index, self::B) → void} in #t17;
+ self::B? v2 = let final self::Test2 #t19 = t2 in let final self::Index #t20 = self::f<self::Index>() in let final self::B? #t21 = #t19.{self::Test2::[]}(#t20){(self::Index) → self::B?} in #t21 == null ?{self::B?} let final self::B? #t22 = self::f<self::B?>() in let final void #t23 = #t19.{self::Test2::[]=}(#t20, #t22){(self::Index, self::B?) → void} in #t22 : #t21{self::B};
+ self::B v4 = let final self::Test #t24 = t in let final self::Index #t25 = self::f<self::Index>() in let final self::B #t26 = #t24.{self::Test::[]}(#t25){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index, self::B) → void} in #t26;
+ self::C v5 = let final self::Test #t28 = t in let final self::Index #t29 = self::f<self::Index>() in let final self::C #t30 = #t28.{self::Test::[]}(#t29){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index, self::B) → void} in #t30;
+ self::B v6 = t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ self::B v7 = let final self::Test #t32 = t in let final self::Index #t33 = self::f<self::Index>() in let final self::B #t34 = #t32.{self::Test::[]}(#t33){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index, self::B) → void} in #t34;
+ self::B v8 = let final self::Test #t36 = t in let final self::Index #t37 = self::f<self::Index>() in let final self::B #t38 = #t36.{self::Test::[]}(#t37){(self::Index) → self::B} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t38;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.outline.expect
index 01bd466..fd96765 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.outline.expect
@@ -1,72 +1,50 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(self::C* v) → self::A*
+ operator +(self::C v) → self::B
;
- operator -(core::int* i) → self::B*
+ operator -(core::int i) → self::B
;
- operator *(self::B* v) → self::B*
+ operator *(self::B v) → self::B
;
- operator &(self::A* v) → self::C*
+ operator &(self::A v) → self::C
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
;
- operator [](self::Index* i) → self::B*
+ operator [](self::Index i) → self::B
;
- operator []=(self::Index* i, self::B* v) → void
+ operator []=(self::Index i, self::B v) → void
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::B? v) → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.transformed.expect
index 446a6ee..158db2e 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_full.dart.weak.transformed.expect
@@ -1,91 +1,70 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::B* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::B*>()){(self::Index*, self::B*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::B*} #t1.{self::Test::[]=}(#t2, self::f<self::B*>()){(self::Index*, self::B*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*){(self::Index*, self::B*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*}){(self::Index*, self::B*) →* void};
- let final self::Test* #t7 = t in let final self::Index* #t8 = self::f<self::Index*>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*}){(self::Index*, self::B*) →* void};
- t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in let final self::B* #t11 = #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index*, self::B*) →* void} in #t11;
- let final self::Test* #t13 = t in let final self::Index* #t14 = self::f<self::Index*>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void};
- self::B* v1 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = self::f<self::B*>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index*, self::B*) →* void} in #t17;
- self::B* v2 = let final self::Test* #t19 = t in let final self::Index* #t20 = self::f<self::Index*>() in let final self::B* #t21 = #t19.{self::Test::[]}(#t20){(self::Index*) →* self::B*} in #t21 == null ?{self::B*} let final self::B* #t22 = self::f<self::B*>() in let final void #t23 = #t19.{self::Test::[]=}(#t20, #t22){(self::Index*, self::B*) →* void} in #t22 : #t21;
- self::B* v4 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::B* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::B*) →* void} in #t26;
- self::C* v5 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::C* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index*, self::B*) →* void} in #t30;
- self::B* v6 = t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- self::B* v7 = let final self::Test* #t32 = t in let final self::Index* #t33 = self::f<self::Index*>() in let final self::B* #t34 = #t32.{self::Test::[]}(#t33){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index*, self::B*) →* void} in #t34;
- self::B* v8 = let final self::Test* #t36 = t in let final self::Index* #t37 = self::f<self::Index*>() in let final self::B* #t38 = #t36.{self::Test::[]}(#t37){(self::Index*) →* self::B*} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void} in #t38;
+ self::Test t = self::f<self::Test>();
+ self::Test2 t2 = self::f<self::Test2>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Test2 #t1 = t2 in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test2::[]}(#t2){(self::Index) → self::B?} == null ?{self::B?} #t1.{self::Test2::[]=}(#t2, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t5 = t in let final self::Index #t6 = self::f<self::Index>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::B #t11 = #t9.{self::Test::[]}(#t10){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::B) → void} in #t11;
+ let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Test #t15 = t in let final self::Index #t16 = self::f<self::Index>() in let final self::B #t17 = self::f<self::B>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index, self::B) → void} in #t17;
+ self::B? v2 = let final self::Test2 #t19 = t2 in let final self::Index #t20 = self::f<self::Index>() in let final self::B? #t21 = #t19.{self::Test2::[]}(#t20){(self::Index) → self::B?} in #t21 == null ?{self::B?} let final self::B? #t22 = self::f<self::B?>() in let final void #t23 = #t19.{self::Test2::[]=}(#t20, #t22){(self::Index, self::B?) → void} in #t22 : #t21{self::B};
+ self::B v4 = let final self::Test #t24 = t in let final self::Index #t25 = self::f<self::Index>() in let final self::B #t26 = #t24.{self::Test::[]}(#t25){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index, self::B) → void} in #t26;
+ self::C v5 = let final self::Test #t28 = t in let final self::Index #t29 = self::f<self::Index>() in let final self::C #t30 = #t28.{self::Test::[]}(#t29){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index, self::B) → void} in #t30;
+ self::B v6 = t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ self::B v7 = let final self::Test #t32 = t in let final self::Index #t33 = self::f<self::Index>() in let final self::B #t34 = #t32.{self::Test::[]}(#t33){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index, self::B) → void} in #t34;
+ self::B v8 = let final self::Test #t36 = t in let final self::Index #t37 = self::f<self::Index>() in let final self::B #t38 = #t36.{self::Test::[]}(#t37){(self::Index) → self::B} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t38;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super.dart b/pkg/front_end/testcases/inference/infer_assign_to_index_super.dart
index f9e36a6..b9a5601 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_super.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -31,20 +33,16 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ /*@ typeArgs=Index* */ f()] ??= /*@ typeArgs=B* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@ typeArgs=Index* */ f()] /*@target=B.+*/ += /*@ typeArgs=C* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@ typeArgs=Index* */ f()] /*@target=B.**/ *= /*@ typeArgs=B* */ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@ typeArgs=Index* */ f()] /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
/*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/
[/*@ typeArgs=Index* */ f()];
@@ -56,27 +54,21 @@
/*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
var /*@ type=B* */ v2 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ /*@ typeArgs=Index* */ f()] ??= /*@ typeArgs=B* */ f();
var /*@ type=A* */ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@ typeArgs=Index* */ f()] /*@target=B.+*/ += /*@ typeArgs=C* */ f();
var /*@ type=B* */ v4 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@ typeArgs=Index* */ f()] /*@target=B.**/ *= /*@ typeArgs=B* */ f();
var /*@ type=C* */ v5 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@ typeArgs=Index* */ f()] /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ --super
- /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ var /*@ type=B* */ v6 = /*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
/*@ typeArgs=Index* */ f()];
- var /*@ type=B* */ v7 = super
- /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ var /*@ type=B* */ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
/*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart
new file mode 100644
index 0000000..931eca5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart
@@ -0,0 +1,82 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+}
+
+class Test extends Base {
+ void test() {
+ super /*@target=Base.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ [/*@typeArgs=Index*/ f()];
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ [/*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = super /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ var /*@type=B*/ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()];
+
+ var /*@type=B*/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+ }
+}
+
+class Base2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
+class Test2 extends Base2 {
+ void test() {
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B?*/ v2 = super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.textual_outline.expect
new file mode 100644
index 0000000..5b1cc8c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.textual_outline.expect
@@ -0,0 +1,36 @@
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+}
+
+class Test extends Base {
+ void test() {}
+}
+
+class Base2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
+class Test2 extends Base2 {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1a3ca27
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.textual_outline_modelled.expect
@@ -0,0 +1,36 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class Base {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+}
+
+class Base2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
+class C extends B {}
+
+class Index {}
+
+class Test extends Base {
+ void test() {}
+}
+
+class Test2 extends Base2 {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.expect
new file mode 100644
index 0000000..fb9581e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.expect
@@ -0,0 +1,79 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::[]=}(self::f<self::Index>(), self::f<self::B>());
+ let final self::Index #t1 = self::f<self::Index>() in super.{self::Base::[]=}(#t1, super.{self::Base::[]}(#t1).{self::B::+}(self::f<self::C>()){(self::C) → self::B});
+ let final self::Index #t2 = self::f<self::Index>() in super.{self::Base::[]=}(#t2, super.{self::Base::[]}(#t2).{self::B::*}(self::f<self::B>()){(self::B) → self::B});
+ let final self::Index #t3 = self::f<self::Index>() in super.{self::Base::[]=}(#t3, super.{self::Base::[]}(#t3).{self::B::&}(self::f<self::A>()){(self::A) → self::C});
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = super.{self::Base::[]}(#t4).{self::B::-}(1){(core::int) → self::B} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in super.{self::Base::[]=}(#t7, super.{self::Base::[]}(#t7).{self::B::-}(1){(core::int) → self::B});
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = super.{self::Base::[]=}(#t8, #t9) in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = super.{self::Base::[]}(#t11).{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = super.{self::Base::[]=}(#t11, #t12) in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = super.{self::Base::[]}(#t14).{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = super.{self::Base::[]=}(#t14, #t15) in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = super.{self::Base::[]}(#t17).{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = super.{self::Base::[]}(#t20).{self::B::-}(1){(core::int) → self::B} in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = super.{self::Base::[]}(#t23) in let final void #t25 = super.{self::Base::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}) in #t24;
+ }
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in super.{self::Base2::[]}(#t26) == null ?{self::B?} super.{self::Base2::[]=}(#t26, self::f<self::B?>()) : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = super.{self::Base2::[]}(#t27) in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = super.{self::Base2::[]=}(#t27, #t29) in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.modular.expect
new file mode 100644
index 0000000..fb9581e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.modular.expect
@@ -0,0 +1,79 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::[]=}(self::f<self::Index>(), self::f<self::B>());
+ let final self::Index #t1 = self::f<self::Index>() in super.{self::Base::[]=}(#t1, super.{self::Base::[]}(#t1).{self::B::+}(self::f<self::C>()){(self::C) → self::B});
+ let final self::Index #t2 = self::f<self::Index>() in super.{self::Base::[]=}(#t2, super.{self::Base::[]}(#t2).{self::B::*}(self::f<self::B>()){(self::B) → self::B});
+ let final self::Index #t3 = self::f<self::Index>() in super.{self::Base::[]=}(#t3, super.{self::Base::[]}(#t3).{self::B::&}(self::f<self::A>()){(self::A) → self::C});
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = super.{self::Base::[]}(#t4).{self::B::-}(1){(core::int) → self::B} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in super.{self::Base::[]=}(#t7, super.{self::Base::[]}(#t7).{self::B::-}(1){(core::int) → self::B});
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = super.{self::Base::[]=}(#t8, #t9) in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = super.{self::Base::[]}(#t11).{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = super.{self::Base::[]=}(#t11, #t12) in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = super.{self::Base::[]}(#t14).{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = super.{self::Base::[]=}(#t14, #t15) in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = super.{self::Base::[]}(#t17).{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = super.{self::Base::[]}(#t20).{self::B::-}(1){(core::int) → self::B} in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = super.{self::Base::[]}(#t23) in let final void #t25 = super.{self::Base::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}) in #t24;
+ }
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in super.{self::Base2::[]}(#t26) == null ?{self::B?} super.{self::Base2::[]=}(#t26, self::f<self::B?>()) : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = super.{self::Base2::[]}(#t27) in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = super.{self::Base2::[]=}(#t27, #t29) in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.outline.expect
new file mode 100644
index 0000000..090bb5b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.outline.expect
@@ -0,0 +1,60 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ ;
+ operator [](self::Index i) → self::B
+ ;
+ operator []=(self::Index i, self::B v) → void
+ ;
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ ;
+ method test() → void
+ ;
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::B? v) → void
+ ;
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.transformed.expect
new file mode 100644
index 0000000..fb9581e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_super2.dart.weak.transformed.expect
@@ -0,0 +1,79 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::[]=}(self::f<self::Index>(), self::f<self::B>());
+ let final self::Index #t1 = self::f<self::Index>() in super.{self::Base::[]=}(#t1, super.{self::Base::[]}(#t1).{self::B::+}(self::f<self::C>()){(self::C) → self::B});
+ let final self::Index #t2 = self::f<self::Index>() in super.{self::Base::[]=}(#t2, super.{self::Base::[]}(#t2).{self::B::*}(self::f<self::B>()){(self::B) → self::B});
+ let final self::Index #t3 = self::f<self::Index>() in super.{self::Base::[]=}(#t3, super.{self::Base::[]}(#t3).{self::B::&}(self::f<self::A>()){(self::A) → self::C});
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = super.{self::Base::[]}(#t4).{self::B::-}(1){(core::int) → self::B} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in super.{self::Base::[]=}(#t7, super.{self::Base::[]}(#t7).{self::B::-}(1){(core::int) → self::B});
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = super.{self::Base::[]=}(#t8, #t9) in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = super.{self::Base::[]}(#t11).{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = super.{self::Base::[]=}(#t11, #t12) in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = super.{self::Base::[]}(#t14).{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = super.{self::Base::[]=}(#t14, #t15) in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = super.{self::Base::[]}(#t17).{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = super.{self::Base::[]}(#t20).{self::B::-}(1){(core::int) → self::B} in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = super.{self::Base::[]}(#t23) in let final void #t25 = super.{self::Base::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}) in #t24;
+ }
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in super.{self::Base2::[]}(#t26) == null ?{self::B?} super.{self::Base2::[]=}(#t26, self::f<self::B?>()) : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = super.{self::Base2::[]}(#t27) in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = super.{self::Base2::[]=}(#t27, #t29) in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this.dart b/pkg/front_end/testcases/inference/infer_assign_to_index_this.dart
index d42816b..4eddff3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_index_this.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart
new file mode 100644
index 0000000..6c16f90
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart
@@ -0,0 +1,84 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+
+ void test() {
+ this /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/
+ += /*@typeArgs=C*/ f();
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/
+ *= /*@typeArgs=B*/ f();
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/
+ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()];
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = this /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ var /*@type=B*/ v4 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/
+ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v3 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/
+ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/
+ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()];
+
+ var /*@type=B*/ v7 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+ }
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+
+ void test() {
+ this /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B?*/ v2 = this /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.textual_outline.expect
new file mode 100644
index 0000000..52bbd2c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.textual_outline.expect
@@ -0,0 +1,30 @@
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+ void test() {}
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3c0c624
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.textual_outline_modelled.expect
@@ -0,0 +1,30 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+class Index {}
+
+class Test {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+ void test() {}
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.expect
new file mode 100644
index 0000000..a623636
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.expect
@@ -0,0 +1,69 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+ method test() → void {
+ this.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Index #t1 = self::f<self::Index>() in this.{self::Test::[]=}(#t1, this.{self::Test::[]}(#t1){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t2 = self::f<self::Index>() in this.{self::Test::[]=}(#t2, this.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t3 = self::f<self::Index>() in this.{self::Test::[]=}(#t3, this.{self::Test::[]}(#t3){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = this.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t6 = this.{self::Test::[]=}(#t4, #t5){(self::Index, self::B) → void} in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in this.{self::Test::[]=}(#t7, this.{self::Test::[]}(#t7){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = this.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ self::B v4 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = this.{self::Test::[]}(#t11){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = this.{self::Test::[]=}(#t11, #t12){(self::Index, self::B) → void} in #t12;
+ self::B v3 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = this.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = this.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = this.{self::Test::[]}(#t17){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = this.{self::Test::[]=}(#t17, #t18){(self::Index, self::B) → void} in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = this.{self::Test::[]}(#t20){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t22 = this.{self::Test::[]=}(#t20, #t21){(self::Index, self::B) → void} in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = this.{self::Test::[]}(#t23){(self::Index) → self::B} in let final void #t25 = this.{self::Test::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t24;
+ }
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in this.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::B?} this.{self::Test2::[]=}(#t26, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = this.{self::Test2::[]}(#t27){(self::Index) → self::B?} in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = this.{self::Test2::[]=}(#t27, #t29){(self::Index, self::B?) → void} in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.modular.expect
new file mode 100644
index 0000000..a623636
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.modular.expect
@@ -0,0 +1,69 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+ method test() → void {
+ this.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Index #t1 = self::f<self::Index>() in this.{self::Test::[]=}(#t1, this.{self::Test::[]}(#t1){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t2 = self::f<self::Index>() in this.{self::Test::[]=}(#t2, this.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t3 = self::f<self::Index>() in this.{self::Test::[]=}(#t3, this.{self::Test::[]}(#t3){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = this.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t6 = this.{self::Test::[]=}(#t4, #t5){(self::Index, self::B) → void} in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in this.{self::Test::[]=}(#t7, this.{self::Test::[]}(#t7){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = this.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ self::B v4 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = this.{self::Test::[]}(#t11){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = this.{self::Test::[]=}(#t11, #t12){(self::Index, self::B) → void} in #t12;
+ self::B v3 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = this.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = this.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = this.{self::Test::[]}(#t17){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = this.{self::Test::[]=}(#t17, #t18){(self::Index, self::B) → void} in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = this.{self::Test::[]}(#t20){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t22 = this.{self::Test::[]=}(#t20, #t21){(self::Index, self::B) → void} in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = this.{self::Test::[]}(#t23){(self::Index) → self::B} in let final void #t25 = this.{self::Test::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t24;
+ }
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in this.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::B?} this.{self::Test2::[]=}(#t26, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = this.{self::Test2::[]}(#t27){(self::Index) → self::B?} in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = this.{self::Test2::[]=}(#t27, #t29){(self::Index, self::B?) → void} in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.outline.expect
new file mode 100644
index 0000000..03e4c14
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.outline.expect
@@ -0,0 +1,52 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ ;
+ operator [](self::Index i) → self::B
+ ;
+ operator []=(self::Index i, self::B v) → void
+ ;
+ method test() → void
+ ;
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::B? v) → void
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.transformed.expect
new file mode 100644
index 0000000..a623636
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_index_this2.dart.weak.transformed.expect
@@ -0,0 +1,69 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+ method test() → void {
+ this.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Index #t1 = self::f<self::Index>() in this.{self::Test::[]=}(#t1, this.{self::Test::[]}(#t1){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t2 = self::f<self::Index>() in this.{self::Test::[]=}(#t2, this.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t3 = self::f<self::Index>() in this.{self::Test::[]=}(#t3, this.{self::Test::[]}(#t3){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = this.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t6 = this.{self::Test::[]=}(#t4, #t5){(self::Index, self::B) → void} in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in this.{self::Test::[]=}(#t7, this.{self::Test::[]}(#t7){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = this.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ self::B v4 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = this.{self::Test::[]}(#t11){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = this.{self::Test::[]=}(#t11, #t12){(self::Index, self::B) → void} in #t12;
+ self::B v3 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = this.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = this.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = this.{self::Test::[]}(#t17){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = this.{self::Test::[]=}(#t17, #t18){(self::Index, self::B) → void} in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = this.{self::Test::[]}(#t20){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t22 = this.{self::Test::[]=}(#t20, #t21){(self::Index, self::B) → void} in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = this.{self::Test::[]}(#t23){(self::Index) → self::B} in let final void #t25 = this.{self::Test::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t24;
+ }
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in this.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::B?} this.{self::Test2::[]=}(#t26, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = this.{self::Test2::[]}(#t27){(self::Index) → self::B?} in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = this.{self::Test2::[]=}(#t27, #t29){(self::Index, self::B?) → void} in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local.dart b/pkg/front_end/testcases/inference/infer_assign_to_local.dart
index 56ebaa0..e72891d 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart
new file mode 100644
index 0000000..3cca74e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart
@@ -0,0 +1,51 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+void test(B local, B? local2, B? local3) {
+ local = /*@typeArgs=B*/ f();
+
+ local2 ??= /*@typeArgs=B?*/ f();
+
+ local /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ local /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ local /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --local;
+
+ local /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = local = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = local3 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = local /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = local /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = local /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --local;
+
+ var /*@type=B*/ v7 = /*@type=B*/ local /*@type=B*/ /*@target=B.-*/ --;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.textual_outline.expect
new file mode 100644
index 0000000..76cd500
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.textual_outline.expect
@@ -0,0 +1,16 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+void test(B local, B? local2, B? local3) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..54c75c7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.textual_outline_modelled.expect
@@ -0,0 +1,17 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+main() {}
+void test(B local, B? local2, B? local3) {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.expect
new file mode 100644
index 0000000..e817caa
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::B local, self::B? local2, self::B? local3) → void {
+ local = self::f<self::B>();
+ local2 == null ?{self::B?} local2 = self::f<self::B?>() : null;
+ local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = local = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = local3 in #t1 == null ?{self::B?} local3 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = local in let final self::B #t3 = local = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.modular.expect
new file mode 100644
index 0000000..e817caa
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.modular.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::B local, self::B? local2, self::B? local3) → void {
+ local = self::f<self::B>();
+ local2 == null ?{self::B?} local2 = self::f<self::B?>() : null;
+ local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = local = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = local3 in #t1 == null ?{self::B?} local3 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = local in let final self::B #t3 = local = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.outline.expect
new file mode 100644
index 0000000..ee73ba5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.outline.expect
@@ -0,0 +1,30 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method test(self::B local, self::B? local2, self::B? local3) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.transformed.expect
new file mode 100644
index 0000000..e817caa
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local2.dart.weak.transformed.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::B local, self::B? local2, self::B? local3) → void {
+ local = self::f<self::B>();
+ local2 == null ?{self::B?} local2 = self::f<self::B?>() : null;
+ local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = local = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = local3 in #t1 == null ?{self::B?} local3 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = local in let final self::B #t3 = local = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart
index 282340c..0c7bdba 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,59 +9,59 @@
num getNum() => 0;
double getDouble() => 0.0;
-void test1(int t) {
- var /*@ type=int* */ v1 = t = getInt();
+void test1(int t, int? t2) {
+ var /*@type=int*/ v1 = t = getInt();
- var /*@ type=int* */ v4 = t ??= getInt();
+ var /*@type=int*/ v4 = t2 ??= getInt();
- var /*@ type=int* */ v7 = t /*@target=num.+*/ += getInt();
+ var /*@type=int*/ v7 = t /*@target=num.+*/ += getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++t;
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++t;
- var /*@ type=int* */ v11 = /*@ type=int* */ t
- /*@ type=int* */ /*@target=num.+*/ ++;
+ var /*@type=int*/ v11 = /*@type=int*/ t
+ /*@type=int*/ /*@target=num.+*/ ++;
}
-void test2(num t) {
- var /*@ type=int* */ v1 = t = getInt();
+void test2(num t, num? t2, num? t3, num? t4) {
+ var /*@type=int*/ v1 = t = getInt();
- var /*@ type=num* */ v2 = t = getNum();
+ var /*@type=num*/ v2 = t = getNum();
- var /*@ type=double* */ v3 = t = getDouble();
+ var /*@type=double*/ v3 = t = getDouble();
- var /*@ type=num* */ v4 = t ??= getInt();
+ var /*@type=num*/ v4 = t2 ??= getInt();
- var /*@ type=num* */ v5 = t ??= getNum();
+ var /*@type=num*/ v5 = t3 ??= getNum();
- var /*@ type=num* */ v6 = t ??= getDouble();
+ var /*@type=num*/ v6 = t4 ??= getDouble();
- var /*@ type=num* */ v7 = t /*@target=num.+*/ += getInt();
+ var /*@type=num*/ v7 = t /*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = t /*@target=num.+*/ += getNum();
+ var /*@type=num*/ v8 = t /*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = t /*@target=num.+*/ += getDouble();
+ var /*@type=double*/ v9 = t /*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++t;
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++t;
- var /*@ type=num* */ v11 = /*@ type=num* */ t
- /*@ type=num* */ /*@target=num.+*/ ++;
+ var /*@type=num*/ v11 = /*@type=num*/ t
+ /*@type=num*/ /*@target=num.+*/ ++;
}
-void test3(double t) {
- var /*@ type=double* */ v3 = t = getDouble();
+void test3(double t, double? t2) {
+ var /*@type=double*/ v3 = t = getDouble();
- var /*@ type=double* */ v6 = t ??= getDouble();
+ var /*@type=double*/ v6 = t2 ??= getDouble();
- var /*@ type=double* */ v7 = t /*@target=double.+*/ += getInt();
+ var /*@type=double*/ v7 = t /*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = t /*@target=double.+*/ += getNum();
+ var /*@type=double*/ v8 = t /*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = t /*@target=double.+*/ += getDouble();
+ var /*@type=double*/ v9 = t /*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++t;
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++t;
- var /*@ type=double* */ v11 = /*@ type=double* */ t
- /*@ type=double* */ /*@target=double.+*/ ++;
+ var /*@type=double*/ v11 = /*@type=double*/ t
+ /*@type=double*/ /*@target=double.+*/ ++;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline.expect
index adecc78..9202a99 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
int getInt() => 0;
num getNum() => 0;
double getDouble() => 0.0;
-void test1(int t) {}
-void test2(num t) {}
-void test3(double t) {}
+void test1(int t, int? t2) {}
+void test2(num t, num? t2, num? t3, num? t4) {}
+void test3(double t, double? t2) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline_modelled.expect
index 0907a6c..d299937 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
double getDouble() => 0.0;
int getInt() => 0;
main() {}
num getNum() => 0;
-void test1(int t) {}
-void test2(num t) {}
-void test3(double t) {}
+void test1(int t, int? t2) {}
+void test2(num t, num? t2, num? t3, num? t4) {}
+void test3(double t, double? t2) {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.expect
index eda9415..62846c1 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.expect
@@ -1,40 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
-static method test1(core::int* t) → void {
- core::int* v1 = t = self::getInt();
- core::int* v4 = let final core::int* #t1 = t in #t1 == null ?{core::int*} t = self::getInt() : #t1;
- core::int* v7 = t = t.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = t = t.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = t in let final core::int* #t3 = t = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+static method test1(core::int t, core::int? t2) → void {
+ core::int v1 = t = self::getInt();
+ core::int v4 = let final core::int? #t1 = t2 in #t1 == null ?{core::int} t2 = self::getInt() : #t1{core::int};
+ core::int v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = t = t.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = t in let final core::int #t3 = t = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
-static method test2(core::num* t) → void {
- core::int* v1 = t = self::getInt();
- core::num* v2 = t = self::getNum();
- core::double* v3 = t = self::getDouble();
- core::num* v4 = let final core::num* #t4 = t in #t4 == null ?{core::num*} t = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = t in #t5 == null ?{core::num*} t = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = t in #t6 == null ?{core::num*} t = self::getDouble() : #t6;
- core::num* v7 = t = t.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = t = t.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = t = t.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = t = t.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = t in let final core::num* #t8 = t = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void {
+ core::int v1 = t = self::getInt();
+ core::num v2 = t = self::getNum();
+ core::double v3 = t = self::getDouble();
+ core::num v4 = let final core::num? #t4 = t2 in #t4 == null ?{core::num} t2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = t3 in #t5 == null ?{core::num} t3 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = t4 in #t6 == null ?{core::num} t4 = self::getDouble() : #t6{core::num};
+ core::num v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = t = t.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = t = t.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = t = t.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = t in let final core::num #t8 = t = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
-static method test3(core::double* t) → void {
- core::double* v3 = t = self::getDouble();
- core::double* v6 = let final core::double* #t9 = t in #t9 == null ?{core::double*} t = self::getDouble() : #t9;
- core::double* v7 = t = t.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = t = t.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = t = t.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = t = t.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = t in let final core::double* #t11 = t = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+static method test3(core::double t, core::double? t2) → void {
+ core::double v3 = t = self::getDouble();
+ core::double v6 = let final core::double? #t9 = t2 in #t9 == null ?{core::double} t2 = self::getDouble() : #t9{core::double};
+ core::double v7 = t = t.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = t = t.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = t = t.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = t = t.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = t in let final core::double #t11 = t = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.modular.expect
index eda9415..62846c1 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.modular.expect
@@ -1,40 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
-static method test1(core::int* t) → void {
- core::int* v1 = t = self::getInt();
- core::int* v4 = let final core::int* #t1 = t in #t1 == null ?{core::int*} t = self::getInt() : #t1;
- core::int* v7 = t = t.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = t = t.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = t in let final core::int* #t3 = t = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+static method test1(core::int t, core::int? t2) → void {
+ core::int v1 = t = self::getInt();
+ core::int v4 = let final core::int? #t1 = t2 in #t1 == null ?{core::int} t2 = self::getInt() : #t1{core::int};
+ core::int v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = t = t.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = t in let final core::int #t3 = t = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
-static method test2(core::num* t) → void {
- core::int* v1 = t = self::getInt();
- core::num* v2 = t = self::getNum();
- core::double* v3 = t = self::getDouble();
- core::num* v4 = let final core::num* #t4 = t in #t4 == null ?{core::num*} t = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = t in #t5 == null ?{core::num*} t = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = t in #t6 == null ?{core::num*} t = self::getDouble() : #t6;
- core::num* v7 = t = t.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = t = t.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = t = t.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = t = t.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = t in let final core::num* #t8 = t = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void {
+ core::int v1 = t = self::getInt();
+ core::num v2 = t = self::getNum();
+ core::double v3 = t = self::getDouble();
+ core::num v4 = let final core::num? #t4 = t2 in #t4 == null ?{core::num} t2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = t3 in #t5 == null ?{core::num} t3 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = t4 in #t6 == null ?{core::num} t4 = self::getDouble() : #t6{core::num};
+ core::num v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = t = t.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = t = t.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = t = t.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = t in let final core::num #t8 = t = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
-static method test3(core::double* t) → void {
- core::double* v3 = t = self::getDouble();
- core::double* v6 = let final core::double* #t9 = t in #t9 == null ?{core::double*} t = self::getDouble() : #t9;
- core::double* v7 = t = t.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = t = t.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = t = t.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = t = t.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = t in let final core::double* #t11 = t = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+static method test3(core::double t, core::double? t2) → void {
+ core::double v3 = t = self::getDouble();
+ core::double v6 = let final core::double? #t9 = t2 in #t9 == null ?{core::double} t2 = self::getDouble() : #t9{core::double};
+ core::double v7 = t = t.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = t = t.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = t = t.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = t = t.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = t in let final core::double #t11 = t = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.outline.expect
index d53fd7b..332425c 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.outline.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getInt() → core::int*
+static method getInt() → core::int
;
-static method getNum() → core::num*
+static method getNum() → core::num
;
-static method getDouble() → core::double*
+static method getDouble() → core::double
;
-static method test1(core::int* t) → void
+static method test1(core::int t, core::int? t2) → void
;
-static method test2(core::num* t) → void
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void
;
-static method test3(core::double* t) → void
+static method test3(core::double t, core::double? t2) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.transformed.expect
index eda9415..62846c1 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_local_upwards.dart.weak.transformed.expect
@@ -1,40 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
-static method test1(core::int* t) → void {
- core::int* v1 = t = self::getInt();
- core::int* v4 = let final core::int* #t1 = t in #t1 == null ?{core::int*} t = self::getInt() : #t1;
- core::int* v7 = t = t.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = t = t.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = t in let final core::int* #t3 = t = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+static method test1(core::int t, core::int? t2) → void {
+ core::int v1 = t = self::getInt();
+ core::int v4 = let final core::int? #t1 = t2 in #t1 == null ?{core::int} t2 = self::getInt() : #t1{core::int};
+ core::int v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = t = t.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = t in let final core::int #t3 = t = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
-static method test2(core::num* t) → void {
- core::int* v1 = t = self::getInt();
- core::num* v2 = t = self::getNum();
- core::double* v3 = t = self::getDouble();
- core::num* v4 = let final core::num* #t4 = t in #t4 == null ?{core::num*} t = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = t in #t5 == null ?{core::num*} t = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = t in #t6 == null ?{core::num*} t = self::getDouble() : #t6;
- core::num* v7 = t = t.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = t = t.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = t = t.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = t = t.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = t in let final core::num* #t8 = t = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void {
+ core::int v1 = t = self::getInt();
+ core::num v2 = t = self::getNum();
+ core::double v3 = t = self::getDouble();
+ core::num v4 = let final core::num? #t4 = t2 in #t4 == null ?{core::num} t2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = t3 in #t5 == null ?{core::num} t3 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = t4 in #t6 == null ?{core::num} t4 = self::getDouble() : #t6{core::num};
+ core::num v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = t = t.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = t = t.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = t = t.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = t in let final core::num #t8 = t = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
-static method test3(core::double* t) → void {
- core::double* v3 = t = self::getDouble();
- core::double* v6 = let final core::double* #t9 = t in #t9 == null ?{core::double*} t = self::getDouble() : #t9;
- core::double* v7 = t = t.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = t = t.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = t = t.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = t = t.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = t in let final core::double* #t11 = t = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+static method test3(core::double t, core::double? t2) → void {
+ core::double v3 = t = self::getDouble();
+ core::double v6 = let final core::double? #t9 = t2 in #t9 == null ?{core::double} t2 = self::getDouble() : #t9{core::double};
+ core::double v7 = t = t.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = t = t.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = t = t.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = t = t.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = t in let final core::double #t11 = t = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_full.dart
index 24d478e..658940d 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_full.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -23,36 +25,28 @@
static void test(Test t) {
t. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
- /*@ type=Test* */ /*@target=Test.member*/ t. /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@ type=Test* */ /*@target=Test.member*/ t
+ . /*@target=Test.member*/ member ??= /*@ typeArgs=B* */ f();
+ /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
/*@target=B.-*/ -- /*@ type=Test* */ t
. /*@target=Test.member*/ /*@target=Test.member*/ member;
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.-*/ --;
+ /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
var /*@ type=B* */ v1 =
t. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
- var /*@ type=B* */ v2 =
- /*@ type=Test* */ /*@target=Test.member*/ t
- . /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
- var /*@ type=A* */ v3 =
- /*@ type=Test* */ t
- . /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- var /*@ type=B* */ v4 =
- /*@ type=Test* */ t
- . /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- var /*@ type=C* */ v5 =
- /*@ type=Test* */ t
- . /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@ type=B* */ v2 = /*@ type=Test* */ /*@target=Test.member*/ t
+ . /*@target=Test.member*/ member ??= /*@ typeArgs=B* */ f();
+ var /*@ type=A* */ v3 = /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@ type=B* */ v4 = /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@ type=C* */ v5 = /*@ type=Test* */ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
var /*@ type=B* */ v6 = /*@target=B.-*/ -- /*@ type=Test* */ t
. /*@target=Test.member*/ /*@target=Test.member*/ member;
var /*@ type=B* */ v7 = /*@ type=Test* */ t
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart
new file mode 100644
index 0000000..b67eeb3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart
@@ -0,0 +1,59 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member;
+ B? member2;
+
+ Test(this.member);
+
+ static void test(Test t) {
+ t. /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+ /*@type=Test*/ /*@target=Test.member2*/ t
+ . /*@target=Test.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+ /*@target=B.-*/ -- /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member;
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
+ var /*@type=B*/ v1 =
+ t. /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+ var /*@type=B?*/ v2 = /*@type=Test*/ /*@target=Test.member2*/ t
+ . /*@target=Test.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+ var /*@type=B*/ v3 = /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ var /*@type=B*/ v4 = /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+ var /*@type=C*/ v5 = /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+ var /*@type=B*/ v6 = /*@target=B.-*/ -- /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member;
+ var /*@type=B*/ v7 = /*@type=Test*/ t
+ . /*@type=B*/ /*@target=Test.member*/ /*@target=Test.member*/
+ /*@type=B*/ member /*@target=B.-*/ --;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.textual_outline.expect
new file mode 100644
index 0000000..27a8ed0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.textual_outline.expect
@@ -0,0 +1,23 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member;
+ B? member2;
+ Test(this.member);
+ static void test(Test t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..85405b3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.textual_outline_modelled.expect
@@ -0,0 +1,23 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+class Test {
+ B? member2;
+ B member;
+ Test(this.member);
+ static void test(Test t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.expect
new file mode 100644
index 0000000..ff4363d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ field self::B? member2 = null;
+ constructor •(self::B member) → self::Test
+ : self::Test::member = member, super core::Object::•()
+ ;
+ static method test(self::Test t) → void {
+ t.{self::Test::member} = self::f<self::B>();
+ let final self::Test #t1 = t in #t1.{self::Test::member2}{self::B?} == null ?{self::B?} #t1.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test #t2 = t in #t2.{self::Test::member} = #t2.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test #t3 = t in #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test #t4 = t in #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test #t5 = t in #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ let final self::Test #t6 = t in #t6.{self::Test::member} = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = t.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test #t7 = t in let final self::B? #t8 = #t7.{self::Test::member2}{self::B?} in #t8 == null ?{self::B?} #t7.{self::Test::member2} = self::f<self::B?>() : #t8{self::B};
+ self::B v3 = let final self::Test #t9 = t in #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = let final self::Test #t10 = t in #t10.{self::Test::member} = #t10.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = let final self::Test #t11 = t in #t11.{self::Test::member} = #t11.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = let final self::Test #t12 = t in #t12.{self::Test::member} = #t12.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::Test #t13 = t in let final self::B #t14 = #t13.{self::Test::member}{self::B} in let final self::B #t15 = #t13.{self::Test::member} = #t14.{self::B::-}(1){(core::int) → self::B} in #t14;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.modular.expect
new file mode 100644
index 0000000..ff4363d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.modular.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ field self::B? member2 = null;
+ constructor •(self::B member) → self::Test
+ : self::Test::member = member, super core::Object::•()
+ ;
+ static method test(self::Test t) → void {
+ t.{self::Test::member} = self::f<self::B>();
+ let final self::Test #t1 = t in #t1.{self::Test::member2}{self::B?} == null ?{self::B?} #t1.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test #t2 = t in #t2.{self::Test::member} = #t2.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test #t3 = t in #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test #t4 = t in #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test #t5 = t in #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ let final self::Test #t6 = t in #t6.{self::Test::member} = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = t.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test #t7 = t in let final self::B? #t8 = #t7.{self::Test::member2}{self::B?} in #t8 == null ?{self::B?} #t7.{self::Test::member2} = self::f<self::B?>() : #t8{self::B};
+ self::B v3 = let final self::Test #t9 = t in #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = let final self::Test #t10 = t in #t10.{self::Test::member} = #t10.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = let final self::Test #t11 = t in #t11.{self::Test::member} = #t11.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = let final self::Test #t12 = t in #t12.{self::Test::member} = #t12.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::Test #t13 = t in let final self::B #t14 = #t13.{self::Test::member}{self::B} in let final self::B #t15 = #t13.{self::Test::member} = #t14.{self::B::-}(1){(core::int) → self::B} in #t14;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.outline.expect
new file mode 100644
index 0000000..a6db03f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ field self::B? member2;
+ constructor •(self::B member) → self::Test
+ ;
+ static method test(self::Test t) → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ff4363d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_full2.dart.weak.transformed.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ field self::B? member2 = null;
+ constructor •(self::B member) → self::Test
+ : self::Test::member = member, super core::Object::•()
+ ;
+ static method test(self::Test t) → void {
+ t.{self::Test::member} = self::f<self::B>();
+ let final self::Test #t1 = t in #t1.{self::Test::member2}{self::B?} == null ?{self::B?} #t1.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test #t2 = t in #t2.{self::Test::member} = #t2.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test #t3 = t in #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test #t4 = t in #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test #t5 = t in #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ let final self::Test #t6 = t in #t6.{self::Test::member} = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = t.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test #t7 = t in let final self::B? #t8 = #t7.{self::Test::member2}{self::B?} in #t8 == null ?{self::B?} #t7.{self::Test::member2} = self::f<self::B?>() : #t8{self::B};
+ self::B v3 = let final self::Test #t9 = t in #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = let final self::Test #t10 = t in #t10.{self::Test::member} = #t10.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = let final self::Test #t11 = t in #t11.{self::Test::member} = #t11.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = let final self::Test #t12 = t in #t12.{self::Test::member} = #t12.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::Test #t13 = t in let final self::B #t14 = #t13.{self::Test::member}{self::B} in let final self::B #t15 = #t13.{self::Test::member} = #t14.{self::B::-}(1){(core::int) → self::B} in #t14;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart
index f810644..06ee1f8 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {}
class B extends A {
- A operator +(C v) => null;
+ B operator +(C v) => null;
B operator -(int i) => null;
B operator *(B v) => null;
C operator &(A v) => null;
@@ -21,65 +23,45 @@
class Test {
B member;
+ Test(this.member);
+
static void test(Test t) {
- /*@ type=Test* */ t?. /*@target=Test.member*/
+ /*@ type=Test* */ t?. /*@target=Test.member*/
member = /*@ typeArgs=B* */ f();
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member ??= /*@ typeArgs=B* */ f();
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- /*@target=B.-*/ -- t
+ /*@target=B.-*/ --t
?. /*@target=Test.member*/ /*@target=Test.member*/ member;
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.-*/ --;
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
- var /*@ type=B* */ v1 =
- /*@ type=Test* */ t?. /*@target=Test.member*/
- member = /*@ typeArgs=B* */ f();
+ var /*@ type=B* */ v1 = /*@ type=Test* */ t?. /*@target=Test.member*/
+ member = /*@ typeArgs=B* */ f();
- var /*@ type=B* */ v2 =
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ var /*@ type=B* */ v2 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member ??= /*@ typeArgs=B* */ f();
- var /*@ type=A* */ v3 =
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@type=B**/ v3 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- var /*@ type=B* */ v4 =
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@ type=B* */ v4 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- var /*@ type=C* */ v5 =
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@ type=C* */ v5 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- var /*@ type=B* */ v6 =
- /*@target=B.-*/ -- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member;
+ var /*@ type=B* */ v6 = /*@target=B.-*/ --t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member;
- var /*@ type=B* */ v7 =
- t
- ?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.-*/ --;
+ var /*@ type=B* */ v7 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline.expect
index 0330c3e..9775a41 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline.expect
@@ -4,7 +4,7 @@
class A {}
class B extends A {
- A operator +(C v) => null;
+ B operator +(C v) => null;
B operator -(int i) => null;
B operator *(B v) => null;
C operator &(A v) => null;
@@ -16,6 +16,7 @@
class Test {
B member;
+ Test(this.member);
static void test(Test t) {}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline_modelled.expect
index 1583cfc..76958b1 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.textual_outline_modelled.expect
@@ -6,8 +6,8 @@
class A {}
class B extends A {
- A operator +(C v) => null;
B operator *(B v) => null;
+ B operator +(C v) => null;
B operator -(int i) => null;
C operator &(A v) => null;
}
@@ -16,6 +16,7 @@
class Test {
B member;
+ Test(this.member);
static void test(Test t) {}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect
index 681f9aa..c367692 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.expect
@@ -21,7 +21,7 @@
synthetic constructor •() → self::B*
: super self::A::•()
;
- operator +(self::C* v) → self::A*
+ operator +(self::C* v) → self::B*
return null;
operator -(core::int* i) → self::B*
return null;
@@ -36,21 +36,21 @@
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
- : super core::Object::•()
+ field self::B* member;
+ constructor •(self::B* member) → self::Test*
+ : self::Test::member = member, super core::Object::•()
;
static method test(self::Test* t) → void {
let final self::Test* #t1 = t in #t1 == null ?{self::B*} null : #t1.{self::Test::member} = self::f<self::B*>();
let final self::Test* #t2 = t in #t2 == null ?{self::B*} null : #t2.{self::Test::member}{self::B*} == null ?{self::B*} #t2.{self::Test::member} = self::f<self::B*>() : null;
- let final self::Test* #t3 = t in #t3 == null ?{self::A*} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
+ let final self::Test* #t3 = t in #t3 == null ?{self::B*} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::B*};
let final self::Test* #t4 = t in #t4 == null ?{self::B*} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
let final self::Test* #t5 = t in #t5 == null ?{self::C*} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
let final self::Test* #t6 = t in #t6 == null ?{self::B*} null : let final self::B* #t7 = #t6.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
let final self::Test* #t9 = t in #t9 == null ?{self::B*} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
self::B* v1 = let final self::Test* #t10 = t in #t10 == null ?{self::B*} null : #t10.{self::Test::member} = self::f<self::B*>();
self::B* v2 = let final self::Test* #t11 = t in #t11 == null ?{self::B*} null : let final self::B* #t12 = #t11.{self::Test::member}{self::B*} in #t12 == null ?{self::B*} #t11.{self::Test::member} = self::f<self::B*>() : #t12;
- self::A* v3 = let final self::Test* #t13 = t in #t13 == null ?{self::A*} null : let final self::A* #t14 = #t13.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B* in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B* v3 = let final self::Test* #t13 = t in #t13 == null ?{self::B*} null : let final self::B* #t14 = #t13.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::B*} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect
index 681f9aa..c367692 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.modular.expect
@@ -21,7 +21,7 @@
synthetic constructor •() → self::B*
: super self::A::•()
;
- operator +(self::C* v) → self::A*
+ operator +(self::C* v) → self::B*
return null;
operator -(core::int* i) → self::B*
return null;
@@ -36,21 +36,21 @@
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
- : super core::Object::•()
+ field self::B* member;
+ constructor •(self::B* member) → self::Test*
+ : self::Test::member = member, super core::Object::•()
;
static method test(self::Test* t) → void {
let final self::Test* #t1 = t in #t1 == null ?{self::B*} null : #t1.{self::Test::member} = self::f<self::B*>();
let final self::Test* #t2 = t in #t2 == null ?{self::B*} null : #t2.{self::Test::member}{self::B*} == null ?{self::B*} #t2.{self::Test::member} = self::f<self::B*>() : null;
- let final self::Test* #t3 = t in #t3 == null ?{self::A*} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
+ let final self::Test* #t3 = t in #t3 == null ?{self::B*} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::B*};
let final self::Test* #t4 = t in #t4 == null ?{self::B*} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
let final self::Test* #t5 = t in #t5 == null ?{self::C*} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
let final self::Test* #t6 = t in #t6 == null ?{self::B*} null : let final self::B* #t7 = #t6.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
let final self::Test* #t9 = t in #t9 == null ?{self::B*} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
self::B* v1 = let final self::Test* #t10 = t in #t10 == null ?{self::B*} null : #t10.{self::Test::member} = self::f<self::B*>();
self::B* v2 = let final self::Test* #t11 = t in #t11 == null ?{self::B*} null : let final self::B* #t12 = #t11.{self::Test::member}{self::B*} in #t12 == null ?{self::B*} #t11.{self::Test::member} = self::f<self::B*>() : #t12;
- self::A* v3 = let final self::Test* #t13 = t in #t13 == null ?{self::A*} null : let final self::A* #t14 = #t13.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B* in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B* v3 = let final self::Test* #t13 = t in #t13 == null ?{self::B*} null : let final self::B* #t14 = #t13.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::B*} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.outline.expect
index 7206086..a1a95ac 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.outline.expect
@@ -19,7 +19,7 @@
class B extends self::A {
synthetic constructor •() → self::B*
;
- operator +(self::C* v) → self::A*
+ operator +(self::C* v) → self::B*
;
operator -(core::int* i) → self::B*
;
@@ -34,7 +34,7 @@
}
class Test extends core::Object {
field self::B* member;
- synthetic constructor •() → self::Test*
+ constructor •(self::B* member) → self::Test*
;
static method test(self::Test* t) → void
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect
index 681f9aa..c367692 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware.dart.weak.transformed.expect
@@ -21,7 +21,7 @@
synthetic constructor •() → self::B*
: super self::A::•()
;
- operator +(self::C* v) → self::A*
+ operator +(self::C* v) → self::B*
return null;
operator -(core::int* i) → self::B*
return null;
@@ -36,21 +36,21 @@
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
- : super core::Object::•()
+ field self::B* member;
+ constructor •(self::B* member) → self::Test*
+ : self::Test::member = member, super core::Object::•()
;
static method test(self::Test* t) → void {
let final self::Test* #t1 = t in #t1 == null ?{self::B*} null : #t1.{self::Test::member} = self::f<self::B*>();
let final self::Test* #t2 = t in #t2 == null ?{self::B*} null : #t2.{self::Test::member}{self::B*} == null ?{self::B*} #t2.{self::Test::member} = self::f<self::B*>() : null;
- let final self::Test* #t3 = t in #t3 == null ?{self::A*} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
+ let final self::Test* #t3 = t in #t3 == null ?{self::B*} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::B*};
let final self::Test* #t4 = t in #t4 == null ?{self::B*} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
let final self::Test* #t5 = t in #t5 == null ?{self::C*} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
let final self::Test* #t6 = t in #t6 == null ?{self::B*} null : let final self::B* #t7 = #t6.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
let final self::Test* #t9 = t in #t9 == null ?{self::B*} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
self::B* v1 = let final self::Test* #t10 = t in #t10 == null ?{self::B*} null : #t10.{self::Test::member} = self::f<self::B*>();
self::B* v2 = let final self::Test* #t11 = t in #t11 == null ?{self::B*} null : let final self::B* #t12 = #t11.{self::Test::member}{self::B*} in #t12 == null ?{self::B*} #t11.{self::Test::member} = self::f<self::B*>() : #t12;
- self::A* v3 = let final self::Test* #t13 = t in #t13 == null ?{self::A*} null : let final self::A* #t14 = #t13.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B* in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B* v3 = let final self::Test* #t13 = t in #t13 == null ?{self::B*} null : let final self::B* #t14 = #t13.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::B*} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
self::B* v4 = let final self::Test* #t16 = t in #t16 == null ?{self::B*} null : let final self::B* #t17 = #t16.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
self::C* v5 = let final self::Test* #t19 = t in #t19 == null ?{self::C*} null : let final self::C* #t20 = #t19.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
self::B* v6 = let final self::Test* #t22 = t in #t22 == null ?{self::B*} null : let final self::B* #t23 = #t22.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart
new file mode 100644
index 0000000..3062276
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart
@@ -0,0 +1,65 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member;
+
+ static void test(Test? t) {
+ /*@type=Test?*/ /*@promotedType=Test*/ t?. /*@target=Test.member*/
+ member = /*@typeArgs=B*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member ??= /*@typeArgs=B*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member;
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
+
+ var /*@type=B?*/ v1 =
+ /*@type=Test?*/ /*@promotedType=Test*/ t?. /*@target=Test.member*/
+ member = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member ??= /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v3 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B?*/ v4 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C?*/ v5 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B?*/ v6 = /*@target=B.-*/ --t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member;
+
+ var /*@type=B?*/ v7 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.textual_outline.expect
new file mode 100644
index 0000000..29d6a51
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.textual_outline.expect
@@ -0,0 +1,21 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member;
+ static void test(Test? t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3990a80
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.textual_outline_modelled.expect
@@ -0,0 +1,21 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+class Test {
+ B member;
+ static void test(Test? t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect
new file mode 100644
index 0000000..86c15c5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.expect
@@ -0,0 +1,60 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart:22:5: Error: Field 'member' should be initialized because its type 'B' doesn't allow null.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart'.
+// B member;
+// ^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test? t) → void {
+ let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
+ let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
+ let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test? #t6 = t in #t6 == null ?{self::B?} null : let final self::B #t7 = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
+ let final self::Test? #t9 = t in #t9 == null ?{self::B?} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B? v1 = let final self::Test? #t10 = t in #t10 == null ?{self::B?} null : #t10{self::Test}.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test? #t11 = t in #t11 == null ?{self::B?} null : let final self::B #t12 = #t11.{self::Test::member}{self::B} in #t12 == null ?{self::B} #t11.{self::Test::member} = self::f<self::B>() : #t12;
+ self::B? v3 = let final self::Test? #t13 = t in #t13 == null ?{self::B?} null : let final self::B #t14 = #t13.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
+ self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
+ self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
+ self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect
new file mode 100644
index 0000000..86c15c5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.modular.expect
@@ -0,0 +1,60 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart:22:5: Error: Field 'member' should be initialized because its type 'B' doesn't allow null.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart'.
+// B member;
+// ^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test? t) → void {
+ let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
+ let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
+ let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test? #t6 = t in #t6 == null ?{self::B?} null : let final self::B #t7 = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
+ let final self::Test? #t9 = t in #t9 == null ?{self::B?} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B? v1 = let final self::Test? #t10 = t in #t10 == null ?{self::B?} null : #t10{self::Test}.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test? #t11 = t in #t11 == null ?{self::B?} null : let final self::B #t12 = #t11.{self::Test::member}{self::B} in #t12 == null ?{self::B} #t11.{self::Test::member} = self::f<self::B>() : #t12;
+ self::B? v3 = let final self::Test? #t13 = t in #t13 == null ?{self::B?} null : let final self::B #t14 = #t13.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
+ self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
+ self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
+ self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.outline.expect
new file mode 100644
index 0000000..f666f02
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.outline.expect
@@ -0,0 +1,35 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ synthetic constructor •() → self::Test
+ ;
+ static method test(self::Test? t) → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
new file mode 100644
index 0000000..86c15c5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
@@ -0,0 +1,60 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart:22:5: Error: Field 'member' should be initialized because its type 'B' doesn't allow null.
+// - 'B' is from 'pkg/front_end/testcases/inference/infer_assign_to_property_null_aware2.dart'.
+// B member;
+// ^^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test? t) → void {
+ let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
+ let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member}{self::B} == null ?{self::B} #t2.{self::Test::member} = self::f<self::B>() : null;
+ let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test? #t6 = t in #t6 == null ?{self::B?} null : let final self::B #t7 = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
+ let final self::Test? #t9 = t in #t9 == null ?{self::B?} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B? v1 = let final self::Test? #t10 = t in #t10 == null ?{self::B?} null : #t10{self::Test}.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test? #t11 = t in #t11 == null ?{self::B?} null : let final self::B #t12 = #t11.{self::Test::member}{self::B} in #t12 == null ?{self::B} #t11.{self::Test::member} = self::f<self::B>() : #t12;
+ self::B? v3 = let final self::Test? #t13 = t in #t13 == null ?{self::B?} null : let final self::B #t14 = #t13.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
+ self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
+ self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
+ self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart
index 82e2b7c..83cd8e5 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,26 +10,27 @@
double getDouble() => 0.0;
class Test1 {
- int prop;
+ int prop = 1;
+ int? prop2;
- static void test(Test1 t) {
- var /*@ type=int* */ v1 = /*@ type=Test1* */ t
+ static void test(Test1? t) {
+ var /*@type=int?*/ v1 = /*@type=Test1?*/ /*@promotedType=Test1*/t
?. /*@target=Test1.prop*/ prop = getInt();
- var /*@ type=int* */ v4 =
+ var /*@type=int?*/ v4 =
t
- ?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
+ ?. /*@target=Test1.prop2*/ /*@target=Test1.prop2*/ prop2
??= getInt();
- var /*@ type=int* */ v7 =
+ var /*@type=int?*/ v7 =
t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++ t
+ var /*@type=int?*/ v10 = /*@target=num.+*/ ++ t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
- var /*@ type=int* */ v11 =
+ var /*@type=int?*/ v11 =
t
?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ ++;
@@ -37,51 +38,52 @@
}
class Test2 {
- num prop;
+ num prop = 0;
+ num? prop2;
- static void test(Test2 t) {
- var /*@ type=int* */ v1 = /*@ type=Test2* */ t
+ static void test(Test2? t) {
+ var /*@type=int?*/ v1 = /*@type=Test2?*/ /*@promotedType=Test2*/t
?. /*@target=Test2.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = /*@ type=Test2* */ t
+ var /*@type=num?*/ v2 = /*@type=Test2?*/ /*@promotedType=Test2*/t
?. /*@target=Test2.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = /*@ type=Test2* */ t
+ var /*@type=double?*/ v3 = /*@type=Test2?*/ /*@promotedType=Test2*/t
?. /*@target=Test2.prop*/ prop = getDouble();
- var /*@ type=num* */ v4 =
+ var /*@type=num?*/ v4 =
t
- ?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
+ ?. /*@target=Test2.prop2*/ /*@target=Test2.prop2*/ prop2
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num?*/ v5 =
t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
??= getNum();
- var /*@ type=num* */ v6 = t
+ var /*@type=num?*/ v6 = t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
??= getDouble();
- var /*@ type=num* */ v7 =
+ var /*@type=num?*/ v7 =
t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num?*/ v8 =
t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 =
+ var /*@type=double?*/ v9 =
t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++ t
+ var /*@type=num?*/ v10 = /*@target=num.+*/ ++ t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
- var /*@ type=num* */ v11 =
+ var /*@type=num?*/ v11 =
t
?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ ++;
@@ -89,38 +91,39 @@
}
class Test3 {
- double prop;
+ double prop = 0;
+ double? prop2;
- static void test3(Test3 t) {
- var /*@ type=double* */ v3 =
- /*@ type=Test3* */ t
+ static void test3(Test3? t) {
+ var /*@type=double?*/ v3 =
+ /*@type=Test3?*/ /*@promotedType=Test3*/t
?. /*@target=Test3.prop*/ prop = getDouble();
- var /*@ type=double* */ v6 =
+ var /*@type=double?*/ v6 =
t?.
- /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
+ /*@target=Test3.prop2*/ /*@target=Test3.prop2*/ prop2
??= getDouble();
- var /*@ type=double* */ v7 =
+ var /*@type=double?*/ v7 =
t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double?*/ v8 =
t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double?*/ v9 =
t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++
+ var /*@type=double?*/ v10 = /*@target=double.+*/ ++
t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
- var /*@ type=double* */ v11 =
+ var /*@type=double?*/ v11 =
t
?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ ++;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline.expect
index d232d96..d54238d 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
int getInt() => 0;
@@ -6,18 +5,21 @@
double getDouble() => 0.0;
class Test1 {
- int prop;
- static void test(Test1 t) {}
+ int prop = 1;
+ int? prop2;
+ static void test(Test1? t) {}
}
class Test2 {
- num prop;
- static void test(Test2 t) {}
+ num prop = 0;
+ num? prop2;
+ static void test(Test2? t) {}
}
class Test3 {
- double prop;
- static void test3(Test3 t) {}
+ double prop = 0;
+ double? prop2;
+ static void test3(Test3? t) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline_modelled.expect
index 5ff5dff..00e72ab 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.textual_outline_modelled.expect
@@ -1,19 +1,21 @@
-// @dart = 2.9
library test;
class Test1 {
- int prop;
- static void test(Test1 t) {}
+ int? prop2;
+ int prop = 1;
+ static void test(Test1? t) {}
}
class Test2 {
- num prop;
- static void test(Test2 t) {}
+ num? prop2;
+ num prop = 0;
+ static void test(Test2? t) {}
}
class Test3 {
- double prop;
- static void test3(Test3 t) {}
+ double? prop2;
+ double prop = 0;
+ static void test3(Test3? t) {}
}
double getDouble() => 0.0;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect
index defcb5a..e4986a3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.expect
@@ -1,88 +1,61 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop = null;
- synthetic constructor •() → self::Test1*
+ field core::int prop = 1;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
: super core::Object::•()
;
- static method test(self::Test1* t) → void {
- core::int* v1 = let final self::Test1* #t1 = t in #t1 == null ?{core::int*} null : #t1.{self::Test1::prop} = self::getInt();
- core::int* v4 = let final self::Test1* #t2 = t in #t2 == null ?{core::int*} null : let final core::int* #t3 = #t2.{self::Test1::prop}{core::int*} in #t3 == null ?{core::int*} #t2.{self::Test1::prop} = self::getInt() : #t3;
- core::int* v7 = let final self::Test1* #t4 = t in #t4 == null ?{core::int*} null : let final core::int* #t5 = #t4.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
- core::int* v10 = let final self::Test1* #t7 = t in #t7 == null ?{core::int*} null : let final core::int* #t8 = #t7.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
- core::int* v11 = let final self::Test1* #t10 = t in #t10 == null ?{core::int*} null : let final core::int* #t11 = #t10.{self::Test1::prop}{core::int*} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num*) →* core::int*} in #t11;
+ static method test(self::Test1? t) → void {
+ core::int? v1 = let final self::Test1? #t1 = t in #t1 == null ?{core::int?} null : #t1{self::Test1}.{self::Test1::prop} = self::getInt();
+ core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
+ core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
+ core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
+ core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop = null;
- synthetic constructor •() → self::Test2*
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
: super core::Object::•()
;
- static method test(self::Test2* t) → void {
- core::int* v1 = let final self::Test2* #t13 = t in #t13 == null ?{core::int*} null : #t13.{self::Test2::prop} = self::getInt();
- core::num* v2 = let final self::Test2* #t14 = t in #t14 == null ?{core::num*} null : #t14.{self::Test2::prop} = self::getNum();
- core::double* v3 = let final self::Test2* #t15 = t in #t15 == null ?{core::double*} null : #t15.{self::Test2::prop} = self::getDouble();
- core::num* v4 = let final self::Test2* #t16 = t in #t16 == null ?{core::num*} null : let final core::num* #t17 = #t16.{self::Test2::prop}{core::num*} in #t17 == null ?{core::num*} #t16.{self::Test2::prop} = self::getInt() : #t17;
- core::num* v5 = let final self::Test2* #t18 = t in #t18 == null ?{core::num*} null : let final core::num* #t19 = #t18.{self::Test2::prop}{core::num*} in #t19 == null ?{core::num*} #t18.{self::Test2::prop} = self::getNum() : #t19;
- core::num* v6 = let final self::Test2* #t20 = t in #t20 == null ?{core::num*} null : let final core::num* #t21 = #t20.{self::Test2::prop}{core::num*} in #t21 == null ?{core::num*} #t20.{self::Test2::prop} = self::getDouble() : #t21;
- core::num* v7 = let final self::Test2* #t22 = t in #t22 == null ?{core::num*} null : let final core::num* #t23 = #t22.{self::Test2::prop}{core::num*}.{core::num::+}(self::getInt()){(core::num*) →* core::num*} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
- core::num* v8 = let final self::Test2* #t25 = t in #t25 == null ?{core::num*} null : let final core::num* #t26 = #t25.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
- core::num* v9 = let final self::Test2* #t28 = t in #t28 == null ?{core::num*} null : let final core::num* #t29 = #t28.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
- core::num* v10 = let final self::Test2* #t31 = t in #t31 == null ?{core::num*} null : let final core::num* #t32 = #t31.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
- core::num* v11 = let final self::Test2* #t34 = t in #t34 == null ?{core::num*} null : let final core::num* #t35 = #t34.{self::Test2::prop}{core::num*} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num*) →* core::num*} in #t35;
+ static method test(self::Test2? t) → void {
+ core::int? v1 = let final self::Test2? #t13 = t in #t13 == null ?{core::int?} null : #t13{self::Test2}.{self::Test2::prop} = self::getInt();
+ core::num? v2 = let final self::Test2? #t14 = t in #t14 == null ?{core::num?} null : #t14{self::Test2}.{self::Test2::prop} = self::getNum();
+ core::double? v3 = let final self::Test2? #t15 = t in #t15 == null ?{core::double?} null : #t15{self::Test2}.{self::Test2::prop} = self::getDouble();
+ core::num? v4 = let final self::Test2? #t16 = t in #t16 == null ?{core::num?} null : let final core::num? #t17 = #t16.{self::Test2::prop2}{core::num?} in #t17 == null ?{core::num} #t16.{self::Test2::prop2} = self::getInt() : #t17{core::num};
+ core::num? v5 = let final self::Test2? #t18 = t in #t18 == null ?{core::num?} null : let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in #t19 == null ?{core::num} #t18.{self::Test2::prop} = self::getNum() : #t19;
+ core::num? v6 = let final self::Test2? #t20 = t in #t20 == null ?{core::num?} null : let final core::num #t21 = #t20.{self::Test2::prop}{core::num} in #t21 == null ?{core::num} #t20.{self::Test2::prop} = self::getDouble() : #t21;
+ core::num? v7 = let final self::Test2? #t22 = t in #t22 == null ?{core::num?} null : let final core::num #t23 = #t22.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
+ core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
+ core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
+ core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
+ core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop = null;
- synthetic constructor •() → self::Test3*
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
: super core::Object::•()
;
- static method test3(self::Test3* t) → void {
- core::double* v3 = let final self::Test3* #t37 = t in #t37 == null ?{core::double*} null : #t37.{self::Test3::prop} = self::getDouble();
- core::double* v6 = let final self::Test3* #t38 = t in #t38 == null ?{core::double*} null : let final core::double* #t39 = #t38.{self::Test3::prop}{core::double*} in #t39 == null ?{core::double*} #t38.{self::Test3::prop} = self::getDouble() : #t39;
- core::double* v7 = let final self::Test3* #t40 = t in #t40 == null ?{core::double*} null : let final core::double* #t41 = #t40.{self::Test3::prop}{core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
- core::double* v8 = let final self::Test3* #t43 = t in #t43 == null ?{core::double*} null : let final core::double* #t44 = #t43.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
- core::double* v9 = let final self::Test3* #t46 = t in #t46 == null ?{core::double*} null : let final core::double* #t47 = #t46.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
- core::double* v10 = let final self::Test3* #t49 = t in #t49 == null ?{core::double*} null : let final core::double* #t50 = #t49.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
- core::double* v11 = let final self::Test3* #t52 = t in #t52 == null ?{core::double*} null : let final core::double* #t53 = #t52.{self::Test3::prop}{core::double*} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num*) →* core::double*} in #t53;
+ static method test3(self::Test3? t) → void {
+ core::double? v3 = let final self::Test3? #t37 = t in #t37 == null ?{core::double?} null : #t37{self::Test3}.{self::Test3::prop} = self::getDouble();
+ core::double? v6 = let final self::Test3? #t38 = t in #t38 == null ?{core::double?} null : let final core::double? #t39 = #t38.{self::Test3::prop2}{core::double?} in #t39 == null ?{core::double} #t38.{self::Test3::prop2} = self::getDouble() : #t39{core::double};
+ core::double? v7 = let final self::Test3? #t40 = t in #t40 == null ?{core::double?} null : let final core::double #t41 = #t40.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
+ core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
+ core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
+ core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
+ core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
index defcb5a..e4986a3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.modular.expect
@@ -1,88 +1,61 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop = null;
- synthetic constructor •() → self::Test1*
+ field core::int prop = 1;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
: super core::Object::•()
;
- static method test(self::Test1* t) → void {
- core::int* v1 = let final self::Test1* #t1 = t in #t1 == null ?{core::int*} null : #t1.{self::Test1::prop} = self::getInt();
- core::int* v4 = let final self::Test1* #t2 = t in #t2 == null ?{core::int*} null : let final core::int* #t3 = #t2.{self::Test1::prop}{core::int*} in #t3 == null ?{core::int*} #t2.{self::Test1::prop} = self::getInt() : #t3;
- core::int* v7 = let final self::Test1* #t4 = t in #t4 == null ?{core::int*} null : let final core::int* #t5 = #t4.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
- core::int* v10 = let final self::Test1* #t7 = t in #t7 == null ?{core::int*} null : let final core::int* #t8 = #t7.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
- core::int* v11 = let final self::Test1* #t10 = t in #t10 == null ?{core::int*} null : let final core::int* #t11 = #t10.{self::Test1::prop}{core::int*} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num*) →* core::int*} in #t11;
+ static method test(self::Test1? t) → void {
+ core::int? v1 = let final self::Test1? #t1 = t in #t1 == null ?{core::int?} null : #t1{self::Test1}.{self::Test1::prop} = self::getInt();
+ core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
+ core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
+ core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
+ core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop = null;
- synthetic constructor •() → self::Test2*
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
: super core::Object::•()
;
- static method test(self::Test2* t) → void {
- core::int* v1 = let final self::Test2* #t13 = t in #t13 == null ?{core::int*} null : #t13.{self::Test2::prop} = self::getInt();
- core::num* v2 = let final self::Test2* #t14 = t in #t14 == null ?{core::num*} null : #t14.{self::Test2::prop} = self::getNum();
- core::double* v3 = let final self::Test2* #t15 = t in #t15 == null ?{core::double*} null : #t15.{self::Test2::prop} = self::getDouble();
- core::num* v4 = let final self::Test2* #t16 = t in #t16 == null ?{core::num*} null : let final core::num* #t17 = #t16.{self::Test2::prop}{core::num*} in #t17 == null ?{core::num*} #t16.{self::Test2::prop} = self::getInt() : #t17;
- core::num* v5 = let final self::Test2* #t18 = t in #t18 == null ?{core::num*} null : let final core::num* #t19 = #t18.{self::Test2::prop}{core::num*} in #t19 == null ?{core::num*} #t18.{self::Test2::prop} = self::getNum() : #t19;
- core::num* v6 = let final self::Test2* #t20 = t in #t20 == null ?{core::num*} null : let final core::num* #t21 = #t20.{self::Test2::prop}{core::num*} in #t21 == null ?{core::num*} #t20.{self::Test2::prop} = self::getDouble() : #t21;
- core::num* v7 = let final self::Test2* #t22 = t in #t22 == null ?{core::num*} null : let final core::num* #t23 = #t22.{self::Test2::prop}{core::num*}.{core::num::+}(self::getInt()){(core::num*) →* core::num*} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
- core::num* v8 = let final self::Test2* #t25 = t in #t25 == null ?{core::num*} null : let final core::num* #t26 = #t25.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
- core::num* v9 = let final self::Test2* #t28 = t in #t28 == null ?{core::num*} null : let final core::num* #t29 = #t28.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
- core::num* v10 = let final self::Test2* #t31 = t in #t31 == null ?{core::num*} null : let final core::num* #t32 = #t31.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
- core::num* v11 = let final self::Test2* #t34 = t in #t34 == null ?{core::num*} null : let final core::num* #t35 = #t34.{self::Test2::prop}{core::num*} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num*) →* core::num*} in #t35;
+ static method test(self::Test2? t) → void {
+ core::int? v1 = let final self::Test2? #t13 = t in #t13 == null ?{core::int?} null : #t13{self::Test2}.{self::Test2::prop} = self::getInt();
+ core::num? v2 = let final self::Test2? #t14 = t in #t14 == null ?{core::num?} null : #t14{self::Test2}.{self::Test2::prop} = self::getNum();
+ core::double? v3 = let final self::Test2? #t15 = t in #t15 == null ?{core::double?} null : #t15{self::Test2}.{self::Test2::prop} = self::getDouble();
+ core::num? v4 = let final self::Test2? #t16 = t in #t16 == null ?{core::num?} null : let final core::num? #t17 = #t16.{self::Test2::prop2}{core::num?} in #t17 == null ?{core::num} #t16.{self::Test2::prop2} = self::getInt() : #t17{core::num};
+ core::num? v5 = let final self::Test2? #t18 = t in #t18 == null ?{core::num?} null : let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in #t19 == null ?{core::num} #t18.{self::Test2::prop} = self::getNum() : #t19;
+ core::num? v6 = let final self::Test2? #t20 = t in #t20 == null ?{core::num?} null : let final core::num #t21 = #t20.{self::Test2::prop}{core::num} in #t21 == null ?{core::num} #t20.{self::Test2::prop} = self::getDouble() : #t21;
+ core::num? v7 = let final self::Test2? #t22 = t in #t22 == null ?{core::num?} null : let final core::num #t23 = #t22.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
+ core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
+ core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
+ core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
+ core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop = null;
- synthetic constructor •() → self::Test3*
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
: super core::Object::•()
;
- static method test3(self::Test3* t) → void {
- core::double* v3 = let final self::Test3* #t37 = t in #t37 == null ?{core::double*} null : #t37.{self::Test3::prop} = self::getDouble();
- core::double* v6 = let final self::Test3* #t38 = t in #t38 == null ?{core::double*} null : let final core::double* #t39 = #t38.{self::Test3::prop}{core::double*} in #t39 == null ?{core::double*} #t38.{self::Test3::prop} = self::getDouble() : #t39;
- core::double* v7 = let final self::Test3* #t40 = t in #t40 == null ?{core::double*} null : let final core::double* #t41 = #t40.{self::Test3::prop}{core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
- core::double* v8 = let final self::Test3* #t43 = t in #t43 == null ?{core::double*} null : let final core::double* #t44 = #t43.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
- core::double* v9 = let final self::Test3* #t46 = t in #t46 == null ?{core::double*} null : let final core::double* #t47 = #t46.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
- core::double* v10 = let final self::Test3* #t49 = t in #t49 == null ?{core::double*} null : let final core::double* #t50 = #t49.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
- core::double* v11 = let final self::Test3* #t52 = t in #t52 == null ?{core::double*} null : let final core::double* #t53 = #t52.{self::Test3::prop}{core::double*} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num*) →* core::double*} in #t53;
+ static method test3(self::Test3? t) → void {
+ core::double? v3 = let final self::Test3? #t37 = t in #t37 == null ?{core::double?} null : #t37{self::Test3}.{self::Test3::prop} = self::getDouble();
+ core::double? v6 = let final self::Test3? #t38 = t in #t38 == null ?{core::double?} null : let final core::double? #t39 = #t38.{self::Test3::prop2}{core::double?} in #t39 == null ?{core::double} #t38.{self::Test3::prop2} = self::getDouble() : #t39{core::double};
+ core::double? v7 = let final self::Test3? #t40 = t in #t40 == null ?{core::double?} null : let final core::double #t41 = #t40.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
+ core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
+ core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
+ core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
+ core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.outline.expect
index fd753c6..21d9cba 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.outline.expect
@@ -1,63 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop;
- synthetic constructor •() → self::Test1*
+ field core::int prop;
+ field core::int? prop2;
+ synthetic constructor •() → self::Test1
;
- static method test(self::Test1* t) → void
+ static method test(self::Test1? t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop;
- synthetic constructor •() → self::Test2*
+ field core::num prop;
+ field core::num? prop2;
+ synthetic constructor •() → self::Test2
;
- static method test(self::Test2* t) → void
+ static method test(self::Test2? t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop;
- synthetic constructor •() → self::Test3*
+ field core::double prop;
+ field core::double? prop2;
+ synthetic constructor •() → self::Test3
;
- static method test3(self::Test3* t) → void
+ static method test3(self::Test3? t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
;
-static method getNum() → core::num*
+static method getNum() → core::num
;
-static method getDouble() → core::double*
+static method getDouble() → core::double
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
index defcb5a..e4986a3 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_null_aware_upwards.dart.weak.transformed.expect
@@ -1,88 +1,61 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop = null;
- synthetic constructor •() → self::Test1*
+ field core::int prop = 1;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
: super core::Object::•()
;
- static method test(self::Test1* t) → void {
- core::int* v1 = let final self::Test1* #t1 = t in #t1 == null ?{core::int*} null : #t1.{self::Test1::prop} = self::getInt();
- core::int* v4 = let final self::Test1* #t2 = t in #t2 == null ?{core::int*} null : let final core::int* #t3 = #t2.{self::Test1::prop}{core::int*} in #t3 == null ?{core::int*} #t2.{self::Test1::prop} = self::getInt() : #t3;
- core::int* v7 = let final self::Test1* #t4 = t in #t4 == null ?{core::int*} null : let final core::int* #t5 = #t4.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
- core::int* v10 = let final self::Test1* #t7 = t in #t7 == null ?{core::int*} null : let final core::int* #t8 = #t7.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
- core::int* v11 = let final self::Test1* #t10 = t in #t10 == null ?{core::int*} null : let final core::int* #t11 = #t10.{self::Test1::prop}{core::int*} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num*) →* core::int*} in #t11;
+ static method test(self::Test1? t) → void {
+ core::int? v1 = let final self::Test1? #t1 = t in #t1 == null ?{core::int?} null : #t1{self::Test1}.{self::Test1::prop} = self::getInt();
+ core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
+ core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
+ core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
+ core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop = null;
- synthetic constructor •() → self::Test2*
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
: super core::Object::•()
;
- static method test(self::Test2* t) → void {
- core::int* v1 = let final self::Test2* #t13 = t in #t13 == null ?{core::int*} null : #t13.{self::Test2::prop} = self::getInt();
- core::num* v2 = let final self::Test2* #t14 = t in #t14 == null ?{core::num*} null : #t14.{self::Test2::prop} = self::getNum();
- core::double* v3 = let final self::Test2* #t15 = t in #t15 == null ?{core::double*} null : #t15.{self::Test2::prop} = self::getDouble();
- core::num* v4 = let final self::Test2* #t16 = t in #t16 == null ?{core::num*} null : let final core::num* #t17 = #t16.{self::Test2::prop}{core::num*} in #t17 == null ?{core::num*} #t16.{self::Test2::prop} = self::getInt() : #t17;
- core::num* v5 = let final self::Test2* #t18 = t in #t18 == null ?{core::num*} null : let final core::num* #t19 = #t18.{self::Test2::prop}{core::num*} in #t19 == null ?{core::num*} #t18.{self::Test2::prop} = self::getNum() : #t19;
- core::num* v6 = let final self::Test2* #t20 = t in #t20 == null ?{core::num*} null : let final core::num* #t21 = #t20.{self::Test2::prop}{core::num*} in #t21 == null ?{core::num*} #t20.{self::Test2::prop} = self::getDouble() : #t21;
- core::num* v7 = let final self::Test2* #t22 = t in #t22 == null ?{core::num*} null : let final core::num* #t23 = #t22.{self::Test2::prop}{core::num*}.{core::num::+}(self::getInt()){(core::num*) →* core::num*} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
- core::num* v8 = let final self::Test2* #t25 = t in #t25 == null ?{core::num*} null : let final core::num* #t26 = #t25.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
- core::num* v9 = let final self::Test2* #t28 = t in #t28 == null ?{core::num*} null : let final core::num* #t29 = #t28.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
- core::num* v10 = let final self::Test2* #t31 = t in #t31 == null ?{core::num*} null : let final core::num* #t32 = #t31.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
- core::num* v11 = let final self::Test2* #t34 = t in #t34 == null ?{core::num*} null : let final core::num* #t35 = #t34.{self::Test2::prop}{core::num*} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num*) →* core::num*} in #t35;
+ static method test(self::Test2? t) → void {
+ core::int? v1 = let final self::Test2? #t13 = t in #t13 == null ?{core::int?} null : #t13{self::Test2}.{self::Test2::prop} = self::getInt();
+ core::num? v2 = let final self::Test2? #t14 = t in #t14 == null ?{core::num?} null : #t14{self::Test2}.{self::Test2::prop} = self::getNum();
+ core::double? v3 = let final self::Test2? #t15 = t in #t15 == null ?{core::double?} null : #t15{self::Test2}.{self::Test2::prop} = self::getDouble();
+ core::num? v4 = let final self::Test2? #t16 = t in #t16 == null ?{core::num?} null : let final core::num? #t17 = #t16.{self::Test2::prop2}{core::num?} in #t17 == null ?{core::num} #t16.{self::Test2::prop2} = self::getInt() : #t17{core::num};
+ core::num? v5 = let final self::Test2? #t18 = t in #t18 == null ?{core::num?} null : let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in #t19 == null ?{core::num} #t18.{self::Test2::prop} = self::getNum() : #t19;
+ core::num? v6 = let final self::Test2? #t20 = t in #t20 == null ?{core::num?} null : let final core::num #t21 = #t20.{self::Test2::prop}{core::num} in #t21 == null ?{core::num} #t20.{self::Test2::prop} = self::getDouble() : #t21;
+ core::num? v7 = let final self::Test2? #t22 = t in #t22 == null ?{core::num?} null : let final core::num #t23 = #t22.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
+ core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
+ core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
+ core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
+ core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop = null;
- synthetic constructor •() → self::Test3*
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
: super core::Object::•()
;
- static method test3(self::Test3* t) → void {
- core::double* v3 = let final self::Test3* #t37 = t in #t37 == null ?{core::double*} null : #t37.{self::Test3::prop} = self::getDouble();
- core::double* v6 = let final self::Test3* #t38 = t in #t38 == null ?{core::double*} null : let final core::double* #t39 = #t38.{self::Test3::prop}{core::double*} in #t39 == null ?{core::double*} #t38.{self::Test3::prop} = self::getDouble() : #t39;
- core::double* v7 = let final self::Test3* #t40 = t in #t40 == null ?{core::double*} null : let final core::double* #t41 = #t40.{self::Test3::prop}{core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
- core::double* v8 = let final self::Test3* #t43 = t in #t43 == null ?{core::double*} null : let final core::double* #t44 = #t43.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
- core::double* v9 = let final self::Test3* #t46 = t in #t46 == null ?{core::double*} null : let final core::double* #t47 = #t46.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
- core::double* v10 = let final self::Test3* #t49 = t in #t49 == null ?{core::double*} null : let final core::double* #t50 = #t49.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
- core::double* v11 = let final self::Test3* #t52 = t in #t52 == null ?{core::double*} null : let final core::double* #t53 = #t52.{self::Test3::prop}{core::double*} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num*) →* core::double*} in #t53;
+ static method test3(self::Test3? t) → void {
+ core::double? v3 = let final self::Test3? #t37 = t in #t37 == null ?{core::double?} null : #t37{self::Test3}.{self::Test3::prop} = self::getDouble();
+ core::double? v6 = let final self::Test3? #t38 = t in #t38 == null ?{core::double?} null : let final core::double? #t39 = #t38.{self::Test3::prop2}{core::double?} in #t39 == null ?{core::double} #t38.{self::Test3::prop2} = self::getDouble() : #t39{core::double};
+ core::double? v7 = let final self::Test3? #t40 = t in #t40 == null ?{core::double?} null : let final core::double #t41 = #t40.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
+ core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
+ core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
+ core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
+ core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_super.dart
index 1c94bce..4641510 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -26,36 +28,34 @@
void test() {
super.member = /*@ typeArgs=B* */ f();
- super. /*@target=Base.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ super. /*@target=Base.member*/ member ??= /*@ typeArgs=B* */ f();
- super. /*@target=Base.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ super
+ . /*@target=Base.member*/ member /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- super. /*@target=Base.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ super
+ . /*@target=Base.member*/ member /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- super. /*@target=Base.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ super
+ . /*@target=Base.member*/ member /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
/*@target=B.-*/ --super. /*@target=Base.member*/ member;
- super. /*@target=Base.member*/ member
- /*@target=B.-*/ --;
+ super. /*@target=Base.member*/ member /*@target=B.-*/ --;
var /*@ type=B* */ v1 = super.member = /*@ typeArgs=B* */ f();
- var /*@ type=B* */ v2 = super. /*@target=Base.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ var /*@ type=B* */ v2 =
+ super. /*@target=Base.member*/ member ??= /*@ typeArgs=B* */ f();
- var /*@ type=A* */ v3 = super. /*@target=Base.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@ type=A* */ v3 = super
+ . /*@target=Base.member*/ member /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- var /*@ type=B* */ v4 = super. /*@target=Base.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@ type=B* */ v4 = super
+ . /*@target=Base.member*/ member /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- var /*@ type=C* */ v5 = super. /*@target=Base.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@ type=C* */ v5 = super
+ . /*@target=Base.member*/ member /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
var /*@ type=B* */ v6 =
/*@target=B.-*/ --super. /*@target=Base.member*/ member;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart
new file mode 100644
index 0000000..62d3dc8
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart
@@ -0,0 +1,72 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B member;
+ B? member2;
+
+ Base(this.member);
+}
+
+class Test extends Base {
+ Test(B member) : super(member);
+
+ void test() {
+ super.member = /*@typeArgs=B*/ f();
+
+ super. /*@target=Base.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+
+ super
+ . /*@target=Base.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ super
+ . /*@target=Base.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ super
+ . /*@target=Base.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --super. /*@target=Base.member*/ member;
+
+ super. /*@target=Base.member*/ member /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = super.member = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 =
+ super. /*@target=Base.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = super
+ . /*@target=Base.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = super
+ . /*@target=Base.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = super
+ . /*@target=Base.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 =
+ /*@target=B.-*/ --super. /*@target=Base.member*/ member;
+
+ var /*@type=B*/ v7 = super
+ . /*@type=B*/ /*@target=Base.member*/
+ /*@type=B*/ member /*@target=B.-*/ --;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.textual_outline.expect
new file mode 100644
index 0000000..7fd2bc5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.textual_outline.expect
@@ -0,0 +1,27 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B member;
+ B? member2;
+ Base(this.member);
+}
+
+class Test extends Base {
+ Test(B member) : super(member);
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1fa8637
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.textual_outline_modelled.expect
@@ -0,0 +1,27 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class Base {
+ B? member2;
+ B member;
+ Base(this.member);
+}
+
+class C extends B {}
+
+class Test extends Base {
+ Test(B member) : super(member);
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.expect
new file mode 100644
index 0000000..d1cf654
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.expect
@@ -0,0 +1,58 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ field self::B member;
+ field self::B? member2 = null;
+ constructor •(self::B member) → self::Base
+ : self::Base::member = member, super core::Object::•()
+ ;
+}
+class Test extends self::Base {
+ constructor •(self::B member) → self::Test
+ : super self::Base::•(member)
+ ;
+ method test() → void {
+ super.{self::Base::member} = self::f<self::B>();
+ super.{self::Base::member2} == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : null;
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = super.{self::Base::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = super.{self::Base::member2} in #t1 == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = super.{self::Base::member} in let final self::B #t3 = super.{self::Base::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.modular.expect
new file mode 100644
index 0000000..d1cf654
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.modular.expect
@@ -0,0 +1,58 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ field self::B member;
+ field self::B? member2 = null;
+ constructor •(self::B member) → self::Base
+ : self::Base::member = member, super core::Object::•()
+ ;
+}
+class Test extends self::Base {
+ constructor •(self::B member) → self::Test
+ : super self::Base::•(member)
+ ;
+ method test() → void {
+ super.{self::Base::member} = self::f<self::B>();
+ super.{self::Base::member2} == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : null;
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = super.{self::Base::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = super.{self::Base::member2} in #t1 == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = super.{self::Base::member} in let final self::B #t3 = super.{self::Base::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.outline.expect
new file mode 100644
index 0000000..81ca033
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.outline.expect
@@ -0,0 +1,40 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Base extends core::Object {
+ field self::B member;
+ field self::B? member2;
+ constructor •(self::B member) → self::Base
+ ;
+}
+class Test extends self::Base {
+ constructor •(self::B member) → self::Test
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.transformed.expect
new file mode 100644
index 0000000..d1cf654
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super2.dart.weak.transformed.expect
@@ -0,0 +1,58 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ field self::B member;
+ field self::B? member2 = null;
+ constructor •(self::B member) → self::Base
+ : self::Base::member = member, super core::Object::•()
+ ;
+}
+class Test extends self::Base {
+ constructor •(self::B member) → self::Test
+ : super self::Base::•(member)
+ ;
+ method test() → void {
+ super.{self::Base::member} = self::f<self::B>();
+ super.{self::Base::member2} == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : null;
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = super.{self::Base::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = super.{self::Base::member2} in #t1 == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = super.{self::Base::member} in let final self::B #t3 = super.{self::Base::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart
index b7a994d..bf35751 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,90 +10,93 @@
double getDouble() => 0.0;
class Base {
- int intProp;
- num numProp;
- double doubleProp;
+ int intProp = 0;
+ int? intProp2;
+ num numProp = 0;
+ num? numProp2;
+ double doubleProp = 0;
+ double? doubleProp2;
}
class Test1 extends Base {
void test() {
- var /*@ type=int* */ v1 = super.intProp = getInt();
+ var /*@type=int*/ v1 = super.intProp = getInt();
- var /*@ type=int* */ v4 = super. /*@target=Base.intProp*/ intProp
+ var /*@type=int*/ v4 = super. /*@target=Base.intProp2*/ intProp2
??= getInt();
- var /*@ type=int* */ v7 = super. /*@target=Base.intProp*/ intProp
+ var /*@type=int*/ v7 = super. /*@target=Base.intProp*/ intProp
/*@target=num.+*/ += getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++super
. /*@target=Base.intProp*/ intProp;
- var /*@ type=int* */ v11 = super
- . /*@ type=int* */ /*@target=Base.intProp*/
- /*@ type=int* */ intProp /*@target=num.+*/ ++;
+ var /*@type=int*/ v11 = super
+ . /*@type=int*/ /*@target=Base.intProp*/
+ /*@type=int*/ intProp /*@target=num.+*/ ++;
}
}
class Test2 extends Base {
void test() {
- var /*@ type=int* */ v1 = super.numProp = getInt();
+ var /*@type=int*/ v1 = super.numProp = getInt();
- var /*@ type=num* */ v2 = super.numProp = getNum();
+ var /*@type=num*/ v2 = super.numProp = getNum();
- var /*@ type=double* */ v3 = super.numProp = getDouble();
+ var /*@type=double*/ v3 = super.numProp = getDouble();
- var /*@ type=num* */ v4 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num*/ v4 = super. /*@target=Base.numProp2*/ numProp2
??= getInt();
- var /*@ type=num* */ v5 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num*/ v5 = super. /*@target=Base.numProp2*/ numProp2
??= getNum();
- var /*@ type=num* */ v6 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num*/ v6 = super. /*@target=Base.numProp2*/ numProp2
??= getDouble();
- var /*@ type=num* */ v7 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num*/ v7 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num*/ v8 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = super
+ var /*@type=double*/ v9 = super
.
/*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++super
. /*@target=Base.numProp*/ numProp;
- var /*@ type=num* */ v11 = super
+ var /*@type=num*/ v11 = super
.
- /*@ type=num* */ /*@target=Base.numProp*/
- /*@ type=num* */ numProp /*@target=num.+*/ ++;
+ /*@type=num*/ /*@target=Base.numProp*/
+ /*@type=num*/ numProp /*@target=num.+*/ ++;
}
}
class Test3 extends Base {
void test3() {
- var /*@ type=double* */ v3 = super.doubleProp = getDouble();
+ var /*@type=double*/ v3 = super.doubleProp = getDouble();
- var /*@ type=double* */ v6 = super. /*@target=Base.doubleProp*/ doubleProp
+ var /*@type=double*/ v6 = super. /*@target=Base.doubleProp2*/ doubleProp2
??= getDouble();
- var /*@ type=double* */ v7 = super. /*@target=Base.doubleProp*/ doubleProp
+ var /*@type=double*/ v7 = super. /*@target=Base.doubleProp*/ doubleProp
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = super. /*@target=Base.doubleProp*/ doubleProp
+ var /*@type=double*/ v8 = super. /*@target=Base.doubleProp*/ doubleProp
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = super. /*@target=Base.doubleProp*/ doubleProp
+ var /*@type=double*/ v9 = super. /*@target=Base.doubleProp*/ doubleProp
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++super
. /*@target=Base.doubleProp*/ doubleProp;
- var /*@ type=double* */ v11 = super
- . /*@ type=double* */ /*@target=Base.doubleProp*/
- /*@ type=double* */ doubleProp /*@target=double.+*/ ++;
+ var /*@type=double*/ v11 = super
+ . /*@type=double*/ /*@target=Base.doubleProp*/
+ /*@type=double*/ doubleProp /*@target=double.+*/ ++;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline.expect
index 4fafcad..371ffeb 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
int getInt() => 0;
@@ -6,9 +5,12 @@
double getDouble() => 0.0;
class Base {
- int intProp;
- num numProp;
- double doubleProp;
+ int intProp = 0;
+ int? intProp2;
+ num numProp = 0;
+ num? numProp2;
+ double doubleProp = 0;
+ double? doubleProp2;
}
class Test1 extends Base {
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline_modelled.expect
index 4aefd1c..230af7c 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.textual_outline_modelled.expect
@@ -1,10 +1,12 @@
-// @dart = 2.9
library test;
class Base {
- double doubleProp;
- int intProp;
- num numProp;
+ double? doubleProp2;
+ double doubleProp = 0;
+ int? intProp2;
+ int intProp = 0;
+ num? numProp2;
+ num numProp = 0;
}
class Test1 extends Base {
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.expect
index 15883a8..12e10f4 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.expect
@@ -1,73 +1,66 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Base extends core::Object {
- field core::int* intProp = null;
- field core::num* numProp = null;
- field core::double* doubleProp = null;
- synthetic constructor •() → self::Base*
+ field core::int intProp = 0;
+ field core::int? intProp2 = null;
+ field core::num numProp = 0;
+ field core::num? numProp2 = null;
+ field core::double doubleProp = 0.0;
+ field core::double? doubleProp2 = null;
+ synthetic constructor •() → self::Base
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test1 extends self::Base {
- synthetic constructor •() → self::Test1*
+ synthetic constructor •() → self::Test1
: super self::Base::•()
;
method test() → void {
- core::int* v1 = super.{self::Base::intProp} = self::getInt();
- core::int* v4 = let final core::int* #t1 = super.{self::Base::intProp} in #t1 == null ?{core::int*} super.{self::Base::intProp} = self::getInt() : #t1;
- core::int* v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = super.{self::Base::intProp} in let final core::int* #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+ core::int v1 = super.{self::Base::intProp} = self::getInt();
+ core::int v4 = let final core::int? #t1 = super.{self::Base::intProp2} in #t1 == null ?{core::int} super.{self::Base::intProp2} = self::getInt() : #t1{core::int};
+ core::int v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = super.{self::Base::intProp} in let final core::int #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
}
class Test2 extends self::Base {
- synthetic constructor •() → self::Test2*
+ synthetic constructor •() → self::Test2
: super self::Base::•()
;
method test() → void {
- core::int* v1 = super.{self::Base::numProp} = self::getInt();
- core::num* v2 = super.{self::Base::numProp} = self::getNum();
- core::double* v3 = super.{self::Base::numProp} = self::getDouble();
- core::num* v4 = let final core::num* #t4 = super.{self::Base::numProp} in #t4 == null ?{core::num*} super.{self::Base::numProp} = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = super.{self::Base::numProp} in #t5 == null ?{core::num*} super.{self::Base::numProp} = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = super.{self::Base::numProp} in #t6 == null ?{core::num*} super.{self::Base::numProp} = self::getDouble() : #t6;
- core::num* v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = super.{self::Base::numProp} in let final core::num* #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+ core::int v1 = super.{self::Base::numProp} = self::getInt();
+ core::num v2 = super.{self::Base::numProp} = self::getNum();
+ core::double v3 = super.{self::Base::numProp} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = super.{self::Base::numProp2} in #t4 == null ?{core::num} super.{self::Base::numProp2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = super.{self::Base::numProp2} in #t5 == null ?{core::num} super.{self::Base::numProp2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = super.{self::Base::numProp2} in #t6 == null ?{core::num} super.{self::Base::numProp2} = self::getDouble() : #t6{core::num};
+ core::num v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = super.{self::Base::numProp} in let final core::num #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
}
class Test3 extends self::Base {
- synthetic constructor •() → self::Test3*
+ synthetic constructor •() → self::Test3
: super self::Base::•()
;
method test3() → void {
- core::double* v3 = super.{self::Base::doubleProp} = self::getDouble();
- core::double* v6 = let final core::double* #t9 = super.{self::Base::doubleProp} in #t9 == null ?{core::double*} super.{self::Base::doubleProp} = self::getDouble() : #t9;
- core::double* v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = super.{self::Base::doubleProp} in let final core::double* #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+ core::double v3 = super.{self::Base::doubleProp} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = super.{self::Base::doubleProp2} in #t9 == null ?{core::double} super.{self::Base::doubleProp2} = self::getDouble() : #t9{core::double};
+ core::double v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = super.{self::Base::doubleProp} in let final core::double #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.modular.expect
index 15883a8..12e10f4 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.modular.expect
@@ -1,73 +1,66 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Base extends core::Object {
- field core::int* intProp = null;
- field core::num* numProp = null;
- field core::double* doubleProp = null;
- synthetic constructor •() → self::Base*
+ field core::int intProp = 0;
+ field core::int? intProp2 = null;
+ field core::num numProp = 0;
+ field core::num? numProp2 = null;
+ field core::double doubleProp = 0.0;
+ field core::double? doubleProp2 = null;
+ synthetic constructor •() → self::Base
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test1 extends self::Base {
- synthetic constructor •() → self::Test1*
+ synthetic constructor •() → self::Test1
: super self::Base::•()
;
method test() → void {
- core::int* v1 = super.{self::Base::intProp} = self::getInt();
- core::int* v4 = let final core::int* #t1 = super.{self::Base::intProp} in #t1 == null ?{core::int*} super.{self::Base::intProp} = self::getInt() : #t1;
- core::int* v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = super.{self::Base::intProp} in let final core::int* #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+ core::int v1 = super.{self::Base::intProp} = self::getInt();
+ core::int v4 = let final core::int? #t1 = super.{self::Base::intProp2} in #t1 == null ?{core::int} super.{self::Base::intProp2} = self::getInt() : #t1{core::int};
+ core::int v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = super.{self::Base::intProp} in let final core::int #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
}
class Test2 extends self::Base {
- synthetic constructor •() → self::Test2*
+ synthetic constructor •() → self::Test2
: super self::Base::•()
;
method test() → void {
- core::int* v1 = super.{self::Base::numProp} = self::getInt();
- core::num* v2 = super.{self::Base::numProp} = self::getNum();
- core::double* v3 = super.{self::Base::numProp} = self::getDouble();
- core::num* v4 = let final core::num* #t4 = super.{self::Base::numProp} in #t4 == null ?{core::num*} super.{self::Base::numProp} = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = super.{self::Base::numProp} in #t5 == null ?{core::num*} super.{self::Base::numProp} = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = super.{self::Base::numProp} in #t6 == null ?{core::num*} super.{self::Base::numProp} = self::getDouble() : #t6;
- core::num* v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = super.{self::Base::numProp} in let final core::num* #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+ core::int v1 = super.{self::Base::numProp} = self::getInt();
+ core::num v2 = super.{self::Base::numProp} = self::getNum();
+ core::double v3 = super.{self::Base::numProp} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = super.{self::Base::numProp2} in #t4 == null ?{core::num} super.{self::Base::numProp2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = super.{self::Base::numProp2} in #t5 == null ?{core::num} super.{self::Base::numProp2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = super.{self::Base::numProp2} in #t6 == null ?{core::num} super.{self::Base::numProp2} = self::getDouble() : #t6{core::num};
+ core::num v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = super.{self::Base::numProp} in let final core::num #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
}
class Test3 extends self::Base {
- synthetic constructor •() → self::Test3*
+ synthetic constructor •() → self::Test3
: super self::Base::•()
;
method test3() → void {
- core::double* v3 = super.{self::Base::doubleProp} = self::getDouble();
- core::double* v6 = let final core::double* #t9 = super.{self::Base::doubleProp} in #t9 == null ?{core::double*} super.{self::Base::doubleProp} = self::getDouble() : #t9;
- core::double* v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = super.{self::Base::doubleProp} in let final core::double* #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+ core::double v3 = super.{self::Base::doubleProp} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = super.{self::Base::doubleProp2} in #t9 == null ?{core::double} super.{self::Base::doubleProp2} = self::getDouble() : #t9{core::double};
+ core::double v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = super.{self::Base::doubleProp} in let final core::double #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.outline.expect
index 805ae5a..6500afd 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.outline.expect
@@ -1,47 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Base extends core::Object {
- field core::int* intProp;
- field core::num* numProp;
- field core::double* doubleProp;
- synthetic constructor •() → self::Base*
+ field core::int intProp;
+ field core::int? intProp2;
+ field core::num numProp;
+ field core::num? numProp2;
+ field core::double doubleProp;
+ field core::double? doubleProp2;
+ synthetic constructor •() → self::Base
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test1 extends self::Base {
- synthetic constructor •() → self::Test1*
+ synthetic constructor •() → self::Test1
;
method test() → void
;
}
class Test2 extends self::Base {
- synthetic constructor •() → self::Test2*
+ synthetic constructor •() → self::Test2
;
method test() → void
;
}
class Test3 extends self::Base {
- synthetic constructor •() → self::Test3*
+ synthetic constructor •() → self::Test3
;
method test3() → void
;
}
-static method getInt() → core::int*
+static method getInt() → core::int
;
-static method getNum() → core::num*
+static method getNum() → core::num
;
-static method getDouble() → core::double*
+static method getDouble() → core::double
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.transformed.expect
index 15883a8..12e10f4 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_super_upwards.dart.weak.transformed.expect
@@ -1,73 +1,66 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Base extends core::Object {
- field core::int* intProp = null;
- field core::num* numProp = null;
- field core::double* doubleProp = null;
- synthetic constructor •() → self::Base*
+ field core::int intProp = 0;
+ field core::int? intProp2 = null;
+ field core::num numProp = 0;
+ field core::num? numProp2 = null;
+ field core::double doubleProp = 0.0;
+ field core::double? doubleProp2 = null;
+ synthetic constructor •() → self::Base
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test1 extends self::Base {
- synthetic constructor •() → self::Test1*
+ synthetic constructor •() → self::Test1
: super self::Base::•()
;
method test() → void {
- core::int* v1 = super.{self::Base::intProp} = self::getInt();
- core::int* v4 = let final core::int* #t1 = super.{self::Base::intProp} in #t1 == null ?{core::int*} super.{self::Base::intProp} = self::getInt() : #t1;
- core::int* v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = super.{self::Base::intProp} in let final core::int* #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+ core::int v1 = super.{self::Base::intProp} = self::getInt();
+ core::int v4 = let final core::int? #t1 = super.{self::Base::intProp2} in #t1 == null ?{core::int} super.{self::Base::intProp2} = self::getInt() : #t1{core::int};
+ core::int v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = super.{self::Base::intProp} in let final core::int #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
}
class Test2 extends self::Base {
- synthetic constructor •() → self::Test2*
+ synthetic constructor •() → self::Test2
: super self::Base::•()
;
method test() → void {
- core::int* v1 = super.{self::Base::numProp} = self::getInt();
- core::num* v2 = super.{self::Base::numProp} = self::getNum();
- core::double* v3 = super.{self::Base::numProp} = self::getDouble();
- core::num* v4 = let final core::num* #t4 = super.{self::Base::numProp} in #t4 == null ?{core::num*} super.{self::Base::numProp} = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = super.{self::Base::numProp} in #t5 == null ?{core::num*} super.{self::Base::numProp} = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = super.{self::Base::numProp} in #t6 == null ?{core::num*} super.{self::Base::numProp} = self::getDouble() : #t6;
- core::num* v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = super.{self::Base::numProp} in let final core::num* #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+ core::int v1 = super.{self::Base::numProp} = self::getInt();
+ core::num v2 = super.{self::Base::numProp} = self::getNum();
+ core::double v3 = super.{self::Base::numProp} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = super.{self::Base::numProp2} in #t4 == null ?{core::num} super.{self::Base::numProp2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = super.{self::Base::numProp2} in #t5 == null ?{core::num} super.{self::Base::numProp2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = super.{self::Base::numProp2} in #t6 == null ?{core::num} super.{self::Base::numProp2} = self::getDouble() : #t6{core::num};
+ core::num v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = super.{self::Base::numProp} in let final core::num #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
}
class Test3 extends self::Base {
- synthetic constructor •() → self::Test3*
+ synthetic constructor •() → self::Test3
: super self::Base::•()
;
method test3() → void {
- core::double* v3 = super.{self::Base::doubleProp} = self::getDouble();
- core::double* v6 = let final core::double* #t9 = super.{self::Base::doubleProp} in #t9 == null ?{core::double*} super.{self::Base::doubleProp} = self::getDouble() : #t9;
- core::double* v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = super.{self::Base::doubleProp} in let final core::double* #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+ core::double v3 = super.{self::Base::doubleProp} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = super.{self::Base::doubleProp2} in #t9 == null ?{core::double} super.{self::Base::doubleProp2} = self::getDouble() : #t9{core::double};
+ core::double v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = super.{self::Base::doubleProp} in let final core::double #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart
index 541e475..3b3ff90 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,80 +10,83 @@
double getDouble() => 0.0;
class Test1 {
- int prop;
+ int prop = 0;
+ int? prop2;
static void test(Test1 t) {
- var /*@ type=int* */ v1 = t. /*@target=Test1.prop*/ prop = getInt();
- var /*@ type=int* */ v4 = /*@ type=Test1* */ /*@target=Test1.prop*/ t
- . /*@target=Test1.prop*/ prop
+ var /*@type=int*/ v1 = t. /*@target=Test1.prop*/ prop = getInt();
+ var /*@type=int*/ v4 = /*@type=Test1*/ /*@target=Test1.prop2*/ t
+ . /*@target=Test1.prop2*/ prop2
??= getInt();
- var /*@ type=int* */ v7 =
- /*@ type=Test1* */ t. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
+ var /*@type=int*/ v7 =
+ /*@type=Test1*/ t. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++ /*@ type=Test1* */ t
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++ /*@type=Test1*/ t
. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
- var /*@ type=int* */ v11 = /*@ type=Test1* */ t
- . /*@ type=int* */ /*@target=Test1.prop*/ /*@target=Test1.prop*/
- /*@ type=int* */ prop /*@target=num.+*/ ++;
+ var /*@type=int*/ v11 = /*@type=Test1*/ t
+ . /*@type=int*/ /*@target=Test1.prop*/ /*@target=Test1.prop*/
+ /*@type=int*/ prop /*@target=num.+*/ ++;
}
}
class Test2 {
- num prop;
+ num prop = 0;
+ num? prop2;
static void test(Test2 t) {
- var /*@ type=int* */ v1 = t. /*@target=Test2.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = t. /*@target=Test2.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
- var /*@ type=num* */ v4 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
- . /*@target=Test2.prop*/ prop
+ var /*@type=int*/ v1 = t. /*@target=Test2.prop*/ prop = getInt();
+ var /*@type=num*/ v2 = t. /*@target=Test2.prop*/ prop = getNum();
+ var /*@type=double*/ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
+ var /*@type=num*/ v4 = /*@type=Test2*/ /*@target=Test2.prop2*/ t
+ . /*@target=Test2.prop2*/ prop2
??= getInt();
- var /*@ type=num* */ v5 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
- . /*@target=Test2.prop*/ prop
+ var /*@type=num*/ v5 = /*@type=Test2*/ /*@target=Test2.prop2*/ t
+ . /*@target=Test2.prop2*/ prop2
??= getNum();
- var /*@ type=num* */ v6 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
- . /*@target=Test2.prop*/ prop
+ var /*@type=num*/ v6 = /*@type=Test2*/ /*@target=Test2.prop2*/ t
+ . /*@target=Test2.prop2*/ prop2
??= getDouble();
- var /*@ type=num* */ v7 =
- /*@ type=Test2* */ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
+ var /*@type=num*/ v7 =
+ /*@type=Test2*/ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
- /*@ type=Test2* */ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
+ var /*@type=num*/ v8 =
+ /*@type=Test2*/ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 =
- /*@ type=Test2* */ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
+ var /*@type=double*/ v9 =
+ /*@type=Test2*/ t. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++ /*@ type=Test2* */ t
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++ /*@type=Test2*/ t
. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
- var /*@ type=num* */ v11 = /*@ type=Test2* */ t
- . /*@ type=num* */ /*@target=Test2.prop*/ /*@target=Test2.prop*/
- /*@ type=num* */ prop /*@target=num.+*/ ++;
+ var /*@type=num*/ v11 = /*@type=Test2*/ t
+ . /*@type=num*/ /*@target=Test2.prop*/ /*@target=Test2.prop*/
+ /*@type=num*/ prop /*@target=num.+*/ ++;
}
}
class Test3 {
- double prop;
+ double prop = 0;
+ double? prop2;
static void test3(Test3 t) {
- var /*@ type=double* */ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
- var /*@ type=double* */ v6 =
- /*@ type=Test3* */ /*@target=Test3.prop*/ t. /*@target=Test3.prop*/
- prop ??= getDouble();
- var /*@ type=double* */ v7 =
- /*@ type=Test3* */ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
+ var /*@type=double*/ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
+ var /*@type=double*/ v6 =
+ /*@type=Test3*/ /*@target=Test3.prop2*/ t. /*@target=Test3.prop2*/
+ prop2 ??= getDouble();
+ var /*@type=double*/ v7 =
+ /*@type=Test3*/ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 =
- /*@ type=Test3* */ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
+ var /*@type=double*/ v8 =
+ /*@type=Test3*/ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 =
- /*@ type=Test3* */ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
+ var /*@type=double*/ v9 =
+ /*@type=Test3*/ t. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++ /*@ type=Test3* */ t.
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++ /*@type=Test3*/ t.
/*@target=Test3.prop*/ /*@target=Test3.prop*/
prop;
- var /*@ type=double* */ v11 = /*@ type=Test3* */ t.
- /*@ type=double* */ /*@target=Test3.prop*/ /*@target=Test3.prop*/
- /*@ type=double* */ prop /*@target=double.+*/ ++;
+ var /*@type=double*/ v11 = /*@type=Test3*/ t.
+ /*@type=double*/ /*@target=Test3.prop*/ /*@target=Test3.prop*/
+ /*@type=double*/ prop /*@target=double.+*/ ++;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline.expect
index d232d96..c8a6c11 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
int getInt() => 0;
@@ -6,17 +5,20 @@
double getDouble() => 0.0;
class Test1 {
- int prop;
+ int prop = 0;
+ int? prop2;
static void test(Test1 t) {}
}
class Test2 {
- num prop;
+ num prop = 0;
+ num? prop2;
static void test(Test2 t) {}
}
class Test3 {
- double prop;
+ double prop = 0;
+ double? prop2;
static void test3(Test3 t) {}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline_modelled.expect
index 5ff5dff..473c5d4 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.textual_outline_modelled.expect
@@ -1,18 +1,20 @@
-// @dart = 2.9
library test;
class Test1 {
- int prop;
+ int? prop2;
+ int prop = 0;
static void test(Test1 t) {}
}
class Test2 {
- num prop;
+ num? prop2;
+ num prop = 0;
static void test(Test2 t) {}
}
class Test3 {
- double prop;
+ double? prop2;
+ double prop = 0;
static void test3(Test3 t) {}
}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.expect
index 1e03234..e4784b6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.expect
@@ -1,88 +1,61 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop = null;
- synthetic constructor •() → self::Test1*
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
: super core::Object::•()
;
- static method test(self::Test1* t) → void {
- core::int* v1 = t.{self::Test1::prop} = self::getInt();
- core::int* v4 = let final self::Test1* #t1 = t in let final core::int* #t2 = #t1.{self::Test1::prop}{core::int*} in #t2 == null ?{core::int*} #t1.{self::Test1::prop} = self::getInt() : #t2;
- core::int* v7 = let final self::Test1* #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = let final self::Test1* #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final self::Test1* #t5 = t in let final core::int* #t6 = #t5.{self::Test1::prop}{core::int*} in let final core::int* #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num*) →* core::int*} in #t6;
+ static method test(self::Test1 t) → void {
+ core::int v1 = t.{self::Test1::prop} = self::getInt();
+ core::int v4 = let final self::Test1 #t1 = t in let final core::int? #t2 = #t1.{self::Test1::prop2}{core::int?} in #t2 == null ?{core::int} #t1.{self::Test1::prop2} = self::getInt() : #t2{core::int};
+ core::int v7 = let final self::Test1 #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = let final self::Test1 #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final self::Test1 #t5 = t in let final core::int #t6 = #t5.{self::Test1::prop}{core::int} in let final core::int #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num) → core::int} in #t6;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop = null;
- synthetic constructor •() → self::Test2*
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
: super core::Object::•()
;
- static method test(self::Test2* t) → void {
- core::int* v1 = t.{self::Test2::prop} = self::getInt();
- core::num* v2 = t.{self::Test2::prop} = self::getNum();
- core::double* v3 = t.{self::Test2::prop} = self::getDouble();
- core::num* v4 = let final self::Test2* #t8 = t in let final core::num* #t9 = #t8.{self::Test2::prop}{core::num*} in #t9 == null ?{core::num*} #t8.{self::Test2::prop} = self::getInt() : #t9;
- core::num* v5 = let final self::Test2* #t10 = t in let final core::num* #t11 = #t10.{self::Test2::prop}{core::num*} in #t11 == null ?{core::num*} #t10.{self::Test2::prop} = self::getNum() : #t11;
- core::num* v6 = let final self::Test2* #t12 = t in let final core::num* #t13 = #t12.{self::Test2::prop}{core::num*} in #t13 == null ?{core::num*} #t12.{self::Test2::prop} = self::getDouble() : #t13;
- core::num* v7 = let final self::Test2* #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num*}.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = let final self::Test2* #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = let final self::Test2* #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = let final self::Test2* #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final self::Test2* #t18 = t in let final core::num* #t19 = #t18.{self::Test2::prop}{core::num*} in let final core::num* #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num*) →* core::num*} in #t19;
+ static method test(self::Test2 t) → void {
+ core::int v1 = t.{self::Test2::prop} = self::getInt();
+ core::num v2 = t.{self::Test2::prop} = self::getNum();
+ core::double v3 = t.{self::Test2::prop} = self::getDouble();
+ core::num v4 = let final self::Test2 #t8 = t in let final core::num? #t9 = #t8.{self::Test2::prop2}{core::num?} in #t9 == null ?{core::num} #t8.{self::Test2::prop2} = self::getInt() : #t9{core::num};
+ core::num v5 = let final self::Test2 #t10 = t in let final core::num? #t11 = #t10.{self::Test2::prop2}{core::num?} in #t11 == null ?{core::num} #t10.{self::Test2::prop2} = self::getNum() : #t11{core::num};
+ core::num v6 = let final self::Test2 #t12 = t in let final core::num? #t13 = #t12.{self::Test2::prop2}{core::num?} in #t13 == null ?{core::num} #t12.{self::Test2::prop2} = self::getDouble() : #t13{core::num};
+ core::num v7 = let final self::Test2 #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = let final self::Test2 #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = let final self::Test2 #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = let final self::Test2 #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final self::Test2 #t18 = t in let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in let final core::num #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num) → core::num} in #t19;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop = null;
- synthetic constructor •() → self::Test3*
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
: super core::Object::•()
;
- static method test3(self::Test3* t) → void {
- core::double* v3 = t.{self::Test3::prop} = self::getDouble();
- core::double* v6 = let final self::Test3* #t21 = t in let final core::double* #t22 = #t21.{self::Test3::prop}{core::double*} in #t22 == null ?{core::double*} #t21.{self::Test3::prop} = self::getDouble() : #t22;
- core::double* v7 = let final self::Test3* #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = let final self::Test3* #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = let final self::Test3* #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = let final self::Test3* #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final self::Test3* #t27 = t in let final core::double* #t28 = #t27.{self::Test3::prop}{core::double*} in let final core::double* #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num*) →* core::double*} in #t28;
+ static method test3(self::Test3 t) → void {
+ core::double v3 = t.{self::Test3::prop} = self::getDouble();
+ core::double v6 = let final self::Test3 #t21 = t in let final core::double? #t22 = #t21.{self::Test3::prop2}{core::double?} in #t22 == null ?{core::double} #t21.{self::Test3::prop2} = self::getDouble() : #t22{core::double};
+ core::double v7 = let final self::Test3 #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = let final self::Test3 #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = let final self::Test3 #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = let final self::Test3 #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final self::Test3 #t27 = t in let final core::double #t28 = #t27.{self::Test3::prop}{core::double} in let final core::double #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num) → core::double} in #t28;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.modular.expect
index 1e03234..e4784b6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.modular.expect
@@ -1,88 +1,61 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop = null;
- synthetic constructor •() → self::Test1*
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
: super core::Object::•()
;
- static method test(self::Test1* t) → void {
- core::int* v1 = t.{self::Test1::prop} = self::getInt();
- core::int* v4 = let final self::Test1* #t1 = t in let final core::int* #t2 = #t1.{self::Test1::prop}{core::int*} in #t2 == null ?{core::int*} #t1.{self::Test1::prop} = self::getInt() : #t2;
- core::int* v7 = let final self::Test1* #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = let final self::Test1* #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final self::Test1* #t5 = t in let final core::int* #t6 = #t5.{self::Test1::prop}{core::int*} in let final core::int* #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num*) →* core::int*} in #t6;
+ static method test(self::Test1 t) → void {
+ core::int v1 = t.{self::Test1::prop} = self::getInt();
+ core::int v4 = let final self::Test1 #t1 = t in let final core::int? #t2 = #t1.{self::Test1::prop2}{core::int?} in #t2 == null ?{core::int} #t1.{self::Test1::prop2} = self::getInt() : #t2{core::int};
+ core::int v7 = let final self::Test1 #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = let final self::Test1 #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final self::Test1 #t5 = t in let final core::int #t6 = #t5.{self::Test1::prop}{core::int} in let final core::int #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num) → core::int} in #t6;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop = null;
- synthetic constructor •() → self::Test2*
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
: super core::Object::•()
;
- static method test(self::Test2* t) → void {
- core::int* v1 = t.{self::Test2::prop} = self::getInt();
- core::num* v2 = t.{self::Test2::prop} = self::getNum();
- core::double* v3 = t.{self::Test2::prop} = self::getDouble();
- core::num* v4 = let final self::Test2* #t8 = t in let final core::num* #t9 = #t8.{self::Test2::prop}{core::num*} in #t9 == null ?{core::num*} #t8.{self::Test2::prop} = self::getInt() : #t9;
- core::num* v5 = let final self::Test2* #t10 = t in let final core::num* #t11 = #t10.{self::Test2::prop}{core::num*} in #t11 == null ?{core::num*} #t10.{self::Test2::prop} = self::getNum() : #t11;
- core::num* v6 = let final self::Test2* #t12 = t in let final core::num* #t13 = #t12.{self::Test2::prop}{core::num*} in #t13 == null ?{core::num*} #t12.{self::Test2::prop} = self::getDouble() : #t13;
- core::num* v7 = let final self::Test2* #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num*}.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = let final self::Test2* #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = let final self::Test2* #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = let final self::Test2* #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final self::Test2* #t18 = t in let final core::num* #t19 = #t18.{self::Test2::prop}{core::num*} in let final core::num* #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num*) →* core::num*} in #t19;
+ static method test(self::Test2 t) → void {
+ core::int v1 = t.{self::Test2::prop} = self::getInt();
+ core::num v2 = t.{self::Test2::prop} = self::getNum();
+ core::double v3 = t.{self::Test2::prop} = self::getDouble();
+ core::num v4 = let final self::Test2 #t8 = t in let final core::num? #t9 = #t8.{self::Test2::prop2}{core::num?} in #t9 == null ?{core::num} #t8.{self::Test2::prop2} = self::getInt() : #t9{core::num};
+ core::num v5 = let final self::Test2 #t10 = t in let final core::num? #t11 = #t10.{self::Test2::prop2}{core::num?} in #t11 == null ?{core::num} #t10.{self::Test2::prop2} = self::getNum() : #t11{core::num};
+ core::num v6 = let final self::Test2 #t12 = t in let final core::num? #t13 = #t12.{self::Test2::prop2}{core::num?} in #t13 == null ?{core::num} #t12.{self::Test2::prop2} = self::getDouble() : #t13{core::num};
+ core::num v7 = let final self::Test2 #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = let final self::Test2 #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = let final self::Test2 #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = let final self::Test2 #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final self::Test2 #t18 = t in let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in let final core::num #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num) → core::num} in #t19;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop = null;
- synthetic constructor •() → self::Test3*
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
: super core::Object::•()
;
- static method test3(self::Test3* t) → void {
- core::double* v3 = t.{self::Test3::prop} = self::getDouble();
- core::double* v6 = let final self::Test3* #t21 = t in let final core::double* #t22 = #t21.{self::Test3::prop}{core::double*} in #t22 == null ?{core::double*} #t21.{self::Test3::prop} = self::getDouble() : #t22;
- core::double* v7 = let final self::Test3* #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = let final self::Test3* #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = let final self::Test3* #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = let final self::Test3* #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final self::Test3* #t27 = t in let final core::double* #t28 = #t27.{self::Test3::prop}{core::double*} in let final core::double* #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num*) →* core::double*} in #t28;
+ static method test3(self::Test3 t) → void {
+ core::double v3 = t.{self::Test3::prop} = self::getDouble();
+ core::double v6 = let final self::Test3 #t21 = t in let final core::double? #t22 = #t21.{self::Test3::prop2}{core::double?} in #t22 == null ?{core::double} #t21.{self::Test3::prop2} = self::getDouble() : #t22{core::double};
+ core::double v7 = let final self::Test3 #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = let final self::Test3 #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = let final self::Test3 #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = let final self::Test3 #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final self::Test3 #t27 = t in let final core::double #t28 = #t27.{self::Test3::prop}{core::double} in let final core::double #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num) → core::double} in #t28;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.outline.expect
index fd753c6..fd3445a 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.outline.expect
@@ -1,63 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop;
- synthetic constructor •() → self::Test1*
+ field core::int prop;
+ field core::int? prop2;
+ synthetic constructor •() → self::Test1
;
- static method test(self::Test1* t) → void
+ static method test(self::Test1 t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop;
- synthetic constructor •() → self::Test2*
+ field core::num prop;
+ field core::num? prop2;
+ synthetic constructor •() → self::Test2
;
- static method test(self::Test2* t) → void
+ static method test(self::Test2 t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop;
- synthetic constructor •() → self::Test3*
+ field core::double prop;
+ field core::double? prop2;
+ synthetic constructor •() → self::Test3
;
- static method test3(self::Test3* t) → void
+ static method test3(self::Test3 t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
;
-static method getNum() → core::num*
+static method getNum() → core::num
;
-static method getDouble() → core::double*
+static method getDouble() → core::double
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.transformed.expect
index 1e03234..e4784b6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_property_upwards.dart.weak.transformed.expect
@@ -1,88 +1,61 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Test1 extends core::Object {
- field core::int* prop = null;
- synthetic constructor •() → self::Test1*
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
: super core::Object::•()
;
- static method test(self::Test1* t) → void {
- core::int* v1 = t.{self::Test1::prop} = self::getInt();
- core::int* v4 = let final self::Test1* #t1 = t in let final core::int* #t2 = #t1.{self::Test1::prop}{core::int*} in #t2 == null ?{core::int*} #t1.{self::Test1::prop} = self::getInt() : #t2;
- core::int* v7 = let final self::Test1* #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = let final self::Test1* #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final self::Test1* #t5 = t in let final core::int* #t6 = #t5.{self::Test1::prop}{core::int*} in let final core::int* #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num*) →* core::int*} in #t6;
+ static method test(self::Test1 t) → void {
+ core::int v1 = t.{self::Test1::prop} = self::getInt();
+ core::int v4 = let final self::Test1 #t1 = t in let final core::int? #t2 = #t1.{self::Test1::prop2}{core::int?} in #t2 == null ?{core::int} #t1.{self::Test1::prop2} = self::getInt() : #t2{core::int};
+ core::int v7 = let final self::Test1 #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = let final self::Test1 #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final self::Test1 #t5 = t in let final core::int #t6 = #t5.{self::Test1::prop}{core::int} in let final core::int #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num) → core::int} in #t6;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test2 extends core::Object {
- field core::num* prop = null;
- synthetic constructor •() → self::Test2*
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
: super core::Object::•()
;
- static method test(self::Test2* t) → void {
- core::int* v1 = t.{self::Test2::prop} = self::getInt();
- core::num* v2 = t.{self::Test2::prop} = self::getNum();
- core::double* v3 = t.{self::Test2::prop} = self::getDouble();
- core::num* v4 = let final self::Test2* #t8 = t in let final core::num* #t9 = #t8.{self::Test2::prop}{core::num*} in #t9 == null ?{core::num*} #t8.{self::Test2::prop} = self::getInt() : #t9;
- core::num* v5 = let final self::Test2* #t10 = t in let final core::num* #t11 = #t10.{self::Test2::prop}{core::num*} in #t11 == null ?{core::num*} #t10.{self::Test2::prop} = self::getNum() : #t11;
- core::num* v6 = let final self::Test2* #t12 = t in let final core::num* #t13 = #t12.{self::Test2::prop}{core::num*} in #t13 == null ?{core::num*} #t12.{self::Test2::prop} = self::getDouble() : #t13;
- core::num* v7 = let final self::Test2* #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num*}.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = let final self::Test2* #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = let final self::Test2* #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num*}.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = let final self::Test2* #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num*}.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final self::Test2* #t18 = t in let final core::num* #t19 = #t18.{self::Test2::prop}{core::num*} in let final core::num* #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num*) →* core::num*} in #t19;
+ static method test(self::Test2 t) → void {
+ core::int v1 = t.{self::Test2::prop} = self::getInt();
+ core::num v2 = t.{self::Test2::prop} = self::getNum();
+ core::double v3 = t.{self::Test2::prop} = self::getDouble();
+ core::num v4 = let final self::Test2 #t8 = t in let final core::num? #t9 = #t8.{self::Test2::prop2}{core::num?} in #t9 == null ?{core::num} #t8.{self::Test2::prop2} = self::getInt() : #t9{core::num};
+ core::num v5 = let final self::Test2 #t10 = t in let final core::num? #t11 = #t10.{self::Test2::prop2}{core::num?} in #t11 == null ?{core::num} #t10.{self::Test2::prop2} = self::getNum() : #t11{core::num};
+ core::num v6 = let final self::Test2 #t12 = t in let final core::num? #t13 = #t12.{self::Test2::prop2}{core::num?} in #t13 == null ?{core::num} #t12.{self::Test2::prop2} = self::getDouble() : #t13{core::num};
+ core::num v7 = let final self::Test2 #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = let final self::Test2 #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = let final self::Test2 #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = let final self::Test2 #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final self::Test2 #t18 = t in let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in let final core::num #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num) → core::num} in #t19;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class Test3 extends core::Object {
- field core::double* prop = null;
- synthetic constructor •() → self::Test3*
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
: super core::Object::•()
;
- static method test3(self::Test3* t) → void {
- core::double* v3 = t.{self::Test3::prop} = self::getDouble();
- core::double* v6 = let final self::Test3* #t21 = t in let final core::double* #t22 = #t21.{self::Test3::prop}{core::double*} in #t22 == null ?{core::double*} #t21.{self::Test3::prop} = self::getDouble() : #t22;
- core::double* v7 = let final self::Test3* #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = let final self::Test3* #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = let final self::Test3* #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double*}.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = let final self::Test3* #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double*}.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final self::Test3* #t27 = t in let final core::double* #t28 = #t27.{self::Test3::prop}{core::double*} in let final core::double* #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num*) →* core::double*} in #t28;
+ static method test3(self::Test3 t) → void {
+ core::double v3 = t.{self::Test3::prop} = self::getDouble();
+ core::double v6 = let final self::Test3 #t21 = t in let final core::double? #t22 = #t21.{self::Test3::prop2}{core::double?} in #t22 == null ?{core::double} #t21.{self::Test3::prop2} = self::getDouble() : #t22{core::double};
+ core::double v7 = let final self::Test3 #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = let final self::Test3 #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = let final self::Test3 #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = let final self::Test3 #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final self::Test3 #t27 = t in let final core::double #t28 = #t27.{self::Test3::prop}{core::double} in let final core::double #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num) → core::double} in #t28;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method getInt() → core::int*
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart
index b6c157a..00ba0ab 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- int f;
+ int f = 0;
}
A a = new A();
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline.expect
index 5efe496..c3350d6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- int f;
+ int f = 0;
}
A a = new A();
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline_modelled.expect
index bd591d5..a23894e 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
A a = new A();
class A {
- int f;
+ int f = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.expect
index e1508e3..40682a6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* c = 0;
+static field self::A a = new self::A::•();
+static field core::int c = 0;
static method main() → dynamic {
self::a;
self::c;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.modular.expect
index e1508e3..40682a6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* c = 0;
+static field self::A a = new self::A::•();
+static field core::int c = 0;
static method main() → dynamic {
self::a;
self::c;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.outline.expect
index 9134274..0e448a9 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f;
- synthetic constructor •() → self::A*
+ field core::int f;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a;
-static field core::int* c;
+static field self::A a;
+static field core::int c;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.transformed.expect
index e1508e3..40682a6 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_ref.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* c = 0;
+static field self::A a = new self::A::•();
+static field core::int c = 0;
static method main() → dynamic {
self::a;
self::c;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static.dart b/pkg/front_end/testcases/inference/infer_assign_to_static.dart
index c09b270..c457353 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart
new file mode 100644
index 0000000..834b333
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart
@@ -0,0 +1,88 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+
+ static B staticVariable = throw '';
+ static B? staticVariable2;
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+B topLevelVariable = throw '';
+B? topLevelVariable2;
+
+void test_topLevelVariable() {
+ topLevelVariable = /*@typeArgs=B*/ f();
+
+ topLevelVariable2 ??= /*@typeArgs=B?*/ f();
+
+ topLevelVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ topLevelVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ topLevelVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --topLevelVariable;
+
+ topLevelVariable /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = topLevelVariable = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = topLevelVariable2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = topLevelVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = topLevelVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = topLevelVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --topLevelVariable;
+
+ var /*@type=B*/ v7 = /*@type=B*/ topLevelVariable /*@type=B*/ /*@target=B.-*/ --;
+}
+
+void test_staticVariable() {
+ B.staticVariable = /*@typeArgs=B*/ f();
+
+ B.staticVariable2 ??= /*@typeArgs=B?*/ f();
+
+ B.staticVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ B.staticVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ B.staticVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --B.staticVariable;
+
+ B.staticVariable /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = B.staticVariable = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = B.staticVariable2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = B.staticVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = B.staticVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = B.staticVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --B.staticVariable;
+
+ var /*@type=B*/ v7 =
+ B. /*@type=B*/ staticVariable /*@type=B*/ /*@target=B.-*/ --;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.textual_outline.expect
new file mode 100644
index 0000000..ac69ece
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.textual_outline.expect
@@ -0,0 +1,21 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+ static B staticVariable = throw '';
+ static B? staticVariable2;
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+B topLevelVariable = throw '';
+B? topLevelVariable2;
+void test_topLevelVariable() {}
+void test_staticVariable() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..dfd2d70
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.textual_outline_modelled.expect
@@ -0,0 +1,22 @@
+library test;
+
+B? topLevelVariable2;
+B topLevelVariable = throw '';
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+ static B? staticVariable2;
+ static B staticVariable = throw '';
+}
+
+class C extends B {}
+
+main() {}
+void test_staticVariable() {}
+void test_topLevelVariable() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.expect
new file mode 100644
index 0000000..3551711
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable = throw "";
+ static field self::B? staticVariable2 = null;
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static field self::B topLevelVariable = throw "";
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test_topLevelVariable() → void {
+ self::topLevelVariable = self::f<self::B>();
+ self::topLevelVariable2 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : null;
+ self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::topLevelVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = self::topLevelVariable2 in #t1 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = self::topLevelVariable in let final self::B #t3 = self::topLevelVariable = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method test_staticVariable() → void {
+ self::B::staticVariable = self::f<self::B>();
+ self::B::staticVariable2 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : null;
+ self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::B::staticVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t4 = self::B::staticVariable2 in #t4 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : #t4{self::B};
+ self::B v3 = self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t5 = self::B::staticVariable in let final self::B #t6 = self::B::staticVariable = #t5.{self::B::-}(1){(core::int) → self::B} in #t5;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.modular.expect
new file mode 100644
index 0000000..3551711
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.modular.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable = throw "";
+ static field self::B? staticVariable2 = null;
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static field self::B topLevelVariable = throw "";
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test_topLevelVariable() → void {
+ self::topLevelVariable = self::f<self::B>();
+ self::topLevelVariable2 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : null;
+ self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::topLevelVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = self::topLevelVariable2 in #t1 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = self::topLevelVariable in let final self::B #t3 = self::topLevelVariable = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method test_staticVariable() → void {
+ self::B::staticVariable = self::f<self::B>();
+ self::B::staticVariable2 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : null;
+ self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::B::staticVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t4 = self::B::staticVariable2 in #t4 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : #t4{self::B};
+ self::B v3 = self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t5 = self::B::staticVariable in let final self::B #t6 = self::B::staticVariable = #t5.{self::B::-}(1){(core::int) → self::B} in #t5;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.outline.expect
new file mode 100644
index 0000000..a06bbd0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable;
+ static field self::B? staticVariable2;
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static field self::B topLevelVariable;
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method test_topLevelVariable() → void
+ ;
+static method test_staticVariable() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.transformed.expect
new file mode 100644
index 0000000..3551711
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static2.dart.weak.transformed.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable = throw "";
+ static field self::B? staticVariable2 = null;
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static field self::B topLevelVariable = throw "";
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test_topLevelVariable() → void {
+ self::topLevelVariable = self::f<self::B>();
+ self::topLevelVariable2 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : null;
+ self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::topLevelVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = self::topLevelVariable2 in #t1 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = self::topLevelVariable in let final self::B #t3 = self::topLevelVariable = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method test_staticVariable() → void {
+ self::B::staticVariable = self::f<self::B>();
+ self::B::staticVariable2 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : null;
+ self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::B::staticVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t4 = self::B::staticVariable2 in #t4 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : #t4{self::B};
+ self::B v3 = self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t5 = self::B::staticVariable in let final self::B #t6 = self::B::staticVariable = #t5.{self::B::-}(1){(core::int) → self::B} in #t5;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart
index 22ed9e5..c8bb726 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,65 +9,63 @@
num getNum() => 0;
double getDouble() => 0.0;
-int topLevelInt;
-num topLevelNum;
-double topLevelDouble;
+int topLevelInt = 0;
+int? topLevelInt2;
+num topLevelNum = 0;
+num? topLevelNum2;
+double topLevelDouble = 0;
+double? topLevelDouble2;
void test1() {
- var /*@ type=int* */ v1 = topLevelInt = getInt();
+ var /*@type=int*/ v1 = topLevelInt = getInt();
- var /*@ type=int* */ v4 = topLevelInt ??= getInt();
+ var /*@type=int*/ v4 = topLevelInt2 ??= getInt();
- var /*@ type=int* */ v7 = topLevelInt /*@target=num.+*/ += getInt();
+ var /*@type=int*/ v7 = topLevelInt /*@target=num.+*/+= getInt();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++topLevelInt;
+ var /*@type=int*/ v10 = /*@target=num.+*/++topLevelInt;
- var /*@ type=int* */ v11 = /*@ type=int* */ topLevelInt
- /*@ type=int* */ /*@target=num.+*/ ++;
+ var /*@type=int*/ v11 = /*@type=int*/topLevelInt /*@target=num.+*//*@type=int*/++;
}
void test2() {
- var /*@ type=int* */ v1 = topLevelNum = getInt();
+ var /*@type=int*/ v1 = topLevelNum = getInt();
- var /*@ type=num* */ v2 = topLevelNum = getNum();
+ var /*@type=num*/ v2 = topLevelNum = getNum();
- var /*@ type=double* */ v3 = topLevelNum = getDouble();
+ var /*@type=double*/ v3 = topLevelNum = getDouble();
- var /*@ type=num* */ v4 = topLevelNum ??= getInt();
+ var /*@type=num*/ v4 = topLevelNum2 ??= getInt();
- var /*@ type=num* */ v5 = topLevelNum ??= getNum();
+ var /*@type=num*/ v5 = topLevelNum2 ??= getNum();
- var /*@ type=num* */ v6 = topLevelNum ??= getDouble();
+ var /*@type=num*/ v6 = topLevelNum2 ??= getDouble();
- var /*@ type=num* */ v7 = topLevelNum /*@target=num.+*/ += getInt();
+ var /*@type=num*/ v7 = topLevelNum /*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = topLevelNum /*@target=num.+*/ += getNum();
+ var /*@type=num*/ v8 = topLevelNum /*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = topLevelNum /*@target=num.+*/ += getDouble();
+ var /*@type=double*/ v9 = topLevelNum /*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++topLevelNum;
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++topLevelNum;
- var /*@ type=num* */ v11 = /*@ type=num* */ topLevelNum
- /*@ type=num* */ /*@target=num.+*/ ++;
+ var /*@type=num*/ v11 = /*@type=num*/ topLevelNum /*@type=num*/ /*@target=num.+*/ ++;
}
void test3() {
- var /*@ type=double* */ v3 = topLevelDouble = getDouble();
+ var /*@type=double*/ v3 = topLevelDouble = getDouble();
- var /*@ type=double* */ v6 =
- topLevelDouble ??= getDouble();
+ var /*@type=double*/ v6 = topLevelDouble2 ??= getDouble();
- var /*@ type=double* */ v7 = topLevelDouble /*@target=double.+*/ += getInt();
+ var /*@type=double*/ v7 = topLevelDouble /*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = topLevelDouble /*@target=double.+*/ += getNum();
+ var /*@type=double*/ v8 = topLevelDouble /*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 =
- topLevelDouble /*@target=double.+*/ += getDouble();
+ var /*@type=double*/ v9 = topLevelDouble /*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++topLevelDouble;
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++topLevelDouble;
- var /*@ type=double* */ v11 = /*@ type=double* */ topLevelDouble
- /*@ type=double* */ /*@target=double.+*/ ++;
+ var /*@type=double*/ v11 = /*@type=double*/ topLevelDouble /*@type=double*/ /*@target=double.+*/ ++;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline.expect
index a6d579a..a9a31ea 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline.expect
@@ -1,12 +1,14 @@
-// @dart = 2.9
library test;
int getInt() => 0;
num getNum() => 0;
double getDouble() => 0.0;
-int topLevelInt;
-num topLevelNum;
-double topLevelDouble;
+int topLevelInt = 0;
+int? topLevelInt2;
+num topLevelNum = 0;
+num? topLevelNum2;
+double topLevelDouble = 0;
+double? topLevelDouble2;
void test1() {}
void test2() {}
void test3() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline_modelled.expect
index 2e57621..2d4dbdf 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.textual_outline_modelled.expect
@@ -1,13 +1,15 @@
-// @dart = 2.9
library test;
+double? topLevelDouble2;
double getDouble() => 0.0;
-double topLevelDouble;
+double topLevelDouble = 0;
+int? topLevelInt2;
int getInt() => 0;
-int topLevelInt;
+int topLevelInt = 0;
main() {}
+num? topLevelNum2;
num getNum() => 0;
-num topLevelNum;
+num topLevelNum = 0;
void test1() {}
void test2() {}
void test3() {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.expect
index 4130e63..4aa81b0 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.expect
@@ -1,43 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* topLevelInt;
-static field core::num* topLevelNum;
-static field core::double* topLevelDouble;
-static method getInt() → core::int*
+static field core::int topLevelInt = 0;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum = 0;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble = 0.0;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method test1() → void {
- core::int* v1 = self::topLevelInt = self::getInt();
- core::int* v4 = let final core::int* #t1 = self::topLevelInt in #t1 == null ?{core::int*} self::topLevelInt = self::getInt() : #t1;
- core::int* v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = self::topLevelInt in let final core::int* #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+ core::int v1 = self::topLevelInt = self::getInt();
+ core::int v4 = let final core::int? #t1 = self::topLevelInt2 in #t1 == null ?{core::int} self::topLevelInt2 = self::getInt() : #t1{core::int};
+ core::int v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = self::topLevelInt in let final core::int #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
static method test2() → void {
- core::int* v1 = self::topLevelNum = self::getInt();
- core::num* v2 = self::topLevelNum = self::getNum();
- core::double* v3 = self::topLevelNum = self::getDouble();
- core::num* v4 = let final core::num* #t4 = self::topLevelNum in #t4 == null ?{core::num*} self::topLevelNum = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = self::topLevelNum in #t5 == null ?{core::num*} self::topLevelNum = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = self::topLevelNum in #t6 == null ?{core::num*} self::topLevelNum = self::getDouble() : #t6;
- core::num* v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = self::topLevelNum in let final core::num* #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+ core::int v1 = self::topLevelNum = self::getInt();
+ core::num v2 = self::topLevelNum = self::getNum();
+ core::double v3 = self::topLevelNum = self::getDouble();
+ core::num v4 = let final core::num? #t4 = self::topLevelNum2 in #t4 == null ?{core::num} self::topLevelNum2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = self::topLevelNum2 in #t5 == null ?{core::num} self::topLevelNum2 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = self::topLevelNum2 in #t6 == null ?{core::num} self::topLevelNum2 = self::getDouble() : #t6{core::num};
+ core::num v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = self::topLevelNum in let final core::num #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
static method test3() → void {
- core::double* v3 = self::topLevelDouble = self::getDouble();
- core::double* v6 = let final core::double* #t9 = self::topLevelDouble in #t9 == null ?{core::double*} self::topLevelDouble = self::getDouble() : #t9;
- core::double* v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = self::topLevelDouble in let final core::double* #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+ core::double v3 = self::topLevelDouble = self::getDouble();
+ core::double v6 = let final core::double? #t9 = self::topLevelDouble2 in #t9 == null ?{core::double} self::topLevelDouble2 = self::getDouble() : #t9{core::double};
+ core::double v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = self::topLevelDouble in let final core::double #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.modular.expect
index 4130e63..4aa81b0 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.modular.expect
@@ -1,43 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* topLevelInt;
-static field core::num* topLevelNum;
-static field core::double* topLevelDouble;
-static method getInt() → core::int*
+static field core::int topLevelInt = 0;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum = 0;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble = 0.0;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method test1() → void {
- core::int* v1 = self::topLevelInt = self::getInt();
- core::int* v4 = let final core::int* #t1 = self::topLevelInt in #t1 == null ?{core::int*} self::topLevelInt = self::getInt() : #t1;
- core::int* v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = self::topLevelInt in let final core::int* #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+ core::int v1 = self::topLevelInt = self::getInt();
+ core::int v4 = let final core::int? #t1 = self::topLevelInt2 in #t1 == null ?{core::int} self::topLevelInt2 = self::getInt() : #t1{core::int};
+ core::int v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = self::topLevelInt in let final core::int #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
static method test2() → void {
- core::int* v1 = self::topLevelNum = self::getInt();
- core::num* v2 = self::topLevelNum = self::getNum();
- core::double* v3 = self::topLevelNum = self::getDouble();
- core::num* v4 = let final core::num* #t4 = self::topLevelNum in #t4 == null ?{core::num*} self::topLevelNum = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = self::topLevelNum in #t5 == null ?{core::num*} self::topLevelNum = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = self::topLevelNum in #t6 == null ?{core::num*} self::topLevelNum = self::getDouble() : #t6;
- core::num* v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = self::topLevelNum in let final core::num* #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+ core::int v1 = self::topLevelNum = self::getInt();
+ core::num v2 = self::topLevelNum = self::getNum();
+ core::double v3 = self::topLevelNum = self::getDouble();
+ core::num v4 = let final core::num? #t4 = self::topLevelNum2 in #t4 == null ?{core::num} self::topLevelNum2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = self::topLevelNum2 in #t5 == null ?{core::num} self::topLevelNum2 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = self::topLevelNum2 in #t6 == null ?{core::num} self::topLevelNum2 = self::getDouble() : #t6{core::num};
+ core::num v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = self::topLevelNum in let final core::num #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
static method test3() → void {
- core::double* v3 = self::topLevelDouble = self::getDouble();
- core::double* v6 = let final core::double* #t9 = self::topLevelDouble in #t9 == null ?{core::double*} self::topLevelDouble = self::getDouble() : #t9;
- core::double* v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = self::topLevelDouble in let final core::double* #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+ core::double v3 = self::topLevelDouble = self::getDouble();
+ core::double v6 = let final core::double? #t9 = self::topLevelDouble2 in #t9 == null ?{core::double} self::topLevelDouble2 = self::getDouble() : #t9{core::double};
+ core::double v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = self::topLevelDouble in let final core::double #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.outline.expect
index ddb758d..8cba366 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.outline.expect
@@ -1,15 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* topLevelInt;
-static field core::num* topLevelNum;
-static field core::double* topLevelDouble;
-static method getInt() → core::int*
+static field core::int topLevelInt;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
;
-static method getNum() → core::num*
+static method getNum() → core::num
;
-static method getDouble() → core::double*
+static method getDouble() → core::double
;
static method test1() → void
;
diff --git a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.transformed.expect
index 4130e63..4aa81b0 100644
--- a/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_assign_to_static_upwards.dart.weak.transformed.expect
@@ -1,43 +1,46 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* topLevelInt;
-static field core::num* topLevelNum;
-static field core::double* topLevelDouble;
-static method getInt() → core::int*
+static field core::int topLevelInt = 0;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum = 0;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble = 0.0;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
return 0;
-static method getNum() → core::num*
+static method getNum() → core::num
return 0;
-static method getDouble() → core::double*
+static method getDouble() → core::double
return 0.0;
static method test1() → void {
- core::int* v1 = self::topLevelInt = self::getInt();
- core::int* v4 = let final core::int* #t1 = self::topLevelInt in #t1 == null ?{core::int*} self::topLevelInt = self::getInt() : #t1;
- core::int* v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num*) →* core::int*};
- core::int* v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num*) →* core::int*};
- core::int* v11 = let final core::int* #t2 = self::topLevelInt in let final core::int* #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num*) →* core::int*} in #t2;
+ core::int v1 = self::topLevelInt = self::getInt();
+ core::int v4 = let final core::int? #t1 = self::topLevelInt2 in #t1 == null ?{core::int} self::topLevelInt2 = self::getInt() : #t1{core::int};
+ core::int v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = self::topLevelInt in let final core::int #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
}
static method test2() → void {
- core::int* v1 = self::topLevelNum = self::getInt();
- core::num* v2 = self::topLevelNum = self::getNum();
- core::double* v3 = self::topLevelNum = self::getDouble();
- core::num* v4 = let final core::num* #t4 = self::topLevelNum in #t4 == null ?{core::num*} self::topLevelNum = self::getInt() : #t4;
- core::num* v5 = let final core::num* #t5 = self::topLevelNum in #t5 == null ?{core::num*} self::topLevelNum = self::getNum() : #t5;
- core::num* v6 = let final core::num* #t6 = self::topLevelNum in #t6 == null ?{core::num*} self::topLevelNum = self::getDouble() : #t6;
- core::num* v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num*) →* core::num*};
- core::num* v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num*) →* core::num*};
- core::num* v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num*) →* core::num*};
- core::num* v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num*) →* core::num*};
- core::num* v11 = let final core::num* #t7 = self::topLevelNum in let final core::num* #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num*) →* core::num*} in #t7;
+ core::int v1 = self::topLevelNum = self::getInt();
+ core::num v2 = self::topLevelNum = self::getNum();
+ core::double v3 = self::topLevelNum = self::getDouble();
+ core::num v4 = let final core::num? #t4 = self::topLevelNum2 in #t4 == null ?{core::num} self::topLevelNum2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = self::topLevelNum2 in #t5 == null ?{core::num} self::topLevelNum2 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = self::topLevelNum2 in #t6 == null ?{core::num} self::topLevelNum2 = self::getDouble() : #t6{core::num};
+ core::num v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = self::topLevelNum in let final core::num #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
}
static method test3() → void {
- core::double* v3 = self::topLevelDouble = self::getDouble();
- core::double* v6 = let final core::double* #t9 = self::topLevelDouble in #t9 == null ?{core::double*} self::topLevelDouble = self::getDouble() : #t9;
- core::double* v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num*) →* core::double*};
- core::double* v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num*) →* core::double*};
- core::double* v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num*) →* core::double*};
- core::double* v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num*) →* core::double*};
- core::double* v11 = let final core::double* #t10 = self::topLevelDouble in let final core::double* #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num*) →* core::double*} in #t10;
+ core::double v3 = self::topLevelDouble = self::getDouble();
+ core::double v6 = let final core::double? #t9 = self::topLevelDouble2 in #t9 == null ?{core::double} self::topLevelDouble2 = self::getDouble() : #t9{core::double};
+ core::double v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = self::topLevelDouble in let final core::double #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart b/pkg/front_end/testcases/inference/infer_binary_custom.dart
index be2ad1d..b84b3ae 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline.expect
index 07b6051..80ca252 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline_modelled.expect
index 9911480..0b2556e 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.expect
index 2fd7b9e..edffbfc 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
return 1;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_add = new self::A::•().{self::A::+}("foo"){(dynamic) →* core::int*};
-static field core::double* v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) →* core::double*};
+static field core::int v_add = new self::A::•().{self::A::+}("foo"){(dynamic) → core::int};
+static field core::double v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) → core::double};
static method main() → dynamic {
self::v_add;
self::v_minus;
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.modular.expect
index 2fd7b9e..edffbfc 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
return 1;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_add = new self::A::•().{self::A::+}("foo"){(dynamic) →* core::int*};
-static field core::double* v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) →* core::double*};
+static field core::int v_add = new self::A::•().{self::A::+}("foo"){(dynamic) → core::int};
+static field core::double v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) → core::double};
static method main() → dynamic {
self::v_add;
self::v_minus;
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.outline.expect
index 0a4d5ae..12424ab 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_add;
-static field core::double* v_minus;
+static field core::int v_add;
+static field core::double v_minus;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.transformed.expect
index 2fd7b9e..edffbfc 100644
--- a/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_custom.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
return 1;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_add = new self::A::•().{self::A::+}("foo"){(dynamic) →* core::int*};
-static field core::double* v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) →* core::double*};
+static field core::int v_add = new self::A::•().{self::A::+}("foo"){(dynamic) → core::int};
+static field core::double v_minus = new self::A::•().{self::A::-}("bar"){(dynamic) → core::double};
static method main() → dynamic {
self::v_add;
self::v_minus;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart b/pkg/front_end/testcases/inference/infer_binary_double_double.dart
index 332b672..701ec6b 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline.expect
index 2e2c25e..afb98b1 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a_equal = 1.0 == 2.0;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline_modelled.expect
index cb2a486..6ca4cc2 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.expect
index 38be484..0ee73da 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
-static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
-static field core::double* a_add = 1.0.{core::double::+}(2.0){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.0.{core::double::-}(2.0){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.0.{core::double::*}(2.0){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.0.{core::double::/}(2.0){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.0.{core::num::>}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.0.{core::num::<}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.0.{core::double::%}(2.0){(core::num*) →* core::double*};
+static field core::bool a_equal = 1.0 =={core::num::==}{(core::Object) → core::bool} 2.0;
+static field core::bool a_notEqual = !(1.0 =={core::num::==}{(core::Object) → core::bool} 2.0);
+static field core::double a_add = 1.0.{core::double::+}(2.0){(core::num) → core::double};
+static field core::double a_subtract = 1.0.{core::double::-}(2.0){(core::num) → core::double};
+static field core::double a_multiply = 1.0.{core::double::*}(2.0){(core::num) → core::double};
+static field core::double a_divide = 1.0.{core::double::/}(2.0){(core::num) → core::double};
+static field core::int a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num) → core::int};
+static field core::bool a_greater = 1.0.{core::num::>}(2.0){(core::num) → core::bool};
+static field core::bool a_less = 1.0.{core::num::<}(2.0){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num) → core::bool};
+static field core::double a_modulo = 1.0.{core::double::%}(2.0){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.modular.expect
index 38be484..0ee73da 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.modular.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
-static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
-static field core::double* a_add = 1.0.{core::double::+}(2.0){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.0.{core::double::-}(2.0){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.0.{core::double::*}(2.0){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.0.{core::double::/}(2.0){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.0.{core::num::>}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.0.{core::num::<}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.0.{core::double::%}(2.0){(core::num*) →* core::double*};
+static field core::bool a_equal = 1.0 =={core::num::==}{(core::Object) → core::bool} 2.0;
+static field core::bool a_notEqual = !(1.0 =={core::num::==}{(core::Object) → core::bool} 2.0);
+static field core::double a_add = 1.0.{core::double::+}(2.0){(core::num) → core::double};
+static field core::double a_subtract = 1.0.{core::double::-}(2.0){(core::num) → core::double};
+static field core::double a_multiply = 1.0.{core::double::*}(2.0){(core::num) → core::double};
+static field core::double a_divide = 1.0.{core::double::/}(2.0){(core::num) → core::double};
+static field core::int a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num) → core::int};
+static field core::bool a_greater = 1.0.{core::num::>}(2.0){(core::num) → core::bool};
+static field core::bool a_less = 1.0.{core::num::<}(2.0){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num) → core::bool};
+static field core::double a_modulo = 1.0.{core::double::%}(2.0){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.outline.expect
index fc1ae00..9baa9a0 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.outline.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal;
-static field core::bool* a_notEqual;
-static field core::double* a_add;
-static field core::double* a_subtract;
-static field core::double* a_multiply;
-static field core::double* a_divide;
-static field core::int* a_floorDivide;
-static field core::bool* a_greater;
-static field core::bool* a_less;
-static field core::bool* a_greaterEqual;
-static field core::bool* a_lessEqual;
-static field core::double* a_modulo;
+static field core::bool a_equal;
+static field core::bool a_notEqual;
+static field core::double a_add;
+static field core::double a_subtract;
+static field core::double a_multiply;
+static field core::double a_divide;
+static field core::int a_floorDivide;
+static field core::bool a_greater;
+static field core::bool a_less;
+static field core::bool a_greaterEqual;
+static field core::bool a_lessEqual;
+static field core::double a_modulo;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.transformed.expect
index b96f167..8a4256f 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_double.dart.weak.transformed.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
-static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
-static field core::double* a_add = 1.0.{core::double::+}(2.0){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.0.{core::double::-}(2.0){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.0.{core::double::*}(2.0){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.0.{core::double::/}(2.0){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.0.{core::num::>}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.0.{core::num::<}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.0.{core::double::%}(2.0){(core::num*) →* core::double*};
+static field core::bool a_equal = 1.0 =={core::num::==}{(core::Object) → core::bool} 2.0;
+static field core::bool a_notEqual = !(1.0 =={core::num::==}{(core::Object) → core::bool} 2.0);
+static field core::double a_add = 1.0.{core::double::+}(2.0){(core::num) → core::double};
+static field core::double a_subtract = 1.0.{core::double::-}(2.0){(core::num) → core::double};
+static field core::double a_multiply = 1.0.{core::double::*}(2.0){(core::num) → core::double};
+static field core::double a_divide = 1.0.{core::double::/}(2.0){(core::num) → core::double};
+static field core::int a_floorDivide = 1.0.{core::double::~/}(2.0){(core::num) → core::int};
+static field core::bool a_greater = 1.0.{core::num::>}(2.0){(core::num) → core::bool};
+static field core::bool a_less = 1.0.{core::num::<}(2.0){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.0.{core::num::>=}(2.0){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.0.{core::num::<=}(2.0){(core::num) → core::bool};
+static field core::double a_modulo = 1.0.{core::double::%}(2.0){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart b/pkg/front_end/testcases/inference/infer_binary_double_int.dart
index be0a646..45f02a8 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline.expect
index 763ab9b..5b6dace 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a_equal = 1.0 == 2;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline_modelled.expect
index 91f5a73..e8ac0d0 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.expect
index 1f62c1e..c1c1474 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2;
-static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2);
-static field core::double* a_add = 1.0.{core::double::+}(2){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.0.{core::double::-}(2){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.0.{core::double::*}(2){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.0.{core::double::/}(2){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.0.{core::double::~/}(2){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.0.{core::num::>}(2){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.0.{core::num::<}(2){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.0.{core::double::%}(2){(core::num*) →* core::double*};
+static field core::bool a_equal = 1.0 =={core::num::==}{(core::Object) → core::bool} 2;
+static field core::bool a_notEqual = !(1.0 =={core::num::==}{(core::Object) → core::bool} 2);
+static field core::double a_add = 1.0.{core::double::+}(2){(core::num) → core::double};
+static field core::double a_subtract = 1.0.{core::double::-}(2){(core::num) → core::double};
+static field core::double a_multiply = 1.0.{core::double::*}(2){(core::num) → core::double};
+static field core::double a_divide = 1.0.{core::double::/}(2){(core::num) → core::double};
+static field core::int a_floorDivide = 1.0.{core::double::~/}(2){(core::num) → core::int};
+static field core::bool a_greater = 1.0.{core::num::>}(2){(core::num) → core::bool};
+static field core::bool a_less = 1.0.{core::num::<}(2){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.0.{core::num::>=}(2){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.0.{core::num::<=}(2){(core::num) → core::bool};
+static field core::double a_modulo = 1.0.{core::double::%}(2){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.modular.expect
index 1f62c1e..c1c1474 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.modular.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2;
-static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2);
-static field core::double* a_add = 1.0.{core::double::+}(2){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.0.{core::double::-}(2){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.0.{core::double::*}(2){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.0.{core::double::/}(2){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.0.{core::double::~/}(2){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.0.{core::num::>}(2){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.0.{core::num::<}(2){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.0.{core::double::%}(2){(core::num*) →* core::double*};
+static field core::bool a_equal = 1.0 =={core::num::==}{(core::Object) → core::bool} 2;
+static field core::bool a_notEqual = !(1.0 =={core::num::==}{(core::Object) → core::bool} 2);
+static field core::double a_add = 1.0.{core::double::+}(2){(core::num) → core::double};
+static field core::double a_subtract = 1.0.{core::double::-}(2){(core::num) → core::double};
+static field core::double a_multiply = 1.0.{core::double::*}(2){(core::num) → core::double};
+static field core::double a_divide = 1.0.{core::double::/}(2){(core::num) → core::double};
+static field core::int a_floorDivide = 1.0.{core::double::~/}(2){(core::num) → core::int};
+static field core::bool a_greater = 1.0.{core::num::>}(2){(core::num) → core::bool};
+static field core::bool a_less = 1.0.{core::num::<}(2){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.0.{core::num::>=}(2){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.0.{core::num::<=}(2){(core::num) → core::bool};
+static field core::double a_modulo = 1.0.{core::double::%}(2){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.outline.expect
index fc1ae00..9baa9a0 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.outline.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal;
-static field core::bool* a_notEqual;
-static field core::double* a_add;
-static field core::double* a_subtract;
-static field core::double* a_multiply;
-static field core::double* a_divide;
-static field core::int* a_floorDivide;
-static field core::bool* a_greater;
-static field core::bool* a_less;
-static field core::bool* a_greaterEqual;
-static field core::bool* a_lessEqual;
-static field core::double* a_modulo;
+static field core::bool a_equal;
+static field core::bool a_notEqual;
+static field core::double a_add;
+static field core::double a_subtract;
+static field core::double a_multiply;
+static field core::double a_divide;
+static field core::int a_floorDivide;
+static field core::bool a_greater;
+static field core::bool a_less;
+static field core::bool a_greaterEqual;
+static field core::bool a_lessEqual;
+static field core::double a_modulo;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.transformed.expect
index 046802e..a91ca8f 100644
--- a/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_double_int.dart.weak.transformed.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2;
-static field core::bool* a_notEqual = !(1.0 =={core::num::==}{(core::Object*) →* core::bool*} 2);
-static field core::double* a_add = 1.0.{core::double::+}(2){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.0.{core::double::-}(2){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.0.{core::double::*}(2){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.0.{core::double::/}(2){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.0.{core::double::~/}(2){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.0.{core::num::>}(2){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.0.{core::num::<}(2){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.0.{core::num::>=}(2){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.0.{core::num::<=}(2){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.0.{core::double::%}(2){(core::num*) →* core::double*};
+static field core::bool a_equal = 1.0 =={core::num::==}{(core::Object) → core::bool} 2;
+static field core::bool a_notEqual = !(1.0 =={core::num::==}{(core::Object) → core::bool} 2);
+static field core::double a_add = 1.0.{core::double::+}(2){(core::num) → core::double};
+static field core::double a_subtract = 1.0.{core::double::-}(2){(core::num) → core::double};
+static field core::double a_multiply = 1.0.{core::double::*}(2){(core::num) → core::double};
+static field core::double a_divide = 1.0.{core::double::/}(2){(core::num) → core::double};
+static field core::int a_floorDivide = 1.0.{core::double::~/}(2){(core::num) → core::int};
+static field core::bool a_greater = 1.0.{core::num::>}(2){(core::num) → core::bool};
+static field core::bool a_less = 1.0.{core::num::<}(2){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.0.{core::num::>=}(2){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.0.{core::num::<=}(2){(core::num) → core::bool};
+static field core::double a_modulo = 1.0.{core::double::%}(2){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart b/pkg/front_end/testcases/inference/infer_binary_int_double.dart
index 04709e8..f3a91cb 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline.expect
index 3b176e5..f4d00de 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a_equal = 1 == 2.0;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline_modelled.expect
index b05f267..ba59e589 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.expect
index 1e26a3e..3b927a9 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
-static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
-static field core::double* a_add = 1.{core::num::+}(2.0){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.{core::num::-}(2.0){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.{core::num::*}(2.0){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.{core::num::/}(2.0){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.{core::num::~/}(2.0){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.{core::num::>}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.{core::num::<}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.{core::num::>=}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.{core::num::<=}(2.0){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.{core::num::%}(2.0){(core::num*) →* core::double*};
+static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2.0;
+static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2.0);
+static field core::double a_add = 1.{core::num::+}(2.0){(core::num) → core::double};
+static field core::double a_subtract = 1.{core::num::-}(2.0){(core::num) → core::double};
+static field core::double a_multiply = 1.{core::num::*}(2.0){(core::num) → core::double};
+static field core::double a_divide = 1.{core::num::/}(2.0){(core::num) → core::double};
+static field core::int a_floorDivide = 1.{core::num::~/}(2.0){(core::num) → core::int};
+static field core::bool a_greater = 1.{core::num::>}(2.0){(core::num) → core::bool};
+static field core::bool a_less = 1.{core::num::<}(2.0){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.{core::num::>=}(2.0){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.{core::num::<=}(2.0){(core::num) → core::bool};
+static field core::double a_modulo = 1.{core::num::%}(2.0){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.modular.expect
index 1e26a3e..3b927a9 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.modular.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
-static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
-static field core::double* a_add = 1.{core::num::+}(2.0){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.{core::num::-}(2.0){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.{core::num::*}(2.0){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.{core::num::/}(2.0){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.{core::num::~/}(2.0){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.{core::num::>}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.{core::num::<}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.{core::num::>=}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.{core::num::<=}(2.0){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.{core::num::%}(2.0){(core::num*) →* core::double*};
+static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2.0;
+static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2.0);
+static field core::double a_add = 1.{core::num::+}(2.0){(core::num) → core::double};
+static field core::double a_subtract = 1.{core::num::-}(2.0){(core::num) → core::double};
+static field core::double a_multiply = 1.{core::num::*}(2.0){(core::num) → core::double};
+static field core::double a_divide = 1.{core::num::/}(2.0){(core::num) → core::double};
+static field core::int a_floorDivide = 1.{core::num::~/}(2.0){(core::num) → core::int};
+static field core::bool a_greater = 1.{core::num::>}(2.0){(core::num) → core::bool};
+static field core::bool a_less = 1.{core::num::<}(2.0){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.{core::num::>=}(2.0){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.{core::num::<=}(2.0){(core::num) → core::bool};
+static field core::double a_modulo = 1.{core::num::%}(2.0){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.outline.expect
index fc1ae00..9baa9a0 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.outline.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal;
-static field core::bool* a_notEqual;
-static field core::double* a_add;
-static field core::double* a_subtract;
-static field core::double* a_multiply;
-static field core::double* a_divide;
-static field core::int* a_floorDivide;
-static field core::bool* a_greater;
-static field core::bool* a_less;
-static field core::bool* a_greaterEqual;
-static field core::bool* a_lessEqual;
-static field core::double* a_modulo;
+static field core::bool a_equal;
+static field core::bool a_notEqual;
+static field core::double a_add;
+static field core::double a_subtract;
+static field core::double a_multiply;
+static field core::double a_divide;
+static field core::int a_floorDivide;
+static field core::bool a_greater;
+static field core::bool a_less;
+static field core::bool a_greaterEqual;
+static field core::bool a_lessEqual;
+static field core::double a_modulo;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.transformed.expect
index 85e2e66..2a5d6bf 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_double.dart.weak.transformed.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0;
-static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2.0);
-static field core::double* a_add = 1.{core::num::+}(2.0){(core::num*) →* core::double*};
-static field core::double* a_subtract = 1.{core::num::-}(2.0){(core::num*) →* core::double*};
-static field core::double* a_multiply = 1.{core::num::*}(2.0){(core::num*) →* core::double*};
-static field core::double* a_divide = 1.{core::num::/}(2.0){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.{core::num::~/}(2.0){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.{core::num::>}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.{core::num::<}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.{core::num::>=}(2.0){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.{core::num::<=}(2.0){(core::num*) →* core::bool*};
-static field core::double* a_modulo = 1.{core::num::%}(2.0){(core::num*) →* core::double*};
+static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2.0;
+static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2.0);
+static field core::double a_add = 1.{core::num::+}(2.0){(core::num) → core::double};
+static field core::double a_subtract = 1.{core::num::-}(2.0){(core::num) → core::double};
+static field core::double a_multiply = 1.{core::num::*}(2.0){(core::num) → core::double};
+static field core::double a_divide = 1.{core::num::/}(2.0){(core::num) → core::double};
+static field core::int a_floorDivide = 1.{core::num::~/}(2.0){(core::num) → core::int};
+static field core::bool a_greater = 1.{core::num::>}(2.0){(core::num) → core::bool};
+static field core::bool a_less = 1.{core::num::<}(2.0){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.{core::num::>=}(2.0){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.{core::num::<=}(2.0){(core::num) → core::bool};
+static field core::double a_modulo = 1.{core::num::%}(2.0){(core::num) → core::double};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart b/pkg/front_end/testcases/inference/infer_binary_int_int.dart
index fdc51d1..8176f7f 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline.expect
index 06c57c6..f139d16 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a_equal = 1 == 2;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline_modelled.expect
index 7e1942a..dae8595 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.expect
index 883662f..695ffba 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.expect
@@ -1,24 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2;
-static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2);
-static field core::int* a_bitXor = 1.{core::int::^}(2){(core::int*) →* core::int*};
-static field core::int* a_bitAnd = 1.{core::int::&}(2){(core::int*) →* core::int*};
-static field core::int* a_bitOr = 1.{core::int::|}(2){(core::int*) →* core::int*};
-static field core::int* a_bitShiftRight = 1.{core::int::>>}(2){(core::int*) →* core::int*};
-static field core::int* a_bitShiftLeft = 1.{core::int::<<}(2){(core::int*) →* core::int*};
-static field core::int* a_add = 1.{core::num::+}(2){(core::num*) →* core::int*};
-static field core::int* a_subtract = 1.{core::num::-}(2){(core::num*) →* core::int*};
-static field core::int* a_multiply = 1.{core::num::*}(2){(core::num*) →* core::int*};
-static field core::double* a_divide = 1.{core::num::/}(2){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.{core::num::~/}(2){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.{core::num::>}(2){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.{core::num::<}(2){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.{core::num::>=}(2){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.{core::num::<=}(2){(core::num*) →* core::bool*};
-static field core::int* a_modulo = 1.{core::num::%}(2){(core::num*) →* core::int*};
+static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2;
+static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2);
+static field core::int a_bitXor = 1.{core::int::^}(2){(core::int) → core::int};
+static field core::int a_bitAnd = 1.{core::int::&}(2){(core::int) → core::int};
+static field core::int a_bitOr = 1.{core::int::|}(2){(core::int) → core::int};
+static field core::int a_bitShiftRight = 1.{core::int::>>}(2){(core::int) → core::int};
+static field core::int a_bitShiftLeft = 1.{core::int::<<}(2){(core::int) → core::int};
+static field core::int a_add = 1.{core::num::+}(2){(core::num) → core::int};
+static field core::int a_subtract = 1.{core::num::-}(2){(core::num) → core::int};
+static field core::int a_multiply = 1.{core::num::*}(2){(core::num) → core::int};
+static field core::double a_divide = 1.{core::num::/}(2){(core::num) → core::double};
+static field core::int a_floorDivide = 1.{core::num::~/}(2){(core::num) → core::int};
+static field core::bool a_greater = 1.{core::num::>}(2){(core::num) → core::bool};
+static field core::bool a_less = 1.{core::num::<}(2){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.{core::num::>=}(2){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.{core::num::<=}(2){(core::num) → core::bool};
+static field core::int a_modulo = 1.{core::num::%}(2){(core::num) → core::int};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.modular.expect
index 883662f..695ffba 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.modular.expect
@@ -1,24 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2;
-static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2);
-static field core::int* a_bitXor = 1.{core::int::^}(2){(core::int*) →* core::int*};
-static field core::int* a_bitAnd = 1.{core::int::&}(2){(core::int*) →* core::int*};
-static field core::int* a_bitOr = 1.{core::int::|}(2){(core::int*) →* core::int*};
-static field core::int* a_bitShiftRight = 1.{core::int::>>}(2){(core::int*) →* core::int*};
-static field core::int* a_bitShiftLeft = 1.{core::int::<<}(2){(core::int*) →* core::int*};
-static field core::int* a_add = 1.{core::num::+}(2){(core::num*) →* core::int*};
-static field core::int* a_subtract = 1.{core::num::-}(2){(core::num*) →* core::int*};
-static field core::int* a_multiply = 1.{core::num::*}(2){(core::num*) →* core::int*};
-static field core::double* a_divide = 1.{core::num::/}(2){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.{core::num::~/}(2){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.{core::num::>}(2){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.{core::num::<}(2){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.{core::num::>=}(2){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.{core::num::<=}(2){(core::num*) →* core::bool*};
-static field core::int* a_modulo = 1.{core::num::%}(2){(core::num*) →* core::int*};
+static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2;
+static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2);
+static field core::int a_bitXor = 1.{core::int::^}(2){(core::int) → core::int};
+static field core::int a_bitAnd = 1.{core::int::&}(2){(core::int) → core::int};
+static field core::int a_bitOr = 1.{core::int::|}(2){(core::int) → core::int};
+static field core::int a_bitShiftRight = 1.{core::int::>>}(2){(core::int) → core::int};
+static field core::int a_bitShiftLeft = 1.{core::int::<<}(2){(core::int) → core::int};
+static field core::int a_add = 1.{core::num::+}(2){(core::num) → core::int};
+static field core::int a_subtract = 1.{core::num::-}(2){(core::num) → core::int};
+static field core::int a_multiply = 1.{core::num::*}(2){(core::num) → core::int};
+static field core::double a_divide = 1.{core::num::/}(2){(core::num) → core::double};
+static field core::int a_floorDivide = 1.{core::num::~/}(2){(core::num) → core::int};
+static field core::bool a_greater = 1.{core::num::>}(2){(core::num) → core::bool};
+static field core::bool a_less = 1.{core::num::<}(2){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.{core::num::>=}(2){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.{core::num::<=}(2){(core::num) → core::bool};
+static field core::int a_modulo = 1.{core::num::%}(2){(core::num) → core::int};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.outline.expect
index cc7c479..4dbca48 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.outline.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal;
-static field core::bool* a_notEqual;
-static field core::int* a_bitXor;
-static field core::int* a_bitAnd;
-static field core::int* a_bitOr;
-static field core::int* a_bitShiftRight;
-static field core::int* a_bitShiftLeft;
-static field core::int* a_add;
-static field core::int* a_subtract;
-static field core::int* a_multiply;
-static field core::double* a_divide;
-static field core::int* a_floorDivide;
-static field core::bool* a_greater;
-static field core::bool* a_less;
-static field core::bool* a_greaterEqual;
-static field core::bool* a_lessEqual;
-static field core::int* a_modulo;
+static field core::bool a_equal;
+static field core::bool a_notEqual;
+static field core::int a_bitXor;
+static field core::int a_bitAnd;
+static field core::int a_bitOr;
+static field core::int a_bitShiftRight;
+static field core::int a_bitShiftLeft;
+static field core::int a_add;
+static field core::int a_subtract;
+static field core::int a_multiply;
+static field core::double a_divide;
+static field core::int a_floorDivide;
+static field core::bool a_greater;
+static field core::bool a_less;
+static field core::bool a_greaterEqual;
+static field core::bool a_lessEqual;
+static field core::int a_modulo;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.transformed.expect
index 650dde3..f067c83 100644
--- a/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_binary_int_int.dart.weak.transformed.expect
@@ -1,24 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_equal = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2;
-static field core::bool* a_notEqual = !(1 =={core::num::==}{(core::Object*) →* core::bool*} 2);
-static field core::int* a_bitXor = 1.{core::int::^}(2){(core::int*) →* core::int*};
-static field core::int* a_bitAnd = 1.{core::int::&}(2){(core::int*) →* core::int*};
-static field core::int* a_bitOr = 1.{core::int::|}(2){(core::int*) →* core::int*};
-static field core::int* a_bitShiftRight = 1.{core::int::>>}(2){(core::int*) →* core::int*};
-static field core::int* a_bitShiftLeft = 1.{core::int::<<}(2){(core::int*) →* core::int*};
-static field core::int* a_add = 1.{core::num::+}(2){(core::num*) →* core::int*};
-static field core::int* a_subtract = 1.{core::num::-}(2){(core::num*) →* core::int*};
-static field core::int* a_multiply = 1.{core::num::*}(2){(core::num*) →* core::int*};
-static field core::double* a_divide = 1.{core::num::/}(2){(core::num*) →* core::double*};
-static field core::int* a_floorDivide = 1.{core::num::~/}(2){(core::num*) →* core::int*};
-static field core::bool* a_greater = 1.{core::num::>}(2){(core::num*) →* core::bool*};
-static field core::bool* a_less = 1.{core::num::<}(2){(core::num*) →* core::bool*};
-static field core::bool* a_greaterEqual = 1.{core::num::>=}(2){(core::num*) →* core::bool*};
-static field core::bool* a_lessEqual = 1.{core::num::<=}(2){(core::num*) →* core::bool*};
-static field core::int* a_modulo = 1.{core::num::%}(2){(core::num*) →* core::int*};
+static field core::bool a_equal = 1 =={core::num::==}{(core::Object) → core::bool} 2;
+static field core::bool a_notEqual = !(1 =={core::num::==}{(core::Object) → core::bool} 2);
+static field core::int a_bitXor = 1.{core::int::^}(2){(core::int) → core::int};
+static field core::int a_bitAnd = 1.{core::int::&}(2){(core::int) → core::int};
+static field core::int a_bitOr = 1.{core::int::|}(2){(core::int) → core::int};
+static field core::int a_bitShiftRight = 1.{core::int::>>}(2){(core::int) → core::int};
+static field core::int a_bitShiftLeft = 1.{core::int::<<}(2){(core::int) → core::int};
+static field core::int a_add = 1.{core::num::+}(2){(core::num) → core::int};
+static field core::int a_subtract = 1.{core::num::-}(2){(core::num) → core::int};
+static field core::int a_multiply = 1.{core::num::*}(2){(core::num) → core::int};
+static field core::double a_divide = 1.{core::num::/}(2){(core::num) → core::double};
+static field core::int a_floorDivide = 1.{core::num::~/}(2){(core::num) → core::int};
+static field core::bool a_greater = 1.{core::num::>}(2){(core::num) → core::bool};
+static field core::bool a_less = 1.{core::num::<}(2){(core::num) → core::bool};
+static field core::bool a_greaterEqual = 1.{core::num::>=}(2){(core::num) → core::bool};
+static field core::bool a_lessEqual = 1.{core::num::<=}(2){(core::num) → core::bool};
+static field core::int a_modulo = 1.{core::num::%}(2){(core::num) → core::int};
static method main() → dynamic {
self::a_equal;
self::a_notEqual;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart b/pkg/front_end/testcases/inference/infer_conditional.dart
index 9896b5c..b707956 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline.expect
index 931920b..49f6015 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = 1 == 2 ? 1 : 2.0;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline_modelled.expect
index 39f4bc5..da56220 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.expect
index b2128b8..ff1aeed 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::num* a = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2 ?{core::num*} 1 : 2.0;
-static field core::num* b = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2 ?{core::num*} 1.0 : 2;
+static field core::num a = 1 =={core::num::==}{(core::Object) → core::bool} 2 ?{core::num} 1 : 2.0;
+static field core::num b = 1 =={core::num::==}{(core::Object) → core::bool} 2 ?{core::num} 1.0 : 2;
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.modular.expect
index b2128b8..ff1aeed 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::num* a = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2 ?{core::num*} 1 : 2.0;
-static field core::num* b = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2 ?{core::num*} 1.0 : 2;
+static field core::num a = 1 =={core::num::==}{(core::Object) → core::bool} 2 ?{core::num} 1 : 2.0;
+static field core::num b = 1 =={core::num::==}{(core::Object) → core::bool} 2 ?{core::num} 1.0 : 2;
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.outline.expect
index 6ea6d78..353e308 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::num* a;
-static field core::num* b;
+static field core::num a;
+static field core::num b;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.transformed.expect
index cf7cb3e..b8f7077 100644
--- a/pkg/front_end/testcases/inference/infer_conditional.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_conditional.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::num* a = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2 ?{core::num*} 1 : 2.0;
-static field core::num* b = 1 =={core::num::==}{(core::Object*) →* core::bool*} 2 ?{core::num*} 1.0 : 2;
+static field core::num a = 1 =={core::num::==}{(core::Object) → core::bool} 2 ?{core::num} 1 : 2.0;
+static field core::num b = 1 =={core::num::==}{(core::Object) → core::bool} 2 ?{core::num} 1.0 : 2;
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart
index a3f0577..a86c249 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline.expect
index 64fd57f..e7967d4 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_consts_transitively_2_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline_modelled.expect
index 64fd57f..e7967d4 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_consts_transitively_2_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.expect
index ba94200..1985429 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.expect
@@ -1,33 +1,33 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = #C1;
-static const field core::int* m2 = #C1;
+static const field core::int m1 = #C1;
+static const field core::int m2 = #C1;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = #C1;
-static const field core::int* a2 = #C1;
+static const field core::int a1 = #C1;
+static const field core::int a2 = #C1;
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.modular.expect
index ba94200..1985429 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.modular.expect
@@ -1,33 +1,33 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = #C1;
-static const field core::int* m2 = #C1;
+static const field core::int m1 = #C1;
+static const field core::int m2 = #C1;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = #C1;
-static const field core::int* a2 = #C1;
+static const field core::int a1 = #C1;
+static const field core::int a2 = #C1;
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.outline.expect
index f89bc38..555de42 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.outline.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_consts_transitively_2_a.dart" as inf;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = inf::a1;
-static const field core::int* m2 = inf::a2;
+static const field core::int m1 = inf::a1;
+static const field core::int m2 = inf::a2;
static method foo() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_consts_transitively_2.dart" as self;
@@ -21,16 +21,16 @@
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = self::m2;
-static const field core::int* a2 = inf2::b1;
+static const field core::int a1 = self::m2;
+static const field core::int a2 = inf2::b1;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
-static const field core::int* b1 = 2;
+static const field core::int b1 = 2;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.transformed.expect
index ba94200..1985429 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2.dart.weak.transformed.expect
@@ -1,33 +1,33 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = #C1;
-static const field core::int* m2 = #C1;
+static const field core::int m1 = #C1;
+static const field core::int m2 = #C1;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = #C1;
-static const field core::int* a2 = #C1;
+static const field core::int a1 = #C1;
+static const field core::int a2 = #C1;
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart
index 507e5ff..25fcf76 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
import 'infer_consts_transitively_2.dart';
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline.expect
index 85a19ad..3db058a 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_consts_transitively_2.dart';
import 'infer_consts_transitively_2_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline_modelled.expect
index 85a19ad..3db058a 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_consts_transitively_2.dart';
import 'infer_consts_transitively_2_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.expect
index 7f72a48..b9719a1 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.expect
@@ -1,33 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = #C1;
-static const field core::int* a2 = #C1;
+static const field core::int a1 = #C1;
+static const field core::int a2 = #C1;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = #C1;
-static const field core::int* m2 = #C1;
+static const field core::int m1 = #C1;
+static const field core::int m2 = #C1;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.modular.expect
index 7f72a48..b9719a1 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.modular.expect
@@ -1,33 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = #C1;
-static const field core::int* a2 = #C1;
+static const field core::int a1 = #C1;
+static const field core::int a2 = #C1;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = #C1;
-static const field core::int* m2 = #C1;
+static const field core::int m1 = #C1;
+static const field core::int m2 = #C1;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.outline.expect
index 1b5944d..861c987 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_consts_transitively_2.dart" as test;
@@ -7,30 +7,30 @@
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = test::m2;
-static const field core::int* a2 = inf::b1;
+static const field core::int a1 = test::m2;
+static const field core::int a2 = inf::b1;
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_consts_transitively_2_a.dart" as self;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = self::a1;
-static const field core::int* m2 = self::a2;
+static const field core::int m1 = self::a1;
+static const field core::int m2 = self::a2;
static method foo() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static const field core::int* b1 = 2;
+static const field core::int b1 = 2;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.transformed.expect
index 7f72a48..b9719a1 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_a.dart.weak.transformed.expect
@@ -1,33 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2.dart";
import "org-dartlang-testcase:///infer_consts_transitively_2_b.dart";
-static const field core::int* a1 = #C1;
-static const field core::int* a2 = #C1;
+static const field core::int a1 = #C1;
+static const field core::int a2 = #C1;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_consts_transitively_2_a.dart";
-static const field core::int* m1 = #C1;
-static const field core::int* m2 = #C1;
+static const field core::int m1 = #C1;
+static const field core::int m2 = #C1;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart
index 66c7b75..99d0034 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
const b1 = 2;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline.expect
index bb32afa..53d59d9 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
const b1 = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline_modelled.expect
index bb32afa..53d59d9 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
const b1 = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.expect
index 85d3066..8a4e701 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.modular.expect
index 85d3066..8a4e701 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.outline.expect
index afdd6d7..a1e7264 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = 2;
+static const field core::int b1 = 2;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.transformed.expect
index 85d3066..8a4e701 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_2_b.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart
index 59a910f..3e4e74e 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
const b1 = 2;
main() {
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline.expect
index bb32afa..53d59d9 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
const b1 = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline_modelled.expect
index bb32afa..53d59d9 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
const b1 = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.expect
index 85d3066..8a4e701 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.modular.expect
index 85d3066..8a4e701 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.outline.expect
index afdd6d7..a1e7264 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = 2;
+static const field core::int b1 = 2;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.transformed.expect
index 85d3066..8a4e701 100644
--- a/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_consts_transitively_b.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* b1 = #C1;
+static const field core::int b1 = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart
index 04f1608..0d951b2 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart
@@ -1,12 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
+String? nullableString = "hi";
+
class A {
- var x, y = 2, z = "hi";
+ var x, y = 2, z = nullableString;
}
class B implements A {
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline.expect
index f8c81d8..d94d39f 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline.expect
@@ -1,8 +1,9 @@
-// @dart = 2.9
library test;
+String? nullableString = "hi";
+
class A {
- var x, y = 2, z = "hi";
+ var x, y = 2, z = nullableString;
}
class B implements A {
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline_modelled.expect
index f8c81d8..d94d39f 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.textual_outline_modelled.expect
@@ -1,8 +1,9 @@
-// @dart = 2.9
library test;
+String? nullableString = "hi";
+
class A {
- var x, y = 2, z = "hi";
+ var x, y = 2, z = nullableString;
}
class B implements A {
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.expect
index 5692085..f623eb2 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.expect
@@ -1,16 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:21:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
// ^
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
+// s = new B(). /*@target=B.z*/ z;
+// ^
+//
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
// ^
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:27:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:29:61: Error: A value of type 'String?' can't be assigned to a variable of type 'int'.
// i = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.z*/ z;
// ^
//
@@ -19,57 +23,40 @@
class A extends core::Object {
field dynamic x = null;
- field core::int* y = 2;
- field core::String* z = "hi";
- synthetic constructor •() → self::A*
+ field core::int y = 2;
+ field core::String? z = self::nullableString;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x = 2;
- field core::int* y = 3;
- field core::String* z = null;
- field core::int* w = 2;
- synthetic constructor •() → self::B*
+ field core::int y = 3;
+ field core::String? z = null;
+ field core::int w = 2;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::String? nullableString = "hi";
static method foo() → dynamic {
- core::String* s;
- core::int* i;
- s = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:21:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
- ^" in new self::B::•().{self::B::y}{core::int*} as{TypeError} core::String*;
- s = new self::B::•().{self::B::z}{core::String*};
+ core::String s;
+ core::int i;
+ s = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
+ ^" in new self::B::•().{self::B::y}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
+ s = new B(). /*@target=B.z*/ z;
+ ^" in new self::B::•().{self::B::z}{core::String?} as{TypeError,ForNonNullableByDefault} core::String;
+ s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
- ^" in new self::B::•().{self::B::w}{core::int*} as{TypeError} core::String*;
- i = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
- i = new self::B::•().{self::B::y}{core::int*};
- i = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:27:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in new self::B::•().{self::B::w}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ i = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+ i = new self::B::•().{self::B::y}{core::int};
+ i = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:29:61: Error: A value of type 'String?' can't be assigned to a variable of type 'int'.
i = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.z*/ z;
- ^" in new self::B::•().{self::B::z}{core::String*} as{TypeError} core::int*;
- i = new self::B::•().{self::B::w}{core::int*};
+ ^" in new self::B::•().{self::B::z}{core::String?} as{TypeError,ForNonNullableByDefault} core::int;
+ i = new self::B::•().{self::B::w}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.modular.expect
index 5692085..f623eb2 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.modular.expect
@@ -1,16 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:21:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
// ^
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
+// s = new B(). /*@target=B.z*/ z;
+// ^
+//
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
// ^
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:27:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:29:61: Error: A value of type 'String?' can't be assigned to a variable of type 'int'.
// i = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.z*/ z;
// ^
//
@@ -19,57 +23,40 @@
class A extends core::Object {
field dynamic x = null;
- field core::int* y = 2;
- field core::String* z = "hi";
- synthetic constructor •() → self::A*
+ field core::int y = 2;
+ field core::String? z = self::nullableString;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x = 2;
- field core::int* y = 3;
- field core::String* z = null;
- field core::int* w = 2;
- synthetic constructor •() → self::B*
+ field core::int y = 3;
+ field core::String? z = null;
+ field core::int w = 2;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::String? nullableString = "hi";
static method foo() → dynamic {
- core::String* s;
- core::int* i;
- s = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:21:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
- ^" in new self::B::•().{self::B::y}{core::int*} as{TypeError} core::String*;
- s = new self::B::•().{self::B::z}{core::String*};
+ core::String s;
+ core::int i;
+ s = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
+ ^" in new self::B::•().{self::B::y}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
+ s = new B(). /*@target=B.z*/ z;
+ ^" in new self::B::•().{self::B::z}{core::String?} as{TypeError,ForNonNullableByDefault} core::String;
+ s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
- ^" in new self::B::•().{self::B::w}{core::int*} as{TypeError} core::String*;
- i = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
- i = new self::B::•().{self::B::y}{core::int*};
- i = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:27:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in new self::B::•().{self::B::w}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ i = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+ i = new self::B::•().{self::B::y}{core::int};
+ i = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:29:61: Error: A value of type 'String?' can't be assigned to a variable of type 'int'.
i = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.z*/ z;
- ^" in new self::B::•().{self::B::z}{core::String*} as{TypeError} core::int*;
- i = new self::B::•().{self::B::w}{core::int*};
+ ^" in new self::B::•().{self::B::z}{core::String?} as{TypeError,ForNonNullableByDefault} core::int;
+ i = new self::B::•().{self::B::w}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.outline.expect
index 00e76ae..97ba173 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.outline.expect
@@ -1,42 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic x;
- field core::int* y;
- field core::String* z;
- synthetic constructor •() → self::A*
+ field core::int y;
+ field core::String? z;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x;
- field core::int* y;
- field core::String* z;
- field core::int* w;
- synthetic constructor •() → self::B*
+ field core::int y;
+ field core::String? z;
+ field core::int w;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::String? nullableString;
static method foo() → dynamic
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.transformed.expect
index 5692085..3d3b2c5 100644
--- a/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart.weak.transformed.expect
@@ -1,16 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:21:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
// ^
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
+// s = new B(). /*@target=B.z*/ z;
+// ^
+//
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
// ^
//
-// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:27:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:29:61: Error: A value of type 'String?' can't be assigned to a variable of type 'int'.
// i = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.z*/ z;
// ^
//
@@ -19,57 +23,40 @@
class A extends core::Object {
field dynamic x = null;
- field core::int* y = 2;
- field core::String* z = "hi";
- synthetic constructor •() → self::A*
+ field core::int y = 2;
+ field core::String? z = self::nullableString;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x = 2;
- field core::int* y = 3;
- field core::String* z = null;
- field core::int* w = 2;
- synthetic constructor •() → self::B*
+ field core::int y = 3;
+ field core::String? z = null;
+ field core::int w = 2;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::String? nullableString = "hi";
static method foo() → dynamic {
- core::String* s;
- core::int* i;
- s = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:21:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
- s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
- ^" in new self::B::•().{self::B::y}{core::int*} as{TypeError} core::String*;
- s = new self::B::•().{self::B::z}{core::String*};
+ core::String s;
+ core::int i;
+ s = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:23:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.y*/ y;
+ ^" in new self::B::•().{self::B::y}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:24:32: Error: A value of type 'String?' can't be assigned to a variable of type 'String' because 'String?' is nullable and 'String' isn't.
+ s = new B(). /*@target=B.z*/ z;
+ ^" in new self::B::•().{self::B::z}{core::String?};
+ s = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:25:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
s = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.w*/ w;
- ^" in new self::B::•().{self::B::w}{core::int*} as{TypeError} core::String*;
- i = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
- i = new self::B::•().{self::B::y}{core::int*};
- i = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:27:61: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ ^" in new self::B::•().{self::B::w}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ i = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
+ i = new self::B::•().{self::B::y}{core::int};
+ i = invalid-expression "pkg/front_end/testcases/inference/infer_correctly_on_multiple_variables_declared_together.dart:29:61: Error: A value of type 'String?' can't be assigned to a variable of type 'int'.
i = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.z*/ z;
- ^" in new self::B::•().{self::B::z}{core::String*} as{TypeError} core::int*;
- i = new self::B::•().{self::B::w}{core::int*};
+ ^" in new self::B::•().{self::B::z}{core::String?} as{TypeError,ForNonNullableByDefault} core::int;
+ i = new self::B::•().{self::B::w}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart
index 01e5e62..cc5ae61 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart
@@ -1,16 +1,18 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
+int? nullableInt = 0;
+
class A implements B {
var x;
}
class B {
- var x = 0;
+ var x = nullableInt;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline.expect
index a10ed1c..b28d3c6 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline.expect
@@ -1,12 +1,13 @@
-// @dart = 2.9
library test;
+int? nullableInt = 0;
+
class A implements B {
var x;
}
class B {
- var x = 0;
+ var x = nullableInt;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline_modelled.expect
index a10ed1c..b6be51f 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
@@ -6,7 +5,8 @@
}
class B {
- var x = 0;
+ var x = nullableInt;
}
+int? nullableInt = 0;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.expect
index ba522a3..35a3bf9 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.expect
@@ -1,37 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::B*
+ field core::int? x = self::nullableInt;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::int? nullableInt = 0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.modular.expect
index ba522a3..35a3bf9 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.modular.expect
@@ -1,37 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::B*
+ field core::int? x = self::nullableInt;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::int? nullableInt = 0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.outline.expect
index 55478f9..9548cc4 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.outline.expect
@@ -1,36 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int? x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::B*
+ field core::int? x;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::int? nullableInt;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.transformed.expect
index ba522a3..35a3bf9 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_field.dart.weak.transformed.expect
@@ -1,37 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::B*
+ field core::int? x = self::nullableInt;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
+static field core::int? nullableInt = 0;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart
index b4f957d..a487c1e 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -14,7 +14,7 @@
}
abstract class C {
- int get x;
+ int? get x;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline.expect
index 16deb36..7ab22b6 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
@@ -10,7 +9,7 @@
}
abstract class C {
- int get x;
+ int? get x;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline_modelled.expect
index 82e3698..5aa3262 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class B implements C {
@@ -6,7 +5,7 @@
}
abstract class C {
- int get x;
+ int? get x;
}
class A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.expect
index cc037d5..420edd3 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.modular.expect
index cc037d5..420edd3 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.modular.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.outline.expect
index 9917158..b635620 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.outline.expect
@@ -1,51 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int? x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.transformed.expect
index cc037d5..420edd3 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_getter.dart.weak.transformed.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart
index e4cf6f7..7d73bde 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -14,7 +14,7 @@
}
abstract class C {
- void set x(int value);
+ void set x(int? value);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline.expect
index 4eacca8..54a2a66 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
@@ -10,7 +9,7 @@
}
abstract class C {
- void set x(int value);
+ void set x(int? value);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline_modelled.expect
index e403c75..86136c8 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class B implements C {
@@ -6,7 +5,7 @@
}
abstract class C {
- void set x(int value);
+ void set x(int? value);
}
class A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.expect
index ad938ca..5853650 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.modular.expect
index ad938ca..5853650 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.modular.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.outline.expect
index 49d12bb..c8f00c0 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.outline.expect
@@ -1,51 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int? x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.transformed.expect
index ad938ca..5853650 100644
--- a/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_from_later_inferred_setter.dart.weak.transformed.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int? x = null;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart
index 050847e..8bc577c 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart
@@ -1,24 +1,24 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class A {
- int get x;
+ int? get x;
}
abstract class B {
- int get x;
+ int? get x;
}
abstract class C {
- num get x;
+ num? get x;
}
abstract class D {
- double get x;
+ double? get x;
}
// Superclasses have a consistent type for `x` so inference succeeds.
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline.expect
index 987c50a..b4bcc85 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
library test;
abstract class A {
- int get x;
+ int? get x;
}
abstract class B {
- int get x;
+ int? get x;
}
abstract class C {
- num get x;
+ num? get x;
}
abstract class D {
- double get x;
+ double? get x;
}
class E extends A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline_modelled.expect
index 987c50a..b4bcc85 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.textual_outline_modelled.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
library test;
abstract class A {
- int get x;
+ int? get x;
}
abstract class B {
- int get x;
+ int? get x;
}
abstract class C {
- num get x;
+ num? get x;
}
abstract class D {
- double get x;
+ double? get x;
}
class E extends A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.expect
index 4c56b7e..56dd763 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -6,101 +6,61 @@
// Try adding an explicit type.
// var x;
// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:11: Context: This is one of the overridden members.
-// int get x;
-// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:14: Context: This is one of the overridden members.
-// double get x;
-// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:12: Context: This is one of the overridden members.
+// int? get x;
+// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:15: Context: This is one of the overridden members.
+// double? get x;
+// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double?;
}
class E extends self::A implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super self::A::•()
;
}
class F extends self::A implements self::C {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super self::A::•()
;
}
class G extends self::A implements self::D {
field invalid-type x = null;
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super self::A::•()
;
}
class H extends self::C implements self::D {
- field core::double* x = null;
- synthetic constructor •() → self::H*
+ field core::double? x = null;
+ synthetic constructor •() → self::H
: super self::C::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.modular.expect
index 4c56b7e..56dd763 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -6,101 +6,61 @@
// Try adding an explicit type.
// var x;
// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:11: Context: This is one of the overridden members.
-// int get x;
-// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:14: Context: This is one of the overridden members.
-// double get x;
-// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:12: Context: This is one of the overridden members.
+// int? get x;
+// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:15: Context: This is one of the overridden members.
+// double? get x;
+// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double?;
}
class E extends self::A implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super self::A::•()
;
}
class F extends self::A implements self::C {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super self::A::•()
;
}
class G extends self::A implements self::D {
field invalid-type x = null;
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super self::A::•()
;
}
class H extends self::C implements self::D {
- field core::double* x = null;
- synthetic constructor •() → self::H*
+ field core::double? x = null;
+ synthetic constructor •() → self::H
: super self::C::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.outline.expect
index 6fd22e3..a74f111 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -6,94 +6,54 @@
// Try adding an explicit type.
// var x;
// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:11: Context: This is one of the overridden members.
-// int get x;
-// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:14: Context: This is one of the overridden members.
-// double get x;
-// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:12: Context: This is one of the overridden members.
+// int? get x;
+// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:15: Context: This is one of the overridden members.
+// double? get x;
+// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double?;
}
class E extends self::A implements self::B {
- field core::int* x;
- synthetic constructor •() → self::E*
+ field core::int? x;
+ synthetic constructor •() → self::E
;
}
class F extends self::A implements self::C {
- field core::int* x;
- synthetic constructor •() → self::F*
+ field core::int? x;
+ synthetic constructor •() → self::F
;
}
class G extends self::A implements self::D {
field invalid-type x;
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
;
}
class H extends self::C implements self::D {
- field core::double* x;
- synthetic constructor •() → self::H*
+ field core::double? x;
+ synthetic constructor •() → self::H
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.transformed.expect
index 4c56b7e..56dd763 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_multiple.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -6,101 +6,61 @@
// Try adding an explicit type.
// var x;
// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:11: Context: This is one of the overridden members.
-// int get x;
-// ^
-// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:14: Context: This is one of the overridden members.
-// double get x;
-// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:9:12: Context: This is one of the overridden members.
+// int? get x;
+// ^
+// pkg/front_end/testcases/inference/infer_field_override_multiple.dart:21:15: Context: This is one of the overridden members.
+// double? get x;
+// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double?;
}
class E extends self::A implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super self::A::•()
;
}
class F extends self::A implements self::C {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super self::A::•()
;
}
class G extends self::A implements self::D {
field invalid-type x = null;
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super self::A::•()
;
}
class H extends self::C implements self::D {
- field core::double* x = null;
- synthetic constructor •() → self::H*
+ field core::double? x = null;
+ synthetic constructor •() → self::H
: super self::C::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart
index 7eda712..2fe5bd0 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class A {
- num get x;
+ num? get x;
}
abstract class B extends A {
- int get x;
+ int? get x;
}
class C extends B {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline.expect
index 523e0b2..d11d327 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- num get x;
+ num? get x;
}
abstract class B extends A {
- int get x;
+ int? get x;
}
class C extends B {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline_modelled.expect
index 523e0b2..d11d327 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- num get x;
+ num? get x;
}
abstract class B extends A {
- int get x;
+ int? get x;
}
class C extends B {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.expect
index c1a5df1..451d9f3 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::int*;
+ abstract get x() → core::int?;
}
class C extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.modular.expect
index c1a5df1..451d9f3 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.modular.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::int*;
+ abstract get x() → core::int?;
}
class C extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.outline.expect
index 4b097f7..9de5707 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.outline.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::int*;
+ abstract get x() → core::int?;
}
class C extends self::B {
- field core::int* x;
- synthetic constructor •() → self::C*
+ field core::int? x;
+ synthetic constructor •() → self::C
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.transformed.expect
index c1a5df1..451d9f3 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_of_override.dart.weak.transformed.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num?;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::int*;
+ abstract get x() → core::int?;
}
class C extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart
index 0354fe9..19e4303 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class A<T> {
- List<T> get x;
- void set y(List<T> value);
- List<T> z;
+ List<T>? get x;
+ void set y(List<T>? value);
+ List<T>? z;
}
class B extends A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline.expect
index ea55ffc..273b28b 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
abstract class A<T> {
- List<T> get x;
- void set y(List<T> value);
- List<T> z;
+ List<T>? get x;
+ void set y(List<T>? value);
+ List<T>? z;
}
class B extends A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline_modelled.expect
index 4ce74ba..25ccd18 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
abstract class A<T> {
- List<T> get x;
- List<T> z;
- void set y(List<T> value);
+ List<T>? get x;
+ List<T>? z;
+ void set y(List<T>? value);
}
class B extends A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.expect
index 7b26ea1..c7667ae 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field core::List<self::A::T*>* z = null;
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%>? z = null;
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract get x() → core::List<self::A::T*>*;
- abstract set y(covariant-by-class core::List<self::A::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::List<self::A::T%>?;
+ abstract set y(covariant-by-class core::List<self::A::T%>? value) → void;
}
-class B extends self::A<core::int*> {
- field core::List<core::int*>* x = null;
- covariant-by-class field core::List<core::int*>* y = null;
- covariant-by-class field core::List<core::int*>* z = null;
- synthetic constructor •() → self::B*
+class B extends self::A<core::int> {
+ field core::List<core::int>? x = null;
+ covariant-by-class field core::List<core::int>? y = null;
+ covariant-by-class field core::List<core::int>? z = null;
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.modular.expect
index 7b26ea1..c7667ae 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field core::List<self::A::T*>* z = null;
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%>? z = null;
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract get x() → core::List<self::A::T*>*;
- abstract set y(covariant-by-class core::List<self::A::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::List<self::A::T%>?;
+ abstract set y(covariant-by-class core::List<self::A::T%>? value) → void;
}
-class B extends self::A<core::int*> {
- field core::List<core::int*>* x = null;
- covariant-by-class field core::List<core::int*>* y = null;
- covariant-by-class field core::List<core::int*>* z = null;
- synthetic constructor •() → self::B*
+class B extends self::A<core::int> {
+ field core::List<core::int>? x = null;
+ covariant-by-class field core::List<core::int>? y = null;
+ covariant-by-class field core::List<core::int>? z = null;
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.outline.expect
index b7a1c61..784a16d 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field core::List<self::A::T*>* z;
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%>? z;
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract get x() → core::List<self::A::T*>*;
- abstract set y(covariant-by-class core::List<self::A::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::List<self::A::T%>?;
+ abstract set y(covariant-by-class core::List<self::A::T%>? value) → void;
}
-class B extends self::A<core::int*> {
- field core::List<core::int*>* x;
- covariant-by-class field core::List<core::int*>* y;
- covariant-by-class field core::List<core::int*>* z;
- synthetic constructor •() → self::B*
+class B extends self::A<core::int> {
+ field core::List<core::int>? x;
+ covariant-by-class field core::List<core::int>? y;
+ covariant-by-class field core::List<core::int>? z;
+ synthetic constructor •() → self::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.transformed.expect
index 7b26ea1..c7667ae 100644
--- a/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_override_with_substitution.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field core::List<self::A::T*>* z = null;
- synthetic constructor •() → self::A<self::A::T*>*
+abstract class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%>? z = null;
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract get x() → core::List<self::A::T*>*;
- abstract set y(covariant-by-class core::List<self::A::T*>* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::List<self::A::T%>?;
+ abstract set y(covariant-by-class core::List<self::A::T%>? value) → void;
}
-class B extends self::A<core::int*> {
- field core::List<core::int*>* x = null;
- covariant-by-class field core::List<core::int*>* y = null;
- covariant-by-class field core::List<core::int*>* z = null;
- synthetic constructor •() → self::B*
+class B extends self::A<core::int> {
+ field core::List<core::int>? x = null;
+ covariant-by-class field core::List<core::int>? y = null;
+ covariant-by-class field core::List<core::int>? z = null;
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart
index ee9b563..3fb5e10 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class A {
- int get x;
+ int? get x;
}
class B {
- int get x => 0;
+ int? get x => 0;
}
class C extends A {
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect
index be2698f..d6cce37 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- int get x;
+ int? get x;
}
class B {
- int get x => 0;
+ int? get x => 0;
}
class C extends A {
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect
index be2698f..d6cce37 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- int get x;
+ int? get x;
}
class B {
- int get x => 0;
+ int? get x => 0;
}
class C extends A {
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect
index c7c2a14..4afb53d 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.expect
@@ -1,104 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int?
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::A {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
class D extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::D*
+ field core::int? x = null;
+ synthetic constructor •() → self::D
: super self::B::•()
;
}
class E extends core::Object implements self::A {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B = core::Object with self::B /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- mixin-super-stub get x() → core::int*
+ mixin-super-stub get x() → core::int?
return super.{self::B::x};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x = null;
- synthetic constructor •() → self::G*
+ field core::int? x = null;
+ synthetic constructor •() → self::G
: super self::_G&Object&B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect
index c7c2a14..4afb53d 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.modular.expect
@@ -1,104 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int?
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::A {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
class D extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::D*
+ field core::int? x = null;
+ synthetic constructor •() → self::D
: super self::B::•()
;
}
class E extends core::Object implements self::A {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B = core::Object with self::B /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- mixin-super-stub get x() → core::int*
+ mixin-super-stub get x() → core::int?
return super.{self::B::x};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x = null;
- synthetic constructor •() → self::G*
+ field core::int? x = null;
+ synthetic constructor •() → self::G
: super self::_G&Object&B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect
index 1d43d47..011e3b6 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.outline.expect
@@ -1,98 +1,48 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- get x() → core::int*
+ get x() → core::int?
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::A {
- field core::int* x;
- synthetic constructor •() → self::C*
+ field core::int? x;
+ synthetic constructor •() → self::C
;
}
class D extends self::B {
- field core::int* x;
- synthetic constructor •() → self::D*
+ field core::int? x;
+ synthetic constructor •() → self::D
;
}
class E extends core::Object implements self::A {
- field core::int* x;
- synthetic constructor •() → self::E*
+ field core::int? x;
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x;
- synthetic constructor •() → self::F*
+ field core::int? x;
+ synthetic constructor •() → self::F
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B = core::Object with self::B /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- mixin-super-stub get x() → core::int*
+ mixin-super-stub get x() → core::int?
return super.{self::B::x};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x;
- synthetic constructor •() → self::G*
+ field core::int? x;
+ synthetic constructor •() → self::G
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect
index 3341f60..435793a 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_getter.dart.weak.transformed.expect
@@ -1,104 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int?;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int?
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::A {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
class D extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::D*
+ field core::int? x = null;
+ synthetic constructor •() → self::D
: super self::B::•()
;
}
class E extends core::Object implements self::A {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B extends core::Object implements self::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int?
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x = null;
- synthetic constructor •() → self::G*
+ field core::int? x = null;
+ synthetic constructor •() → self::G
: super self::_G&Object&B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart
index bca74a2..5e9a8f0 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class A {
- void set x(int value);
+ void set x(int? value);
}
class B {
- void set x(int value) {}
+ void set x(int? value) {}
}
class C extends A {
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect
index 944b4fd..441c5f8 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- void set x(int value);
+ void set x(int? value);
}
class B {
- void set x(int value) {}
+ void set x(int? value) {}
}
class C extends A {
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect
index 944b4fd..441c5f8 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- void set x(int value);
+ void set x(int? value);
}
class B {
- void set x(int value) {}
+ void set x(int? value) {}
}
class C extends A {
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect
index 476388a..379ac21 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.expect
@@ -1,103 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int? value) → void {}
}
class C extends self::A {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
class D extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::D*
+ field core::int? x = null;
+ synthetic constructor •() → self::D
: super self::B::•()
;
}
class E extends core::Object implements self::A {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B = core::Object with self::B /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- mixin-super-stub set x(core::int* value) → void
+ mixin-super-stub set x(core::int? value) → void
return super.{self::B::x} = value;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x = null;
- synthetic constructor •() → self::G*
+ field core::int? x = null;
+ synthetic constructor •() → self::G
: super self::_G&Object&B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect
index 476388a..379ac21 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.modular.expect
@@ -1,103 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int? value) → void {}
}
class C extends self::A {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
class D extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::D*
+ field core::int? x = null;
+ synthetic constructor •() → self::D
: super self::B::•()
;
}
class E extends core::Object implements self::A {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B = core::Object with self::B /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- mixin-super-stub set x(core::int* value) → void
+ mixin-super-stub set x(core::int? value) → void
return super.{self::B::x} = value;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x = null;
- synthetic constructor •() → self::G*
+ field core::int? x = null;
+ synthetic constructor •() → self::G
: super self::_G&Object&B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect
index fa329d7..f37771e 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.outline.expect
@@ -1,98 +1,48 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- set x(core::int* value) → void
+ set x(core::int? value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::A {
- field core::int* x;
- synthetic constructor •() → self::C*
+ field core::int? x;
+ synthetic constructor •() → self::C
;
}
class D extends self::B {
- field core::int* x;
- synthetic constructor •() → self::D*
+ field core::int? x;
+ synthetic constructor •() → self::D
;
}
class E extends core::Object implements self::A {
- field core::int* x;
- synthetic constructor •() → self::E*
+ field core::int? x;
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x;
- synthetic constructor •() → self::F*
+ field core::int? x;
+ synthetic constructor •() → self::F
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B = core::Object with self::B /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- mixin-super-stub set x(core::int* value) → void
+ mixin-super-stub set x(core::int? value) → void
return super.{self::B::x} = value;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends self::_G&Object&B {
- field core::int* x;
- synthetic constructor •() → self::G*
+ field core::int? x;
+ synthetic constructor •() → self::G
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect
index 34e2520..d733625 100644
--- a/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_overrides_setter.dart.weak.transformed.expect
@@ -1,102 +1,52 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int? value) → void;
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int? value) → void {}
}
class C extends self::A {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int? x = null;
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
class D extends self::B {
- field core::int* x = null;
- synthetic constructor •() → self::D*
+ field core::int? x = null;
+ synthetic constructor •() → self::D
: super self::B::•()
;
}
class E extends core::Object implements self::A {
- field core::int* x = null;
- synthetic constructor •() → self::E*
+ field core::int? x = null;
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object implements self::B {
- field core::int* x = null;
- synthetic constructor •() → self::F*
+ field core::int? x = null;
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _G&Object&B extends core::Object implements self::B /*isAnonymousMixin,isEliminatedMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_G&Object&B*
+ const synthetic constructor •() → self::_G&Object&B
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int? value) → void {}
}
class G extends self::_G&Object&B {
- field core::int* x = null;
- synthetic constructor •() → self::G*
+ field core::int? x = null;
+ synthetic constructor •() → self::G
: super self::_G&Object&B::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart b/pkg/front_end/testcases/inference/infer_field_static.dart
index 1ec1069..619762f 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline.expect
index 59f212d..7a13d2a 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
dynamic f() => null;
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline_modelled.expect
index dfd227e..a746ec3 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.expect b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.expect
index c785e64..252de66 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- static get x() → core::int*
+ static get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
static field dynamic x = self::f();
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::A {
static field dynamic x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.modular.expect
index c785e64..252de66 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- static get x() → core::int*
+ static get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
static field dynamic x = self::f();
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::A {
static field dynamic x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.outline.expect
index 3134a2e..bc12f9e 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- static get x() → core::int*
+ static get x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
static field dynamic x;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
class C extends self::A {
static field dynamic x;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
static method f() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.transformed.expect
index c785e64..252de66 100644
--- a/pkg/front_end/testcases/inference/infer_field_static.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_field_static.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- static get x() → core::int*
+ static get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
static field dynamic x = self::f();
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::A {
static field dynamic x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart
index a5d800a..64260b8 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline.expect
index 3b67644..2fcbeb6b 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline_modelled.expect
index f8eb28d..226c18d 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.expect
index 3eab43e..18fd580 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
// void set x(double value) {}
// ^
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not assignable to the type 'double' of the inherited setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not a subtype of the type 'double' of the inherited setter 'A.x'.
// final x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -20,25 +20,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- set x(core::double* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ set x(core::double value) → void {}
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.modular.expect
index 3eab43e..18fd580 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.modular.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
// void set x(double value) {}
// ^
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not assignable to the type 'double' of the inherited setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not a subtype of the type 'double' of the inherited setter 'A.x'.
// final x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -20,25 +20,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- set x(core::double* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ set x(core::double value) → void {}
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.outline.expect
index b9c9e68..33f42e4 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.outline.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
// void set x(double value) {}
// ^
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not assignable to the type 'double' of the inherited setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not a subtype of the type 'double' of the inherited setter 'A.x'.
// final x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -20,25 +20,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::int*;
- set x(core::double* value) → void
+ abstract get x() → core::int;
+ set x(core::double value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.transformed.expect
index 3eab43e..18fd580 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
// void set x(double value) {}
// ^
//
-// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not assignable to the type 'double' of the inherited setter 'A.x'.
+// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:14:9: Error: The type 'int' of the field 'B.x' is not a subtype of the type 'double' of the inherited setter 'A.x'.
// final x;
// ^
// pkg/front_end/testcases/inference/infer_final_field_getter_and_setter.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -20,25 +20,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- set x(core::double* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ set x(core::double value) → void {}
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart
index f9cbe1e..7f0c3b0 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline.expect
index 74ecc5b8..98e63d7 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline_modelled.expect
index 3a03700..2c719f5 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.expect
index 2668951..9cd70fa 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.modular.expect
index 2668951..9cd70fa 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.outline.expect
index 42f6a29..8236a2e 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.transformed.expect
index 2668951..9cd70fa 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_getter_only.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
class B extends self::A {
- final field core::int* x;
- constructor •(core::int* x) → self::B*
+ final field core::int x;
+ constructor •(core::int x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart
index 7fa3735..15aaf46 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline.expect
index 6a7dbd3..e6b33d7 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline_modelled.expect
index 03d1716..3b763af 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.expect
index 287066b..3bacb6f 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::double* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::double value) → void {}
}
class B extends self::A {
- final field core::double* x;
- constructor •(core::double* x) → self::B*
+ final field core::double x;
+ constructor •(core::double x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.modular.expect
index 287066b..3bacb6f 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::double* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::double value) → void {}
}
class B extends self::A {
- final field core::double* x;
- constructor •(core::double* x) → self::B*
+ final field core::double x;
+ constructor •(core::double x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.outline.expect
index 837fdff..270556d 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- set x(core::double* value) → void
+ set x(core::double value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- final field core::double* x;
- constructor •(core::double* x) → self::B*
+ final field core::double x;
+ constructor •(core::double x) → self::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.transformed.expect
index 287066b..3bacb6f 100644
--- a/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_final_field_setter_only.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::double* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::double value) → void {}
}
class B extends self::A {
- final field core::double* x;
- constructor •(core::double* x) → self::B*
+ final field core::double x;
+ constructor •(core::double x) → self::B
: self::B::x = x, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart
index 7a1c5ba..8bb1adb 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- int x;
- B operator +(other) => null;
+ int x = 0;
+ B operator +(other) => throw '';
}
class B extends A {
@@ -17,7 +17,7 @@
var a = new A();
// Note: it doesn't matter that some of these refer to 'x'.
var b = new B(/*error:UNDEFINED_IDENTIFIER*/ x); // allocations
-var c1 = /*@typeArgs=invalid-type*/ [
+var c1 = /*@typeArgs=dynamic*/ [
/*error:UNDEFINED_IDENTIFIER*/ x
]; // list literals
var c2 = /*@typeArgs=dynamic*/ const [];
@@ -37,7 +37,7 @@
a = new B(3);
b = /*error:INVALID_ASSIGNMENT*/ "hi";
b = new B(3);
- c1 = /*@typeArgs=invalid-type*/ [];
+ c1 = /*@typeArgs=dynamic*/ [];
c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
c2 = /*@typeArgs=dynamic*/ [];
c2 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline.expect
index 1d91038..066cecd 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A {
- int x;
- B operator +(other) => null;
+ int x = 0;
+ B operator +(other) => throw '';
}
class B extends A {
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline_modelled.expect
index 9d69b5f..f836e6d 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A {
- B operator +(other) => null;
- int x;
+ B operator +(other) => throw '';
+ int x = 0;
}
class B extends A {
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.expect
index a18d682..6e181a8 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -26,7 +26,7 @@
// b = /*error:INVALID_ASSIGNMENT*/ "hi";
// ^
//
-// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<invalid-type>'.
+// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
// - 'Set' is from 'dart:core'.
// - 'List' is from 'dart:core'.
// c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
@@ -78,111 +78,101 @@
import "dart:collection" as col;
class A extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int x = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → self::B*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(dynamic other) → self::B
+ return throw "";
}
class B extends self::A {
- constructor •(dynamic ignore) → self::B*
+ constructor •(dynamic ignore) → self::B
: super self::A::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::B* b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Undefined name 'x'.
+static field self::A a = new self::A::•();
+static field self::B b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Undefined name 'x'.
var b = new B(/*error:UNDEFINED_IDENTIFIER*/ x); // allocations
^");
-static field core::List<invalid-type>* c1 = <invalid-type>[invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Undefined name 'x'.
+static field core::List<dynamic> c1 = <dynamic>[invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Undefined name 'x'.
/*error:UNDEFINED_IDENTIFIER*/ x
^"];
-static field core::List<dynamic>* c2 = #C1;
-static field core::Map<dynamic, dynamic>* d = <dynamic, dynamic>{"a": "b"};
-static field self::A* e = let final self::A* #t1 = new self::A::•() in block {
+static field core::List<dynamic> c2 = #C1;
+static field core::Map<dynamic, dynamic> d = <dynamic, dynamic>{"a": "b"};
+static field self::A e = let final self::A #t1 = new self::A::•() in block {
#t1.{self::A::x} = 3;
} =>#t1;
-static field core::int* f = 2.{core::num::+}(3){(core::num*) →* core::int*};
-static field core::int* g = 3.{core::int::unary-}(){() →* core::int*};
-static field self::B* h = new self::A::•().{self::A::+}(3){(dynamic) →* self::B*};
+static field core::int f = 2.{core::num::+}(3){(core::num) → core::int};
+static field core::int g = 3.{core::int::unary-}(){() → core::int};
+static field self::B h = new self::A::•().{self::A::+}(3){(dynamic) → self::B};
static field dynamic i = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:32:58: Error: The operator 'unary-' isn't defined for the class 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
Try correcting the operator to an existing operator, or defining a 'unary-' operator.
var i = /*error:UNDEFINED_OPERATOR,info:DYNAMIC_INVOKE*/ -new A();
^" in new self::A::•(){<unresolved>}.unary-();
-static field self::B* j = null as self::B*;
+static field self::B j = null as{ForNonNullableByDefault} self::B;
static method test1() → dynamic {
self::a = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:36:36: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} self::A*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} self::A;
self::a = new self::B::•(3);
self::b = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:38:36: Error: A value of type 'String' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} self::B*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} self::B;
self::b = new self::B::•(3);
- self::c1 = <invalid-type>[];
- self::c1 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<invalid-type>'.
+ self::c1 = <dynamic>[];
+ self::c1 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
- final core::Set<dynamic>* #t2 = col::LinkedHashSet::•<dynamic>();
- } =>#t2) as{TypeError} core::List<invalid-type>*;
+ final core::Set<dynamic> #t2 = col::LinkedHashSet::•<dynamic>();
+ } =>#t2) as{TypeError,ForNonNullableByDefault} core::List<dynamic>;
self::c2 = <dynamic>[];
self::c2 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:43:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c2 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
- final core::Set<dynamic>* #t3 = col::LinkedHashSet::•<dynamic>();
- } =>#t3) as{TypeError} core::List<dynamic>*;
+ final core::Set<dynamic> #t3 = col::LinkedHashSet::•<dynamic>();
+ } =>#t3) as{TypeError,ForNonNullableByDefault} core::List<dynamic>;
self::d = <dynamic, dynamic>{};
self::d = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:45:36: Error: A value of type 'int' can't be assigned to a variable of type 'Map<dynamic, dynamic>'.
- 'Map' is from 'dart:core'.
d = /*error:INVALID_ASSIGNMENT*/ 3;
- ^" in 3 as{TypeError} core::Map<dynamic, dynamic>*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::Map<dynamic, dynamic>;
self::e = new self::A::•();
self::e = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:47:67: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'A'.
- 'Map' is from 'dart:core'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
e = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic, dynamic*/ {};
- ^" in <dynamic, dynamic>{} as{TypeError} self::A*;
+ ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} self::A;
self::f = 3;
self::f = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:49:36: Error: A value of type 'bool' can't be assigned to a variable of type 'int'.
f = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} core::int*;
+ ^" in false as{TypeError,ForNonNullableByDefault} core::int;
self::g = 1;
self::g = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:51:36: Error: A value of type 'bool' can't be assigned to a variable of type 'int'.
g = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} core::int*;
+ ^" in false as{TypeError,ForNonNullableByDefault} core::int;
self::h = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:52:36: Error: A value of type 'bool' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
h = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} self::B*;
+ ^" in false as{TypeError,ForNonNullableByDefault} self::B;
self::h = new self::B::•("b");
self::i = false;
self::j = new self::B::•("b");
self::j = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:56:36: Error: A value of type 'bool' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
j = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} self::B*;
+ ^" in false as{TypeError,ForNonNullableByDefault} self::B;
self::j = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:57:58: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'B'.
- 'List' is from 'dart:core'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
j = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ [];
- ^" in <dynamic>[] as{TypeError} self::B*;
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} self::B;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.modular.expect
index a18d682..6e181a8 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -26,7 +26,7 @@
// b = /*error:INVALID_ASSIGNMENT*/ "hi";
// ^
//
-// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<invalid-type>'.
+// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
// - 'Set' is from 'dart:core'.
// - 'List' is from 'dart:core'.
// c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
@@ -78,111 +78,101 @@
import "dart:collection" as col;
class A extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int x = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → self::B*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(dynamic other) → self::B
+ return throw "";
}
class B extends self::A {
- constructor •(dynamic ignore) → self::B*
+ constructor •(dynamic ignore) → self::B
: super self::A::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::B* b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Undefined name 'x'.
+static field self::A a = new self::A::•();
+static field self::B b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Undefined name 'x'.
var b = new B(/*error:UNDEFINED_IDENTIFIER*/ x); // allocations
^");
-static field core::List<invalid-type>* c1 = <invalid-type>[invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Undefined name 'x'.
+static field core::List<dynamic> c1 = <dynamic>[invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Undefined name 'x'.
/*error:UNDEFINED_IDENTIFIER*/ x
^"];
-static field core::List<dynamic>* c2 = #C1;
-static field core::Map<dynamic, dynamic>* d = <dynamic, dynamic>{"a": "b"};
-static field self::A* e = let final self::A* #t1 = new self::A::•() in block {
+static field core::List<dynamic> c2 = #C1;
+static field core::Map<dynamic, dynamic> d = <dynamic, dynamic>{"a": "b"};
+static field self::A e = let final self::A #t1 = new self::A::•() in block {
#t1.{self::A::x} = 3;
} =>#t1;
-static field core::int* f = 2.{core::num::+}(3){(core::num*) →* core::int*};
-static field core::int* g = 3.{core::int::unary-}(){() →* core::int*};
-static field self::B* h = new self::A::•().{self::A::+}(3){(dynamic) →* self::B*};
+static field core::int f = 2.{core::num::+}(3){(core::num) → core::int};
+static field core::int g = 3.{core::int::unary-}(){() → core::int};
+static field self::B h = new self::A::•().{self::A::+}(3){(dynamic) → self::B};
static field dynamic i = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:32:58: Error: The operator 'unary-' isn't defined for the class 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
Try correcting the operator to an existing operator, or defining a 'unary-' operator.
var i = /*error:UNDEFINED_OPERATOR,info:DYNAMIC_INVOKE*/ -new A();
^" in new self::A::•(){<unresolved>}.unary-();
-static field self::B* j = null as self::B*;
+static field self::B j = null as{ForNonNullableByDefault} self::B;
static method test1() → dynamic {
self::a = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:36:36: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} self::A*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} self::A;
self::a = new self::B::•(3);
self::b = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:38:36: Error: A value of type 'String' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} self::B*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} self::B;
self::b = new self::B::•(3);
- self::c1 = <invalid-type>[];
- self::c1 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<invalid-type>'.
+ self::c1 = <dynamic>[];
+ self::c1 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
- final core::Set<dynamic>* #t2 = col::LinkedHashSet::•<dynamic>();
- } =>#t2) as{TypeError} core::List<invalid-type>*;
+ final core::Set<dynamic> #t2 = col::LinkedHashSet::•<dynamic>();
+ } =>#t2) as{TypeError,ForNonNullableByDefault} core::List<dynamic>;
self::c2 = <dynamic>[];
self::c2 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:43:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c2 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
- final core::Set<dynamic>* #t3 = col::LinkedHashSet::•<dynamic>();
- } =>#t3) as{TypeError} core::List<dynamic>*;
+ final core::Set<dynamic> #t3 = col::LinkedHashSet::•<dynamic>();
+ } =>#t3) as{TypeError,ForNonNullableByDefault} core::List<dynamic>;
self::d = <dynamic, dynamic>{};
self::d = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:45:36: Error: A value of type 'int' can't be assigned to a variable of type 'Map<dynamic, dynamic>'.
- 'Map' is from 'dart:core'.
d = /*error:INVALID_ASSIGNMENT*/ 3;
- ^" in 3 as{TypeError} core::Map<dynamic, dynamic>*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::Map<dynamic, dynamic>;
self::e = new self::A::•();
self::e = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:47:67: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'A'.
- 'Map' is from 'dart:core'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
e = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic, dynamic*/ {};
- ^" in <dynamic, dynamic>{} as{TypeError} self::A*;
+ ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} self::A;
self::f = 3;
self::f = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:49:36: Error: A value of type 'bool' can't be assigned to a variable of type 'int'.
f = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} core::int*;
+ ^" in false as{TypeError,ForNonNullableByDefault} core::int;
self::g = 1;
self::g = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:51:36: Error: A value of type 'bool' can't be assigned to a variable of type 'int'.
g = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} core::int*;
+ ^" in false as{TypeError,ForNonNullableByDefault} core::int;
self::h = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:52:36: Error: A value of type 'bool' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
h = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} self::B*;
+ ^" in false as{TypeError,ForNonNullableByDefault} self::B;
self::h = new self::B::•("b");
self::i = false;
self::j = new self::B::•("b");
self::j = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:56:36: Error: A value of type 'bool' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
j = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} self::B*;
+ ^" in false as{TypeError,ForNonNullableByDefault} self::B;
self::j = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:57:58: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'B'.
- 'List' is from 'dart:core'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
j = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ [];
- ^" in <dynamic>[] as{TypeError} self::B*;
+ ^" in <dynamic>[] as{TypeError,ForNonNullableByDefault} self::B;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.outline.expect
index 413000a..89c8763 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,37 +14,27 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int x;
+ synthetic constructor •() → self::A
;
- operator +(dynamic other) → self::B*
+ operator +(dynamic other) → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- constructor •(dynamic ignore) → self::B*
+ constructor •(dynamic ignore) → self::B
;
}
-static field self::A* a;
-static field self::B* b;
-static field core::List<invalid-type>* c1;
-static field core::List<dynamic>* c2;
-static field core::Map<dynamic, dynamic>* d;
-static field self::A* e;
-static field core::int* f;
-static field core::int* g;
-static field self::B* h;
+static field self::A a;
+static field self::B b;
+static field core::List<dynamic> c1;
+static field core::List<dynamic> c2;
+static field core::Map<dynamic, dynamic> d;
+static field self::A e;
+static field core::int f;
+static field core::int g;
+static field self::B h;
static field dynamic i;
-static field self::B* j;
+static field self::B j;
static method test1() → dynamic
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.transformed.expect
index be878a0..d2f3381 100644
--- a/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -26,7 +26,7 @@
// b = /*error:INVALID_ASSIGNMENT*/ "hi";
// ^
//
-// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<invalid-type>'.
+// pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
// - 'Set' is from 'dart:core'.
// - 'List' is from 'dart:core'.
// c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
@@ -78,111 +78,101 @@
import "dart:collection" as col;
class A extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::A*
+ field core::int x = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → self::B*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(dynamic other) → self::B
+ return throw "";
}
class B extends self::A {
- constructor •(dynamic ignore) → self::B*
+ constructor •(dynamic ignore) → self::B
: super self::A::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::B* b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Undefined name 'x'.
+static field self::A a = new self::A::•();
+static field self::B b = new self::B::•(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:19:46: Error: Undefined name 'x'.
var b = new B(/*error:UNDEFINED_IDENTIFIER*/ x); // allocations
^");
-static field core::List<invalid-type>* c1 = core::_GrowableList::_literal1<invalid-type>(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Undefined name 'x'.
+static field core::List<dynamic> c1 = core::_GrowableList::_literal1<dynamic>(invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:21:34: Error: Undefined name 'x'.
/*error:UNDEFINED_IDENTIFIER*/ x
^");
-static field core::List<dynamic>* c2 = #C1;
-static field core::Map<dynamic, dynamic>* d = <dynamic, dynamic>{"a": "b"};
-static field self::A* e = let final self::A* #t1 = new self::A::•() in block {
+static field core::List<dynamic> c2 = #C1;
+static field core::Map<dynamic, dynamic> d = <dynamic, dynamic>{"a": "b"};
+static field self::A e = let final self::A #t1 = new self::A::•() in block {
#t1.{self::A::x} = 3;
} =>#t1;
-static field core::int* f = 2.{core::num::+}(3){(core::num*) →* core::int*};
-static field core::int* g = 3.{core::int::unary-}(){() →* core::int*};
-static field self::B* h = new self::A::•().{self::A::+}(3){(dynamic) →* self::B*};
+static field core::int f = 2.{core::num::+}(3){(core::num) → core::int};
+static field core::int g = 3.{core::int::unary-}(){() → core::int};
+static field self::B h = new self::A::•().{self::A::+}(3){(dynamic) → self::B};
static field dynamic i = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:32:58: Error: The operator 'unary-' isn't defined for the class 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
Try correcting the operator to an existing operator, or defining a 'unary-' operator.
var i = /*error:UNDEFINED_OPERATOR,info:DYNAMIC_INVOKE*/ -new A();
^" in new self::A::•(){<unresolved>}.unary-();
-static field self::B* j = null;
+static field self::B j = null;
static method test1() → dynamic {
self::a = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:36:36: Error: A value of type 'String' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} self::A*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} self::A;
self::a = new self::B::•(3);
self::b = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:38:36: Error: A value of type 'String' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} self::B*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} self::B;
self::b = new self::B::•(3);
- self::c1 = core::_GrowableList::•<invalid-type>(0);
- self::c1 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<invalid-type>'.
+ self::c1 = core::_GrowableList::•<dynamic>(0);
+ self::c1 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:41:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c1 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
- final core::Set<dynamic>* #t2 = new col::_CompactLinkedHashSet::•<dynamic>();
- } =>#t2) as{TypeError} core::List<invalid-type>*;
+ final core::Set<dynamic> #t2 = new col::_CompactLinkedHashSet::•<dynamic>();
+ } =>#t2) as{TypeError,ForNonNullableByDefault} core::List<dynamic>;
self::c2 = core::_GrowableList::•<dynamic>(0);
self::c2 = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:43:59: Error: A value of type 'Set<dynamic>' can't be assigned to a variable of type 'List<dynamic>'.
- 'Set' is from 'dart:core'.
- 'List' is from 'dart:core'.
c2 = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ {};
^" in ( block {
- final core::Set<dynamic>* #t3 = new col::_CompactLinkedHashSet::•<dynamic>();
- } =>#t3) as{TypeError} core::List<dynamic>*;
+ final core::Set<dynamic> #t3 = new col::_CompactLinkedHashSet::•<dynamic>();
+ } =>#t3) as{TypeError,ForNonNullableByDefault} core::List<dynamic>;
self::d = <dynamic, dynamic>{};
self::d = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:45:36: Error: A value of type 'int' can't be assigned to a variable of type 'Map<dynamic, dynamic>'.
- 'Map' is from 'dart:core'.
d = /*error:INVALID_ASSIGNMENT*/ 3;
- ^" in 3 as{TypeError} core::Map<dynamic, dynamic>*;
+ ^" in 3 as{TypeError,ForNonNullableByDefault} core::Map<dynamic, dynamic>;
self::e = new self::A::•();
self::e = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:47:67: Error: A value of type 'Map<dynamic, dynamic>' can't be assigned to a variable of type 'A'.
- 'Map' is from 'dart:core'.
- 'A' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
e = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic, dynamic*/ {};
- ^" in <dynamic, dynamic>{} as{TypeError} self::A*;
+ ^" in <dynamic, dynamic>{} as{TypeError,ForNonNullableByDefault} self::A;
self::f = 3;
self::f = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:49:36: Error: A value of type 'bool' can't be assigned to a variable of type 'int'.
f = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} core::int*;
+ ^" in false as{TypeError,ForNonNullableByDefault} core::int;
self::g = 1;
self::g = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:51:36: Error: A value of type 'bool' can't be assigned to a variable of type 'int'.
g = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} core::int*;
+ ^" in false as{TypeError,ForNonNullableByDefault} core::int;
self::h = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:52:36: Error: A value of type 'bool' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
h = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} self::B*;
+ ^" in false as{TypeError,ForNonNullableByDefault} self::B;
self::h = new self::B::•("b");
self::i = false;
self::j = new self::B::•("b");
self::j = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:56:36: Error: A value of type 'bool' can't be assigned to a variable of type 'B'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
j = /*error:INVALID_ASSIGNMENT*/ false;
- ^" in false as{TypeError} self::B*;
+ ^" in false as{TypeError,ForNonNullableByDefault} self::B;
self::j = invalid-expression "pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart:57:58: Error: A value of type 'List<dynamic>' can't be assigned to a variable of type 'B'.
- 'List' is from 'dart:core'.
- 'B' is from 'pkg/front_end/testcases/inference/infer_from_complex_expressions_if_outer_most_value_is_precise.dart'.
j = /*error:INVALID_ASSIGNMENT*/ /*@typeArgs=dynamic*/ [];
- ^" in core::_GrowableList::•<dynamic>(0) as{TypeError} self::B*;
+ ^" in core::_GrowableList::•<dynamic>(0) as{TypeError,ForNonNullableByDefault} self::B;
}
static method main() → dynamic {}
@@ -193,4 +183,4 @@
Extra constant evaluation status:
Evaluated: InstanceInvocation @ org-dartlang-testcase:///infer_from_complex_expressions_if_outer_most_value_is_precise.dart:27:25 -> IntConstant(5)
Evaluated: InstanceInvocation @ org-dartlang-testcase:///infer_from_complex_expressions_if_outer_most_value_is_precise.dart:30:32 -> IntConstant(-3)
-Extra constant evaluation: evaluated: 44, effectively constant: 2
+Extra constant evaluation: evaluated: 45, effectively constant: 2
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart
index 1cad910..20d13e8 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline.expect
index 632fe6f..34ce1a3 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline_modelled.expect
index 632fe6f..34ce1a3 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.expect
index 8b4fa52..022bf2b 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic x = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x = 2;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.modular.expect
index 8b4fa52..022bf2b 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.modular.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic x = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x = 2;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.outline.expect
index 64c769f..f361099 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic x;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.transformed.expect
index 8b4fa52..022bf2b 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields.dart.weak.transformed.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
field dynamic x = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
field dynamic x = 2;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart
index 91c9c24..f365cfa 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline.expect
index b67f00d..aa0f066 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline_modelled.expect
index b67f00d..aa0f066 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.expect
index d5127a5..ef90ba2 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
final field dynamic x = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
final field dynamic x = 2;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.modular.expect
index d5127a5..ef90ba2 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.modular.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
final field dynamic x = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
final field dynamic x = 2;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.outline.expect
index 209a893..252f1d2 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
final field dynamic x;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
final field dynamic x;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.transformed.expect
index d5127a5..ef90ba2 100644
--- a/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_rhs_only_if_it_wont_conflict_with_overridden_fields2.dart.weak.transformed.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
final field dynamic x = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
final field dynamic x = 2;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart
index 5f77042..9943823 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline.expect
index be84fde..d492a1f 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline_modelled.expect
index 6e37725..7f49eac 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.expect
index 79f52e7..eb157c3 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.expect
@@ -1,28 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart" as inf;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart";
-static field core::int* y = inf::x;
+static field core::int y = inf::x;
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::x;
t = self::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf2;
@@ -30,48 +30,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf2::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = inf2::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf2::A::x;
t = self2::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf2::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.modular.expect
index 79f52e7..eb157c3 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.modular.expect
@@ -1,28 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart" as inf;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart";
-static field core::int* y = inf::x;
+static field core::int y = inf::x;
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::x;
t = self::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf2;
@@ -30,48 +30,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf2::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = inf2::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf2::A::x;
t = self2::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf2::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.outline.expect
index 0173e80..22ed76a 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.outline.expect
@@ -1,71 +1,51 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart";
-static field core::int* y;
+static field core::int y;
static method test1() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x;
+static field core::int x;
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y;
- synthetic constructor •() → self3::B*
+ static field core::int y;
+ synthetic constructor •() → self3::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self4;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x;
- synthetic constructor •() → self4::A*
+ static field core::int x;
+ synthetic constructor •() → self4::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.transformed.expect
index 79f52e7..eb157c3 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on.dart.weak.transformed.expect
@@ -1,28 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart" as inf;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart";
-static field core::int* y = inf::x;
+static field core::int y = inf::x;
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::x;
t = self::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf2;
@@ -30,48 +30,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf2::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = inf2::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf2::A::x;
t = self2::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf2::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart
index 72d7556..59b8aa8 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline.expect
index 8e52181..88b9f22 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline_modelled.expect
index b130d1d..d1c629e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.expect
index fb74297..2fda76e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf;
@@ -6,48 +6,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::A::x;
t = self::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.modular.expect
index fb74297..2fda76e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf;
@@ -6,48 +6,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::A::x;
t = self::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.outline.expect
index 62f76a0..7adbdc8 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.outline.expect
@@ -1,49 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y;
- synthetic constructor •() → self::B*
+ static field core::int y;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x;
- synthetic constructor •() → self2::A*
+ static field core::int x;
+ synthetic constructor •() → self2::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.transformed.expect
index fb74297..2fda76e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf;
@@ -6,48 +6,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::A::x;
t = self::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart
index 8357e05..cc5d086 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline.expect
index b281143..4506b1e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2.dart';
class A {
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline_modelled.expect
index b281143..4506b1e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2.dart';
class A {
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.expect
index da8a870..1a24220 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → self::A*
+ static field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as self;
@@ -30,23 +20,13 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = self::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = self::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = self::A::x;
t = self2::B::y;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.modular.expect
index da8a870..1a24220 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → self::A*
+ static field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as self;
@@ -30,23 +20,13 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = self::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = self::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = self::A::x;
t = self2::B::y;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.outline.expect
index 2756314..cf6226b 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.outline.expect
@@ -1,47 +1,27 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x;
- synthetic constructor •() → self::A*
+ static field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y;
- synthetic constructor •() → self2::B*
+ static field core::int y;
+ synthetic constructor •() → self2::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.transformed.expect
index da8a870..1a24220 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → self::A*
+ static field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as self;
@@ -30,23 +20,13 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = self::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = self::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = self::A::x;
t = self2::B::y;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart
index 5d9ab51..e0f359b 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline.expect
index 7f33e9c..b6179eb 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2.dart';
var x = 2;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline_modelled.expect
index 9684c8a..7bbfa38 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_from_variables_in_cycle_libs_when_flag_is_on2.dart';
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.expect
index 7e9fca5..3b154f0 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf;
@@ -15,48 +15,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::A::x;
t = self2::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.modular.expect
index 7e9fca5..3b154f0 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf;
@@ -15,48 +15,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::A::x;
t = self2::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.outline.expect
index a454f7e..261bc51 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.outline.expect
@@ -1,59 +1,39 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x;
+static field core::int x;
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y;
- synthetic constructor •() → self2::B*
+ static field core::int y;
+ synthetic constructor •() → self2::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x;
- synthetic constructor •() → self3::A*
+ static field core::int x;
+ synthetic constructor •() → self3::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.transformed.expect
index 7e9fca5..3b154f0 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_cycle_libs_when_flag_is_on_a.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart" as inf;
@@ -15,48 +15,28 @@
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self2::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self2::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
- core::int* t = 3;
+ core::int t = 3;
t = inf::A::x;
t = self2::B::y;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_cycle_libs_when_flag_is_on2.dart";
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart
index 9c87a81..4b54811 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline.expect
index 1d27b7a..3866c4e 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_non_cycle_imports_with_flag_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline_modelled.expect
index 8ee5c5b..bc53ea1 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_non_cycle_imports_with_flag_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.expect
index cfb8761..e9eff50 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,22 +16,22 @@
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag_a.dart";
-static field core::int* y = inf::x;
+static field core::int y = inf::x;
static method test1() → dynamic {
inf::x = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart:13:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
self::y = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart:14:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
y = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {
inf::x;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.modular.expect
index cfb8761..e9eff50 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,22 +16,22 @@
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag_a.dart";
-static field core::int* y = inf::x;
+static field core::int y = inf::x;
static method test1() → dynamic {
inf::x = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart:13:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
self::y = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart:14:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
y = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {
inf::x;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.outline.expect
index a618e67..5a52ffa 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.outline.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag_a.dart";
-static field core::int* y;
+static field core::int y;
static method test1() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
-static field core::int* x;
+static field core::int x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.transformed.expect
index cfb8761..e9eff50 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,22 +16,22 @@
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag_a.dart";
-static field core::int* y = inf::x;
+static field core::int y = inf::x;
static method test1() → dynamic {
inf::x = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart:13:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
self::y = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag.dart:14:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
y = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {
inf::x;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart
index 98b37c6..f7bb1b1 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline.expect
index b0fc3be..7aa039a 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_non_cycle_imports_with_flag2_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline_modelled.expect
index ac30718..5077b56 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_from_variables_in_non_cycle_imports_with_flag2_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.expect
index 74f640c..5a49ec5 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,49 +17,29 @@
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
inf::A::x = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart:15:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
A.x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
self::B::y = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart:16:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
B.y = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.modular.expect
index 74f640c..5a49ec5 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,49 +17,29 @@
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
inf::A::x = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart:15:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
A.x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
self::B::y = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart:16:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
B.y = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.outline.expect
index a555792..2c094e9 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.outline.expect
@@ -1,47 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag2_a.dart";
class B extends core::Object {
- static field core::int* y;
- synthetic constructor •() → self::B*
+ static field core::int y;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x;
- synthetic constructor •() → self2::A*
+ static field core::int x;
+ synthetic constructor •() → self2::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.transformed.expect
index 74f640c..5a49ec5 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,49 +17,29 @@
import "org-dartlang-testcase:///infer_from_variables_in_non_cycle_imports_with_flag2_a.dart";
class B extends core::Object {
- static field core::int* y = inf::A::x;
- synthetic constructor •() → self::B*
+ static field core::int y = inf::A::x;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test1() → dynamic {
inf::A::x = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart:15:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
A.x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
self::B::y = invalid-expression "pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2.dart:16:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
B.y = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → inf::A*
+ static field core::int x = 2;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart
index 7980507..906f8d8 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
class A {
static var x = 2;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline.expect
index 342f1dc..7525c2b 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A {
static var x = 2;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline_modelled.expect
index 342f1dc..7525c2b 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A {
static var x = 2;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.expect
index 81376fe..ff7906f3 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → self::A*
+ static field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.modular.expect
index 81376fe..ff7906f3 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → self::A*
+ static field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.outline.expect
index 3e977a3..c92c720 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x;
- synthetic constructor •() → self::A*
+ static field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.transformed.expect
index 81376fe..ff7906f3 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag2_a.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- static field core::int* x = 2;
- synthetic constructor •() → self::A*
+ static field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart
index aa1a3de..1aa8c0a 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
var x = 2;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline.expect
index 4fc8cda..bd89adb 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
var x = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline_modelled.expect
index e76f6ad..a415471 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
main() {}
var x = 2;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.expect
index 298b12b..d211ba0 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.modular.expect
index 298b12b..d211ba0 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.outline.expect
index 59f6600..685c2cd 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x;
+static field core::int x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.transformed.expect
index 298b12b..d211ba0 100644
--- a/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_from_variables_in_non_cycle_imports_with_flag_a.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x = 2;
+static field core::int x = 2;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart b/pkg/front_end/testcases/inference/infer_generic_field_types.dart
index 7dd1393..25970c7 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart
@@ -1,9 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
class A<X> {
X field;
+
+ A(this.field);
}
abstract class B<Y> implements A<Y> {
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline.expect
index 758c19b..12b3533 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline.expect
@@ -1,6 +1,6 @@
-// @dart = 2.9
class A<X> {
X field;
+ A(this.field);
}
abstract class B<Y> implements A<Y> {
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline_modelled.expect
index fe80651..0f3ceeb 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
abstract class B<Y> implements A<Y> {
get field;
set field(value);
@@ -10,6 +9,7 @@
}
class A<X> {
+ A(this.field);
X field;
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.expect b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.expect
index 91d941e..ac14e89 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.expect
@@ -1,55 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::X* field = null;
- synthetic constructor •() → self::A<self::A::X*>*
- : super core::Object::•()
+class A<X extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::X% field;
+ constructor •(self::A::X% field) → self::A<self::A::X%>
+ : self::A::field = field, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+abstract class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
: super core::Object::•()
;
- abstract get field() → self::B::Y*;
- abstract set field(covariant-by-class self::B::Y* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → self::B::Y%;
+ abstract set field(covariant-by-class self::B::Y% value) → void;
}
-abstract class C extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::C*
+abstract class C extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get field() → core::int*;
- abstract set field(covariant-by-class core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → core::int;
+ abstract set field(covariant-by-class core::int value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.modular.expect
index 91d941e..ac14e89 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.modular.expect
@@ -1,55 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::X* field = null;
- synthetic constructor •() → self::A<self::A::X*>*
- : super core::Object::•()
+class A<X extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::X% field;
+ constructor •(self::A::X% field) → self::A<self::A::X%>
+ : self::A::field = field, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+abstract class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
: super core::Object::•()
;
- abstract get field() → self::B::Y*;
- abstract set field(covariant-by-class self::B::Y* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → self::B::Y%;
+ abstract set field(covariant-by-class self::B::Y% value) → void;
}
-abstract class C extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::C*
+abstract class C extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get field() → core::int*;
- abstract set field(covariant-by-class core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → core::int;
+ abstract set field(covariant-by-class core::int value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.outline.expect
index cc52187..504d184 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.outline.expect
@@ -1,53 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::X* field;
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::X% field;
+ constructor •(self::A::X% field) → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+abstract class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
;
- abstract get field() → self::B::Y*;
- abstract set field(covariant-by-class self::B::Y* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → self::B::Y%;
+ abstract set field(covariant-by-class self::B::Y% value) → void;
}
-abstract class C extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::C*
+abstract class C extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::C
;
- abstract get field() → core::int*;
- abstract set field(covariant-by-class core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → core::int;
+ abstract set field(covariant-by-class core::int value) → void;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.transformed.expect
index 91d941e..ac14e89 100644
--- a/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_field_types.dart.weak.transformed.expect
@@ -1,55 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::X* field = null;
- synthetic constructor •() → self::A<self::A::X*>*
- : super core::Object::•()
+class A<X extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::X% field;
+ constructor •(self::A::X% field) → self::A<self::A::X%>
+ : self::A::field = field, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+abstract class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
: super core::Object::•()
;
- abstract get field() → self::B::Y*;
- abstract set field(covariant-by-class self::B::Y* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → self::B::Y%;
+ abstract set field(covariant-by-class self::B::Y% value) → void;
}
-abstract class C extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::C*
+abstract class C extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get field() → core::int*;
- abstract set field(covariant-by-class core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get field() → core::int;
+ abstract set field(covariant-by-class core::int value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart
index f75c979..49a950a 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- T m<T>(int a, {String b, T c}) => null;
+ T m<T>(int a, {required String b, required T c}) => throw '';
}
-main() {
- var /*@ type=double* */ y =
- new C(). /*@ typeArgs=double* */ /*@target=C.m*/ m(1, b: 'bbb', c: 2.0);
+test() {
+ var /*@type=double*/ y =
+ new C(). /*@typeArgs=double*/ /*@target=C.m*/ m(1, b: 'bbb', c: 2.0);
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline.expect
index cc2c7b6..8932217 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- T m<T>(int a, {String b, T c}) => null;
+ T m<T>(int a, {required String b, required T c}) => throw '';
}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline_modelled.expect
index cc2c7b6..8932217 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- T m<T>(int a, {String b, T c}) => null;
+ T m<T>(int a, {required String b, required T c}) => throw '';
}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.expect
index 6d31625..d38b941 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, {core::String* b = #C1, self::C::m::T* c = #C1}) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, {required core::String b = #C1, required self::C::m::T% c = #C1}) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, b: "bbb", c: 2.0){(core::int*, {b: core::String*, c: core::double*}) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, b: "bbb", c: 2.0){(core::int, {required b: core::String, required c: core::double}) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.modular.expect
index 6d31625..d38b941 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, {core::String* b = #C1, self::C::m::T* c = #C1}) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, {required core::String b = #C1, required self::C::m::T% c = #C1}) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, b: "bbb", c: 2.0){(core::int*, {b: core::String*, c: core::double*}) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, b: "bbb", c: 2.0){(core::int, {required b: core::String, required c: core::double}) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.outline.expect
index 01a5825..9fe32d8 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method m<T extends core::Object* = dynamic>(core::int* a, {core::String* b = null, self::C::m::T* c = null}) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(core::int a, {required core::String b = null, required self::C::m::T% c = null}) → self::C::m::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.transformed.expect
index 6d31625..d38b941 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_named.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, {core::String* b = #C1, self::C::m::T* c = #C1}) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, {required core::String b = #C1, required self::C::m::T% c = #C1}) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, b: "bbb", c: 2.0){(core::int*, {b: core::String*, c: core::double*}) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, b: "bbb", c: 2.0){(core::int, {required b: core::String, required c: core::double}) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart
index be42411..3c797a5 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- T m<T>(int a, [T b]) => null;
+ T m<T>(int a, [T? b]) => throw '';
}
-main() {
- var /*@ type=double* */ y =
- new C(). /*@ typeArgs=double* */ /*@target=C.m*/ m(1, 2.0);
+test() {
+ var /*@type=double*/ y =
+ new C(). /*@typeArgs=double*/ /*@target=C.m*/ m(1, 2.0);
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline.expect
index 20477ee..b3adf6c 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- T m<T>(int a, [T b]) => null;
+ T m<T>(int a, [T? b]) => throw '';
}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline_modelled.expect
index 20477ee..b3adf6c 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- T m<T>(int a, [T b]) => null;
+ T m<T>(int a, [T? b]) => throw '';
}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.expect
index 5c86982..0a80fac2 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, [self::C::m::T* b = #C1]) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, [self::C::m::T? b = #C1]) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, 2.0){(core::int*, [core::double*]) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, 2.0){(core::int, [core::double?]) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.modular.expect
index 5c86982..0a80fac2 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, [self::C::m::T* b = #C1]) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, [self::C::m::T? b = #C1]) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, 2.0){(core::int*, [core::double*]) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, 2.0){(core::int, [core::double?]) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.outline.expect
index 5e7e617..eb619b2 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method m<T extends core::Object* = dynamic>(core::int* a, [self::C::m::T* b = null]) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(core::int a, [self::C::m::T? b = null]) → self::C::m::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.transformed.expect
index 5c86982..0a80fac2 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, [self::C::m::T* b = #C1]) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, [self::C::m::T? b = #C1]) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, 2.0){(core::int*, [core::double*]) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, 2.0){(core::int, [core::double?]) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart
index dee5df5..a0bd876 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- T m<T>(int a, [String b, T c]) => null;
+ T m<T>(int a, [String? b, T? c]) => throw '';
}
-main() {
- var /*@ type=double* */ y =
- new C(). /*@ typeArgs=double* */ /*@target=C.m*/ m(1, 'bbb', 2.0);
+test() {
+ var /*@type=double*/ y =
+ new C(). /*@typeArgs=double*/ /*@target=C.m*/ m(1, 'bbb', 2.0);
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline.expect
index 618f63f..fe4e827 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- T m<T>(int a, [String b, T c]) => null;
+ T m<T>(int a, [String? b, T? c]) => throw '';
}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline_modelled.expect
index 618f63f..fe4e827 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- T m<T>(int a, [String b, T c]) => null;
+ T m<T>(int a, [String? b, T? c]) => throw '';
}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.expect
index 7af5aa7..85f0d40 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, [core::String* b = #C1, self::C::m::T* c = #C1]) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, [core::String? b = #C1, self::C::m::T? c = #C1]) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, "bbb", 2.0){(core::int*, [core::String*, core::double*]) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, "bbb", 2.0){(core::int, [core::String?, core::double?]) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.modular.expect
index 7af5aa7..85f0d40 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, [core::String* b = #C1, self::C::m::T* c = #C1]) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, [core::String? b = #C1, self::C::m::T? c = #C1]) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, "bbb", 2.0){(core::int*, [core::String*, core::double*]) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, "bbb", 2.0){(core::int, [core::String?, core::double?]) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.outline.expect
index 0ed9a74..5a11eb2 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method m<T extends core::Object* = dynamic>(core::int* a, [core::String* b = null, self::C::m::T* c = null]) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(core::int a, [core::String? b = null, self::C::m::T? c = null]) → self::C::m::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.transformed.expect
index 7af5aa7..85f0d40 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_positional2.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(core::int* a, [core::String* b = #C1, self::C::m::T* c = #C1]) → self::C::m::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method m<T extends core::Object? = dynamic>(core::int a, [core::String? b = #C1, self::C::m::T? c = #C1]) → self::C::m::T%
+ return throw "";
}
-static method main() → dynamic {
- core::double* y = new self::C::•().{self::C::m}<core::double*>(1, "bbb", 2.0){(core::int*, [core::String*, core::double*]) →* core::double*};
+static method test() → dynamic {
+ core::double y = new self::C::•().{self::C::m}<core::double>(1, "bbb", 2.0){(core::int, [core::String?, core::double?]) → core::double};
}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart
index de8a733..7a05aeb 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,5 +10,5 @@
}
main() {
- var /*@ type=int* */ y = new C(). /*@ typeArgs=int* */ /*@target=C.m*/ m(42);
+ var /*@type=int*/ y = new C(). /*@typeArgs=int*/ /*@target=C.m*/ m(42);
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline.expect
index f8fd8be..62d0c61 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline_modelled.expect
index f8fd8be..62d0c61 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.expect
index 4435be3..b159909 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::int* y = new self::C::•().{self::C::m}<core::int*>(42){(core::int*) →* core::int*};
+ core::int y = new self::C::•().{self::C::m}<core::int>(42){(core::int) → core::int};
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.modular.expect
index 4435be3..b159909 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.modular.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::int* y = new self::C::•().{self::C::m}<core::int*>(42){(core::int*) →* core::int*};
+ core::int y = new self::C::•().{self::C::m}<core::int>(42){(core::int) → core::int};
}
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.outline.expect
index 0fac54e..a976944 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.transformed.expect
index 4435be3..b159909 100644
--- a/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_generic_method_type_required.dart.weak.transformed.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method m<T extends core::Object* = dynamic>(self::C::m::T* x) → self::C::m::T*
+ method m<T extends core::Object? = dynamic>(self::C::m::T% x) → self::C::m::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::int* y = new self::C::•().{self::C::m}<core::int*>(42){(core::int*) →* core::int*};
+ core::int y = new self::C::•().{self::C::m}<core::int>(42){(core::int) → core::int};
}
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart
index 4d1bac2..203adfa 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline.expect
index d41ad8c..110bf8d 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline_modelled.expect
index d41ad8c..110bf8d 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.expect
index b45aed1..308bbb2 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::double value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::double*;
+ abstract get x() → core::double;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.modular.expect
index b45aed1..308bbb2 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::double value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::double*;
+ abstract get x() → core::double;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.outline.expect
index 72b9d57..5183c8a 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::double value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::double*;
+ abstract get x() → core::double;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.transformed.expect
index b45aed1..308bbb2 100644
--- a/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_cross_to_setter.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::double value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::double*;
+ abstract get x() → core::double;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart
index 9643e6d..7469d08 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline.expect
index d31cc08..32a29d8 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline_modelled.expect
index 4c03b67..1b7bfe1 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class B implements C {
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.expect
index a1ce381..13d57b1 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
- return self::f() as{TypeError,ForDynamic} core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get x() → core::int
+ return self::f() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
static method f() → dynamic
return null;
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.modular.expect
index a1ce381..13d57b1 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.modular.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
- return self::f() as{TypeError,ForDynamic} core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get x() → core::int
+ return self::f() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
static method f() → dynamic
return null;
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.outline.expect
index 0295989..079c7dd 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.outline.expect
@@ -1,52 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- get x() → core::int*
+ get x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
static method f() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.transformed.expect
index a1ce381..13d57b1 100644
--- a/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_getter_from_later_inferred_getter.dart.weak.transformed.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
- return self::f() as{TypeError,ForDynamic} core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get x() → core::int
+ return self::f() as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
static method f() → dynamic
return null;
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart
index 7bee8a2..7154a49 100644
--- a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -35,8 +37,8 @@
},
];
// Instance creation too
- var /*@ type=Foo<List<Folder*>*>* */ foo = new Foo<List<Folder>>(
- /*@ typeArgs=Folder* */ [
- /*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgA/lib/')
- ]);
+ var /*@ type=Foo<List<Folder*>*>* */ foo =
+ new Foo<List<Folder>>(/*@ typeArgs=Folder* */ [
+ /*info:DOWN_CAST_IMPLICIT*/ getResource('/pkgA/lib/')
+ ]);
}
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart
new file mode 100644
index 0000000..8c5c380
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart
@@ -0,0 +1,32 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class Folder {}
+
+class Resource extends Folder {}
+
+Resource getResource(String str) => throw '';
+
+class Foo<T> {
+ Foo(T t);
+}
+
+test() {
+ // List inside map
+ var /*@type=Map<String, List<Folder>>*/ map = <String, List<Folder>>{
+ 'pkgA': /*@typeArgs=Folder*/ [getResource('/pkgA/lib/')],
+ 'pkgB': /*@typeArgs=Folder*/ [getResource('/pkgB/lib/')]
+ };
+ // Also try map inside list
+ var /*@type=List<Map<String, Folder>>*/ list = <Map<String, Folder>>[
+ /*@typeArgs=String, Folder*/ {'pkgA': getResource('/pkgA/lib/')},
+ /*@typeArgs=String, Folder*/ {'pkgB': getResource('/pkgB/lib/')},
+ ];
+ // Instance creation too
+ var /*@type=Foo<List<Folder>>*/ foo =
+ new Foo<List<Folder>>(/*@typeArgs=Folder*/ [getResource('/pkgA/lib/')]);
+}
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.textual_outline.expect
new file mode 100644
index 0000000..d40d59e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.textual_outline.expect
@@ -0,0 +1,13 @@
+library test;
+
+class Folder {}
+
+class Resource extends Folder {}
+
+Resource getResource(String str) => throw '';
+
+class Foo<T> {
+ Foo(T t);
+}
+
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..30e3e71
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.textual_outline_modelled.expect
@@ -0,0 +1,13 @@
+library test;
+
+Resource getResource(String str) => throw '';
+
+class Folder {}
+
+class Foo<T> {
+ Foo(T t);
+}
+
+class Resource extends Folder {}
+
+test() {}
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.expect
new file mode 100644
index 0000000..332cfc7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.expect
@@ -0,0 +1,26 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Folder extends core::Object {
+ synthetic constructor •() → self::Folder
+ : super core::Object::•()
+ ;
+}
+class Resource extends self::Folder {
+ synthetic constructor •() → self::Resource
+ : super self::Folder::•()
+ ;
+}
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::Foo::T% t) → self::Foo<self::Foo::T%>
+ : super core::Object::•()
+ ;
+}
+static method getResource(core::String str) → self::Resource
+ return throw "";
+static method test() → dynamic {
+ core::Map<core::String, core::List<self::Folder>> map = <core::String, core::List<self::Folder>>{"pkgA": <self::Folder>[self::getResource("/pkgA/lib/")], "pkgB": <self::Folder>[self::getResource("/pkgB/lib/")]};
+ core::List<core::Map<core::String, self::Folder>> list = <core::Map<core::String, self::Folder>>[<core::String, self::Folder>{"pkgA": self::getResource("/pkgA/lib/")}, <core::String, self::Folder>{"pkgB": self::getResource("/pkgB/lib/")}];
+ self::Foo<core::List<self::Folder>> foo = new self::Foo::•<core::List<self::Folder>>(<self::Folder>[self::getResource("/pkgA/lib/")]);
+}
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.modular.expect
new file mode 100644
index 0000000..332cfc7
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.modular.expect
@@ -0,0 +1,26 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Folder extends core::Object {
+ synthetic constructor •() → self::Folder
+ : super core::Object::•()
+ ;
+}
+class Resource extends self::Folder {
+ synthetic constructor •() → self::Resource
+ : super self::Folder::•()
+ ;
+}
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::Foo::T% t) → self::Foo<self::Foo::T%>
+ : super core::Object::•()
+ ;
+}
+static method getResource(core::String str) → self::Resource
+ return throw "";
+static method test() → dynamic {
+ core::Map<core::String, core::List<self::Folder>> map = <core::String, core::List<self::Folder>>{"pkgA": <self::Folder>[self::getResource("/pkgA/lib/")], "pkgB": <self::Folder>[self::getResource("/pkgB/lib/")]};
+ core::List<core::Map<core::String, self::Folder>> list = <core::Map<core::String, self::Folder>>[<core::String, self::Folder>{"pkgA": self::getResource("/pkgA/lib/")}, <core::String, self::Folder>{"pkgB": self::getResource("/pkgB/lib/")}];
+ self::Foo<core::List<self::Folder>> foo = new self::Foo::•<core::List<self::Folder>>(<self::Folder>[self::getResource("/pkgA/lib/")]);
+}
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.outline.expect
new file mode 100644
index 0000000..38c9050
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.outline.expect
@@ -0,0 +1,20 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Folder extends core::Object {
+ synthetic constructor •() → self::Folder
+ ;
+}
+class Resource extends self::Folder {
+ synthetic constructor •() → self::Resource
+ ;
+}
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::Foo::T% t) → self::Foo<self::Foo::T%>
+ ;
+}
+static method getResource(core::String str) → self::Resource
+ ;
+static method test() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.transformed.expect
new file mode 100644
index 0000000..8ae7d0a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/infer_list_literal_nested_in_map_literal2.dart.weak.transformed.expect
@@ -0,0 +1,26 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Folder extends core::Object {
+ synthetic constructor •() → self::Folder
+ : super core::Object::•()
+ ;
+}
+class Resource extends self::Folder {
+ synthetic constructor •() → self::Resource
+ : super self::Folder::•()
+ ;
+}
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::Foo::T% t) → self::Foo<self::Foo::T%>
+ : super core::Object::•()
+ ;
+}
+static method getResource(core::String str) → self::Resource
+ return throw "";
+static method test() → dynamic {
+ core::Map<core::String, core::List<self::Folder>> map = <core::String, core::List<self::Folder>>{"pkgA": core::_GrowableList::_literal1<self::Folder>(self::getResource("/pkgA/lib/")), "pkgB": core::_GrowableList::_literal1<self::Folder>(self::getResource("/pkgB/lib/"))};
+ core::List<core::Map<core::String, self::Folder>> list = core::_GrowableList::_literal2<core::Map<core::String, self::Folder>>(<core::String, self::Folder>{"pkgA": self::getResource("/pkgA/lib/")}, <core::String, self::Folder>{"pkgB": self::getResource("/pkgB/lib/")});
+ self::Foo<core::List<self::Folder>> foo = new self::Foo::•<core::List<self::Folder>>(core::_GrowableList::_literal1<self::Folder>(self::getResource("/pkgA/lib/")));
+}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart
index 4cb24f0..8629ddc 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -14,7 +14,7 @@
g() => 0;
/*@testedFeatures=inference*/
- var /*@type=() ->* invalid-type*/ v = f;
+ var /*@type=() -> invalid-type*/ v = f;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline.expect
index 84bb5b3..c70c84a 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test() {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline_modelled.expect
index 630ead4..10819ea 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.expect b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.expect
index 588ca83..5d0e6d4 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,9 +25,9 @@
invalid-expression "pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart:14:3: Error: Can't declare 'g' because it was already used in this scope.
g() => 0;
^";
- function g() → core::int*
+ function g() → core::int
return 0;
}
- () →* invalid-type v = f;
+ () → invalid-type v = f;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.modular.expect
index 588ca83..5d0e6d4 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,9 +25,9 @@
invalid-expression "pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart:14:3: Error: Can't declare 'g' because it was already used in this scope.
g() => 0;
^";
- function g() → core::int*
+ function g() → core::int
return 0;
}
- () →* invalid-type v = f;
+ () → invalid-type v = f;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.outline.expect
index 8e85697..100b8e9 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.transformed.expect
index 588ca83..5d0e6d4 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -25,9 +25,9 @@
invalid-expression "pkg/front_end/testcases/inference/infer_local_function_referenced_before_declaration.dart:14:3: Error: Can't declare 'g' because it was already used in this scope.
g() => 0;
^";
- function g() → core::int*
+ function g() → core::int
return 0;
}
- () →* invalid-type v = f;
+ () → invalid-type v = f;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart
index dc8025f..aa5b7c5 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart
@@ -1,44 +1,44 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test() {
- /*@ returnType=int* */ f0() => 42;
- /*@ returnType=Future<int*>* */ f1() async => 42;
+ /*@returnType=int*/ f0() => 42;
+ /*@returnType=Future<int>*/ f1() async => 42;
- /*@ returnType=int* */ f2() {
+ /*@returnType=int*/ f2() {
return 42;
}
- /*@ returnType=Future<int*>* */ f3() async {
+ /*@returnType=Future<int>*/ f3() async {
return 42;
}
- /*@ returnType=Iterable<int*>* */ f4() sync* {
+ /*@returnType=Iterable<int>*/ f4() sync* {
yield 42;
}
- /*@ returnType=Stream<int*>* */ f5() async* {
+ /*@returnType=Stream<int>*/ f5() async* {
yield 42;
}
num f6() => 42;
/*@ returnType=dynamic */ f7() => f7();
- /*@ returnType=Stream<int*>* */ f8() => f5();
+ /*@returnType=Stream<int>*/ f8() => f5();
- var /*@ type=() ->* int* */ v0 = f0;
- var /*@ type=() ->* Future<int*>* */ v1 = f1;
- var /*@ type=() ->* int* */ v2 = f2;
- var /*@ type=() ->* Future<int*>* */ v3 = f3;
- var /*@ type=() ->* Iterable<int*>* */ v4 = f4;
- var /*@ type=() ->* Stream<int*>* */ v5 = f5;
- var /*@ type=() ->* num* */ v6 = f6;
- var /*@ type=() ->* dynamic */ v7 = f7;
- var /*@ type=() ->* Stream<int*>* */ v8 = f8;
+ var /*@type=() -> int*/ v0 = f0;
+ var /*@type=() -> Future<int>*/ v1 = f1;
+ var /*@type=() -> int*/ v2 = f2;
+ var /*@type=() -> Future<int>*/ v3 = f3;
+ var /*@type=() -> Iterable<int>*/ v4 = f4;
+ var /*@type=() -> Stream<int>*/ v5 = f5;
+ var /*@type=() -> num*/ v6 = f6;
+ var /*@type=() -> dynamic*/ v7 = f7;
+ var /*@type=() -> Stream<int>*/ v8 = f8;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline.expect
index 84bb5b3..c70c84a 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test() {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline_modelled.expect
index 630ead4..10819ea 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.expect
index 9486b2b..837b3c1 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.expect
@@ -1,39 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
static method test() → dynamic {
- function f0() → core::int*
+ function f0() → core::int
return 42;
- function f1() → asy::Future<core::int*>* async /* futureValueType= core::int* */
+ function f1() → asy::Future<core::int> async /* futureValueType= core::int */
return 42;
- function f2() → core::int* {
+ function f2() → core::int {
return 42;
}
- function f3() → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+ function f3() → asy::Future<core::int> async /* futureValueType= core::int */ {
return 42;
}
- function f4() → core::Iterable<core::int*>* sync* {
+ function f4() → core::Iterable<core::int> sync* {
yield 42;
}
- function f5() → asy::Stream<core::int*>* async* {
+ function f5() → asy::Stream<core::int> async* {
yield 42;
}
- function f6() → core::num*
+ function f6() → core::num
return 42;
function f7() → dynamic
- return f7(){() →* dynamic};
- function f8() → asy::Stream<core::int*>*
- return f5(){() →* asy::Stream<core::int*>*};
- () →* core::int* v0 = f0;
- () →* asy::Future<core::int*>* v1 = f1;
- () →* core::int* v2 = f2;
- () →* asy::Future<core::int*>* v3 = f3;
- () →* core::Iterable<core::int*>* v4 = f4;
- () →* asy::Stream<core::int*>* v5 = f5;
- () →* core::num* v6 = f6;
- () →* dynamic v7 = f7;
- () →* asy::Stream<core::int*>* v8 = f8;
+ return f7(){() → dynamic};
+ function f8() → asy::Stream<core::int>
+ return f5(){() → asy::Stream<core::int>};
+ () → core::int v0 = f0;
+ () → asy::Future<core::int> v1 = f1;
+ () → core::int v2 = f2;
+ () → asy::Future<core::int> v3 = f3;
+ () → core::Iterable<core::int> v4 = f4;
+ () → asy::Stream<core::int> v5 = f5;
+ () → core::num v6 = f6;
+ () → dynamic v7 = f7;
+ () → asy::Stream<core::int> v8 = f8;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.modular.expect
index 9486b2b..837b3c1 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.modular.expect
@@ -1,39 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
static method test() → dynamic {
- function f0() → core::int*
+ function f0() → core::int
return 42;
- function f1() → asy::Future<core::int*>* async /* futureValueType= core::int* */
+ function f1() → asy::Future<core::int> async /* futureValueType= core::int */
return 42;
- function f2() → core::int* {
+ function f2() → core::int {
return 42;
}
- function f3() → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+ function f3() → asy::Future<core::int> async /* futureValueType= core::int */ {
return 42;
}
- function f4() → core::Iterable<core::int*>* sync* {
+ function f4() → core::Iterable<core::int> sync* {
yield 42;
}
- function f5() → asy::Stream<core::int*>* async* {
+ function f5() → asy::Stream<core::int> async* {
yield 42;
}
- function f6() → core::num*
+ function f6() → core::num
return 42;
function f7() → dynamic
- return f7(){() →* dynamic};
- function f8() → asy::Stream<core::int*>*
- return f5(){() →* asy::Stream<core::int*>*};
- () →* core::int* v0 = f0;
- () →* asy::Future<core::int*>* v1 = f1;
- () →* core::int* v2 = f2;
- () →* asy::Future<core::int*>* v3 = f3;
- () →* core::Iterable<core::int*>* v4 = f4;
- () →* asy::Stream<core::int*>* v5 = f5;
- () →* core::num* v6 = f6;
- () →* dynamic v7 = f7;
- () →* asy::Stream<core::int*>* v8 = f8;
+ return f7(){() → dynamic};
+ function f8() → asy::Stream<core::int>
+ return f5(){() → asy::Stream<core::int>};
+ () → core::int v0 = f0;
+ () → asy::Future<core::int> v1 = f1;
+ () → core::int v2 = f2;
+ () → asy::Future<core::int> v3 = f3;
+ () → core::Iterable<core::int> v4 = f4;
+ () → asy::Stream<core::int> v5 = f5;
+ () → core::num v6 = f6;
+ () → dynamic v7 = f7;
+ () → asy::Stream<core::int> v8 = f8;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.outline.expect
index 8e85697..100b8e9 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.transformed.expect
index 9486b2b..837b3c1 100644
--- a/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_local_function_return_type.dart.weak.transformed.expect
@@ -1,39 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
static method test() → dynamic {
- function f0() → core::int*
+ function f0() → core::int
return 42;
- function f1() → asy::Future<core::int*>* async /* futureValueType= core::int* */
+ function f1() → asy::Future<core::int> async /* futureValueType= core::int */
return 42;
- function f2() → core::int* {
+ function f2() → core::int {
return 42;
}
- function f3() → asy::Future<core::int*>* async /* futureValueType= core::int* */ {
+ function f3() → asy::Future<core::int> async /* futureValueType= core::int */ {
return 42;
}
- function f4() → core::Iterable<core::int*>* sync* {
+ function f4() → core::Iterable<core::int> sync* {
yield 42;
}
- function f5() → asy::Stream<core::int*>* async* {
+ function f5() → asy::Stream<core::int> async* {
yield 42;
}
- function f6() → core::num*
+ function f6() → core::num
return 42;
function f7() → dynamic
- return f7(){() →* dynamic};
- function f8() → asy::Stream<core::int*>*
- return f5(){() →* asy::Stream<core::int*>*};
- () →* core::int* v0 = f0;
- () →* asy::Future<core::int*>* v1 = f1;
- () →* core::int* v2 = f2;
- () →* asy::Future<core::int*>* v3 = f3;
- () →* core::Iterable<core::int*>* v4 = f4;
- () →* asy::Stream<core::int*>* v5 = f5;
- () →* core::num* v6 = f6;
- () →* dynamic v7 = f7;
- () →* asy::Stream<core::int*>* v8 = f8;
+ return f7(){() → dynamic};
+ function f8() → asy::Stream<core::int>
+ return f5(){() → asy::Stream<core::int>};
+ () → core::int v0 = f0;
+ () → asy::Future<core::int> v1 = f1;
+ () → core::int v2 = f2;
+ () → asy::Future<core::int> v3 = f3;
+ () → core::Iterable<core::int> v4 = f4;
+ () → asy::Stream<core::int> v5 = f5;
+ () → core::num v6 = f6;
+ () → dynamic v7 = f7;
+ () → asy::Stream<core::int> v8 = f8;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart b/pkg/front_end/testcases/inference/infer_method_function_typed.dart
index b4737e8..80bab39 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -18,10 +18,10 @@
void x(value());
}
-T f<T>() => null;
+T f<T>() => throw '';
g(B b) {
- b. /*@target=B.x*/ x(/*@ typeArgs=() ->* dynamic */ f());
+ b. /*@target=B.x*/ x(/*@typeArgs=() -> dynamic*/ f());
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline.expect
index 498cc31..68c40ee 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef int F();
@@ -11,6 +10,6 @@
void x(value());
}
-T f<T>() => null;
+T f<T>() => throw '';
g(B b) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline_modelled.expect
index 331b1e1..c368f39 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
abstract class A {
void x(F value);
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.expect b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.expect
index abae228..53547a8 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract method x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract method x(() →* dynamic value) → void;
+ abstract method x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method g(self::B* b) → dynamic {
- b.{self::B::x}(self::f<() →* dynamic>()){(() →* dynamic) →* void};
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method g(self::B b) → dynamic {
+ b.{self::B::x}(self::f<() → dynamic>()){(() → dynamic) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.modular.expect
index abae228..53547a8 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract method x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract method x(() →* dynamic value) → void;
+ abstract method x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method g(self::B* b) → dynamic {
- b.{self::B::x}(self::f<() →* dynamic>()){(() →* dynamic) →* void};
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method g(self::B b) → dynamic {
+ b.{self::B::x}(self::f<() → dynamic>()){(() → dynamic) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.outline.expect
index 70becba..b551b90 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract method x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract method x(() →* dynamic value) → void;
+ abstract method x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method g(self::B* b) → dynamic
+static method g(self::B b) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.transformed.expect
index abae228..53547a8 100644
--- a/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_method_function_typed.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract method x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract method x(() →* dynamic value) → void;
+ abstract method x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method g(self::B* b) → dynamic {
- b.{self::B::x}(self::f<() →* dynamic>()){(() →* dynamic) →* void};
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method g(self::B b) → dynamic {
+ b.{self::B::x}(self::f<() → dynamic>()){(() → dynamic) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart b/pkg/front_end/testcases/inference/infer_method_missing_params.dart
index d82dc58..ef8130c 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline.expect
index 31a8b23..25f7d42 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline_modelled.expect
index 31a8b23..25f7d42 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.expect
index 4b3051b..591eef0 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -35,61 +35,31 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract method f(core::int* x, core::int* y) → core::int*;
- abstract method g(core::int* x, [core::int* y = #C1]) → core::int*;
- abstract method h(core::int* x, {core::int* y = #C1}) → core::int*;
- abstract method i(core::int* x, {core::int* y = #C1}) → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int x, core::int y) → core::int;
+ abstract method g(core::int x, [core::int y = #C1]) → core::int;
+ abstract method h(core::int x, {core::int y = #C1}) → core::int;
+ abstract method i(core::int x, {core::int y = #C1}) → core::int;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract method f(core::int* x) → core::int*;
- abstract method g(core::int* x) → core::int*;
- abstract method h(core::int* x) → core::int*;
- abstract method i(core::int* x, {core::int* z = #C1}) → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int x) → core::int;
+ abstract method g(core::int x) → core::int;
+ abstract method h(core::int x) → core::int;
+ abstract method i(core::int x, {core::int z = #C1}) → core::int;
}
abstract class C extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
abstract method f(invalid-type x, invalid-type y) → invalid-type;
- abstract method g(core::int* x, [core::int* y = #C1]) → core::int*;
- abstract method h(core::int* x, {core::int* y = #C1}) → core::int*;
+ abstract method g(core::int x, [core::int y = #C1]) → core::int;
+ abstract method h(core::int x, {core::int y = #C1}) → core::int;
abstract method i(invalid-type x, {invalid-type y = #C1, invalid-type z = #C1}) → invalid-type;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.modular.expect
index 4b3051b..591eef0 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -35,61 +35,31 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract method f(core::int* x, core::int* y) → core::int*;
- abstract method g(core::int* x, [core::int* y = #C1]) → core::int*;
- abstract method h(core::int* x, {core::int* y = #C1}) → core::int*;
- abstract method i(core::int* x, {core::int* y = #C1}) → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int x, core::int y) → core::int;
+ abstract method g(core::int x, [core::int y = #C1]) → core::int;
+ abstract method h(core::int x, {core::int y = #C1}) → core::int;
+ abstract method i(core::int x, {core::int y = #C1}) → core::int;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract method f(core::int* x) → core::int*;
- abstract method g(core::int* x) → core::int*;
- abstract method h(core::int* x) → core::int*;
- abstract method i(core::int* x, {core::int* z = #C1}) → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int x) → core::int;
+ abstract method g(core::int x) → core::int;
+ abstract method h(core::int x) → core::int;
+ abstract method i(core::int x, {core::int z = #C1}) → core::int;
}
abstract class C extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
abstract method f(invalid-type x, invalid-type y) → invalid-type;
- abstract method g(core::int* x, [core::int* y = #C1]) → core::int*;
- abstract method h(core::int* x, {core::int* y = #C1}) → core::int*;
+ abstract method g(core::int x, [core::int y = #C1]) → core::int;
+ abstract method h(core::int x, {core::int y = #C1}) → core::int;
abstract method i(invalid-type x, {invalid-type y = #C1, invalid-type z = #C1}) → invalid-type;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.outline.expect
index a063f88..96f4708 100644
--- a/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_method_missing_params.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -35,58 +35,28 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract method f(core::int* x, core::int* y) → core::int*;
- abstract method g(core::int* x, [core::int* y = null]) → core::int*;
- abstract method h(core::int* x, {core::int* y = null}) → core::int*;
- abstract method i(core::int* x, {core::int* y = null}) → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int x, core::int y) → core::int;
+ abstract method g(core::int x, [core::int y = null]) → core::int;
+ abstract method h(core::int x, {core::int y = null}) → core::int;
+ abstract method i(core::int x, {core::int y = null}) → core::int;
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract method f(core::int* x) → core::int*;
- abstract method g(core::int* x) → core::int*;
- abstract method h(core::int* x) → core::int*;
- abstract method i(core::int* x, {core::int* z = null}) → core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int x) → core::int;
+ abstract method g(core::int x) → core::int;
+ abstract method h(core::int x) → core::int;
+ abstract method i(core::int x, {core::int z = null}) → core::int;
}
abstract class C extends core::Object implements self::A, self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
abstract method f(invalid-type x, invalid-type y) → invalid-type;
- abstract method g(core::int* x, [core::int* y = null]) → core::int*;
- abstract method h(core::int* x, {core::int* y = null}) → core::int*;
+ abstract method g(core::int x, [core::int y = null]) → core::int;
+ abstract method h(core::int x, {core::int y = null}) → core::int;
abstract method i(invalid-type x, {invalid-type y = null, invalid-type z = null}) → invalid-type;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart
index 61fccbe..dd844e2 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
class D {
- int foo;
+ int foo = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline.expect
index f1a6b35..c1ea0af 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C extends D {
@@ -6,7 +5,7 @@
}
class D {
- int foo;
+ int foo = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline_modelled.expect
index f1a6b35..c1ea0af 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C extends D {
@@ -6,7 +5,7 @@
}
class D {
- int foo;
+ int foo = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.expect
index 516ea9a..814f5b1 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::D::•()
;
- set foo(core::int* x) → void {}
+ set foo(core::int x) → void {}
}
class D extends core::Object {
- field core::int* foo = null;
- synthetic constructor •() → self::D*
+ field core::int foo = 0;
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.modular.expect
index 516ea9a..814f5b1 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::D::•()
;
- set foo(core::int* x) → void {}
+ set foo(core::int x) → void {}
}
class D extends core::Object {
- field core::int* foo = null;
- synthetic constructor •() → self::D*
+ field core::int foo = 0;
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.outline.expect
index 2749c8b..39aa391 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- set foo(core::int* x) → void
+ set foo(core::int x) → void
;
}
class D extends core::Object {
- field core::int* foo;
- synthetic constructor •() → self::D*
+ field core::int foo;
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.transformed.expect
index 516ea9a..814f5b1 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_field.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::D::•()
;
- set foo(core::int* x) → void {}
+ set foo(core::int x) → void {}
}
class D extends core::Object {
- field core::int* foo = null;
- synthetic constructor •() → self::D*
+ field core::int foo = 0;
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart
index d018cc5..bee5d20 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline.expect
index 6305716..275351d 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C extends D {
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline_modelled.expect
index 6305716..275351d 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C extends D {
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.expect
index 84b9408..3c221c2 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::D::•()
;
- set foo(core::int* x) → void {}
+ set foo(core::int x) → void {}
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- set foo(core::int* x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set foo(core::int x) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.modular.expect
index 84b9408..3c221c2 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::D::•()
;
- set foo(core::int* x) → void {}
+ set foo(core::int x) → void {}
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- set foo(core::int* x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set foo(core::int x) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.outline.expect
index f6cb05c..ac9ecfb 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- set foo(core::int* x) → void
+ set foo(core::int x) → void
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- set foo(core::int* x) → void
+ set foo(core::int x) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.transformed.expect
index 84b9408..3c221c2 100644
--- a/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_parameter_type_setter_from_setter.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::D {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::D::•()
;
- set foo(core::int* x) → void {}
+ set foo(core::int x) → void {}
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- set foo(core::int* x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set foo(core::int x) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart b/pkg/front_end/testcases/inference/infer_prefix_expression.dart
index e560aca..5c06bcc 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline.expect
index 5b25c8a..a4602b1 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a_not = !true;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline_modelled.expect
index 6b119bc..927498a 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.expect
index ec7b742..1609795 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_not = !true;
-static field core::int* a_complement = 1.{core::int::~}(){() →* core::int*};
-static field core::int* a_negate = 1.{core::int::unary-}(){() →* core::int*};
+static field core::bool a_not = !true;
+static field core::int a_complement = 1.{core::int::~}(){() → core::int};
+static field core::int a_negate = 1.{core::int::unary-}(){() → core::int};
static method main() → dynamic {
self::a_not;
self::a_complement;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.modular.expect
index ec7b742..1609795 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_not = !true;
-static field core::int* a_complement = 1.{core::int::~}(){() →* core::int*};
-static field core::int* a_negate = 1.{core::int::unary-}(){() →* core::int*};
+static field core::bool a_not = !true;
+static field core::int a_complement = 1.{core::int::~}(){() → core::int};
+static field core::int a_negate = 1.{core::int::unary-}(){() → core::int};
static method main() → dynamic {
self::a_not;
self::a_complement;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.outline.expect
index 5594f99..4f90aa6 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_not;
-static field core::int* a_complement;
-static field core::int* a_negate;
+static field core::bool a_not;
+static field core::int a_complement;
+static field core::int a_negate;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.transformed.expect
index 23ef7a8..991b4b8 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a_not = !true;
-static field core::int* a_complement = 1.{core::int::~}(){() →* core::int*};
-static field core::int* a_negate = 1.{core::int::unary-}(){() →* core::int*};
+static field core::bool a_not = !true;
+static field core::int a_complement = 1.{core::int::~}(){() → core::int};
+static field core::int a_negate = 1.{core::int::unary-}(){() → core::int};
static method main() → dynamic {
self::a_not;
self::a_complement;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart
index d12427a..e0ac0b7 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline.expect
index dc28335..c9d8c68 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline_modelled.expect
index 5d232fa..1cedf13 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.expect
index 2c6f832..dc773dd 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- constructor •() → self::A*
+ constructor •() → self::A
: super core::Object::•()
;
- operator ~() → core::int*
+ operator ~() → core::int
return 1;
- operator unary-() → core::double*
+ operator unary-() → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* v_complement = self::a.{self::A::~}(){() →* core::int*};
-static field core::double* v_negate = self::a.{self::A::unary-}(){() →* core::double*};
+static field self::A a = new self::A::•();
+static field core::int v_complement = self::a.{self::A::~}(){() → core::int};
+static field core::double v_negate = self::a.{self::A::unary-}(){() → core::double};
static method main() → dynamic {
self::a;
self::v_complement;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.modular.expect
index 2c6f832..dc773dd 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- constructor •() → self::A*
+ constructor •() → self::A
: super core::Object::•()
;
- operator ~() → core::int*
+ operator ~() → core::int
return 1;
- operator unary-() → core::double*
+ operator unary-() → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* v_complement = self::a.{self::A::~}(){() →* core::int*};
-static field core::double* v_negate = self::a.{self::A::unary-}(){() →* core::double*};
+static field self::A a = new self::A::•();
+static field core::int v_complement = self::a.{self::A::~}(){() → core::int};
+static field core::double v_negate = self::a.{self::A::unary-}(){() → core::double};
static method main() → dynamic {
self::a;
self::v_complement;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.outline.expect
index c5878c4..c9843a1 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- constructor •() → self::A*
+ constructor •() → self::A
;
- operator ~() → core::int*
+ operator ~() → core::int
;
- operator unary-() → core::double*
+ operator unary-() → core::double
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a;
-static field core::int* v_complement;
-static field core::double* v_negate;
+static field self::A a;
+static field core::int v_complement;
+static field core::double v_negate;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.transformed.expect
index 2c6f832..dc773dd 100644
--- a/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_prefix_expression_custom.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- constructor •() → self::A*
+ constructor •() → self::A
: super core::Object::•()
;
- operator ~() → core::int*
+ operator ~() → core::int
return 1;
- operator unary-() → core::double*
+ operator unary-() → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* v_complement = self::a.{self::A::~}(){() →* core::int*};
-static field core::double* v_negate = self::a.{self::A::unary-}(){() →* core::double*};
+static field self::A a = new self::A::•();
+static field core::int v_complement = self::a.{self::A::~}(){() → core::int};
+static field core::double v_negate = self::a.{self::A::unary-}(){() → core::double};
static method main() → dynamic {
self::a;
self::v_complement;
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart b/pkg/front_end/testcases/inference/infer_rethrow.dart
index e5b6dde..429181b 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline.expect
index c2a28c2..a3b6c53 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test(f(), g()) {}
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline_modelled.expect
index d2b8e93..8a9809c 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.expect b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.expect
index 1e36c8b..ff8d755 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.expect
@@ -1,12 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test(() →* dynamic f, () →* dynamic g) → dynamic {
+static method test(() → dynamic f, () → dynamic g) → dynamic {
try {
- f(){() →* dynamic};
+ f(){() → dynamic};
}
- on dynamic catch(final dynamic _) {
- g(){() →* dynamic};
+ on core::Object catch(final core::Object _) {
+ g(){() → dynamic};
rethrow;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.modular.expect
index 1e36c8b..ff8d755 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.modular.expect
@@ -1,12 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test(() →* dynamic f, () →* dynamic g) → dynamic {
+static method test(() → dynamic f, () → dynamic g) → dynamic {
try {
- f(){() →* dynamic};
+ f(){() → dynamic};
}
- on dynamic catch(final dynamic _) {
- g(){() →* dynamic};
+ on core::Object catch(final core::Object _) {
+ g(){() → dynamic};
rethrow;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.outline.expect
index f5034cd..bee51fa 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
-static method test(() →* dynamic f, () →* dynamic g) → dynamic
+static method test(() → dynamic f, () → dynamic g) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.transformed.expect
index 1e36c8b..ff8d755 100644
--- a/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_rethrow.dart.weak.transformed.expect
@@ -1,12 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test(() →* dynamic f, () →* dynamic g) → dynamic {
+static method test(() → dynamic f, () → dynamic g) → dynamic {
try {
- f(){() →* dynamic};
+ f(){() → dynamic};
}
- on dynamic catch(final dynamic _) {
- g(){() →* dynamic};
+ on core::Object catch(final core::Object _) {
+ g(){() → dynamic};
rethrow;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart
index 3c3b35d..7b200b6 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<String> strings() {
- var /*@ type=Iterable<String*>* */ stuff = /*@ typeArgs=dynamic */ []
- . /*@ typeArgs=String* */ /*@target=Iterable.expand*/ expand(
- /*@ returnType=List<String*>* */ (/*@ type=dynamic */ i) {
+ var /*@type=Iterable<String>*/ stuff = /*@ typeArgs=dynamic */ []
+ . /*@typeArgs=String*/ /*@target=Iterable.expand*/ expand(
+ /*@returnType=List<String>*/ (/*@ type=dynamic */ i) {
return <String>[];
});
return stuff. /*@target=Iterable.toList*/ toList();
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline.expect
index c48500e..4707e1b 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<String> strings() {}
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline_modelled.expect
index c48500e..4707e1b 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<String> strings() {}
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.expect
index cdbf9e5..b89f5a9 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method strings() → core::List<core::String*>* {
- core::Iterable<core::String*>* stuff = <dynamic>[].{core::Iterable::expand}<core::String*>((dynamic i) → core::List<core::String*>* {
- return <core::String*>[];
- }){((dynamic) →* core::Iterable<core::String*>*) →* core::Iterable<core::String*>*};
- return stuff.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+static method strings() → core::List<core::String> {
+ core::Iterable<core::String> stuff = <dynamic>[].{core::Iterable::expand}<core::String>((dynamic i) → core::List<core::String> {
+ return <core::String>[];
+ }){((dynamic) → core::Iterable<core::String>) → core::Iterable<core::String>};
+ return stuff.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
}
static method main() → dynamic {
self::strings();
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.modular.expect
index cdbf9e5..b89f5a9 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method strings() → core::List<core::String*>* {
- core::Iterable<core::String*>* stuff = <dynamic>[].{core::Iterable::expand}<core::String*>((dynamic i) → core::List<core::String*>* {
- return <core::String*>[];
- }){((dynamic) →* core::Iterable<core::String*>*) →* core::Iterable<core::String*>*};
- return stuff.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+static method strings() → core::List<core::String> {
+ core::Iterable<core::String> stuff = <dynamic>[].{core::Iterable::expand}<core::String>((dynamic i) → core::List<core::String> {
+ return <core::String>[];
+ }){((dynamic) → core::Iterable<core::String>) → core::Iterable<core::String>};
+ return stuff.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
}
static method main() → dynamic {
self::strings();
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.outline.expect
index 628cf39..a8ce442 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method strings() → core::List<core::String*>*
+static method strings() → core::List<core::String>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.transformed.expect
index 02da645..d2ce584 100644
--- a/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_return_of_statement_lambda.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method strings() → core::List<core::String*>* {
- core::Iterable<core::String*>* stuff = core::_GrowableList::•<dynamic>(0).{core::Iterable::expand}<core::String*>((dynamic i) → core::List<core::String*>* {
- return core::_GrowableList::•<core::String*>(0);
- }){((dynamic) →* core::Iterable<core::String*>*) →* core::Iterable<core::String*>*};
- return stuff.{core::Iterable::toList}(){({growable: core::bool*}) →* core::List<core::String*>*};
+static method strings() → core::List<core::String> {
+ core::Iterable<core::String> stuff = core::_GrowableList::•<dynamic>(0).{core::Iterable::expand}<core::String>((dynamic i) → core::List<core::String> {
+ return core::_GrowableList::•<core::String>(0);
+ }){((dynamic) → core::Iterable<core::String>) → core::Iterable<core::String>};
+ return stuff.{core::Iterable::toList}(){({growable: core::bool}) → core::List<core::String>};
}
static method main() → dynamic {
self::strings();
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart
index eecbe3e..972b299 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline.expect
index 11143e3..659aede 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline_modelled.expect
index 2ae53a8..5e7be8e 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.expect
index 3259075..c782bb9 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static set foo(core::int* x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static set foo(core::int x) → void {}
}
-static set bar(core::int* x) → void {}
+static set bar(core::int x) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.modular.expect
index 3259075..c782bb9 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static set foo(core::int* x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static set foo(core::int x) → void {}
}
-static set bar(core::int* x) → void {}
+static set bar(core::int x) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.outline.expect
index a04ec21..00ebe98 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- static set foo(core::int* x) → void
+ static set foo(core::int x) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static set bar(core::int* x) → void
+static set bar(core::int x) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.transformed.expect
index 3259075..c782bb9 100644
--- a/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_return_type_for_static_setter.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static set foo(core::int* x) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static set foo(core::int x) → void {}
}
-static set bar(core::int* x) → void {}
+static set bar(core::int x) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart
index e2d45c7..219dca0 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline.expect
index 2c75d8f..250fada 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline_modelled.expect
index 2c75d8f..250fada 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.expect
index 8778884..3b99533 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(core::double* value) → void;
+ abstract set x(core::double value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.modular.expect
index 8778884..3b99533 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(core::double* value) → void;
+ abstract set x(core::double value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.outline.expect
index 666671e..9bf49dc 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract set x(core::double* value) → void;
+ abstract set x(core::double value) → void;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.transformed.expect
index 8778884..3b99533 100644
--- a/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_cross_to_getter.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::double*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::double;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(core::double* value) → void;
+ abstract set x(core::double value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart
index 0b5e995..c0ae645 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline.expect
index acb59bc..9f48a64 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A implements B {
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline_modelled.expect
index bc86501..c70b4f6 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class B implements C {
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.expect
index 70ec7fa..11e507b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.modular.expect
index 70ec7fa..11e507b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.modular.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.outline.expect
index 9618de0..8627281 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.outline.expect
@@ -1,52 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- set x(core::int* value) → void
+ set x(core::int value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.transformed.expect
index 70ec7fa..11e507b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_from_later_inferred_setter.dart.weak.transformed.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object implements self::B {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
abstract class B extends core::Object implements self::C {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
abstract class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract set x(core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::int value) → void;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart
index 7cc3567..6559900 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -18,10 +18,10 @@
void set x(value());
}
-T f<T>() => null;
+T f<T>() => throw '';
g(B b) {
- b. /*@target=B.x*/ x = /*@ typeArgs=() ->* dynamic */ f();
+ b. /*@target=B.x*/ x = /*@typeArgs=() -> dynamic*/ f();
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline.expect
index 3ab13ad..209314b 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef int F();
@@ -11,6 +10,6 @@
void set x(value());
}
-T f<T>() => null;
+T f<T>() => throw '';
g(B b) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline_modelled.expect
index 80b45c3..02a7aa4 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
abstract class A {
void set x(F value);
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.expect b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.expect
index 6c97fd8..bd97f3e 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(() →* dynamic value) → void;
+ abstract set x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method g(self::B* b) → dynamic {
- b.{self::B::x} = self::f<() →* dynamic>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method g(self::B b) → dynamic {
+ b.{self::B::x} = self::f<() → dynamic>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.modular.expect
index 6c97fd8..bd97f3e 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(() →* dynamic value) → void;
+ abstract set x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method g(self::B* b) → dynamic {
- b.{self::B::x} = self::f<() →* dynamic>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method g(self::B b) → dynamic {
+ b.{self::B::x} = self::f<() → dynamic>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.outline.expect
index f027c5f..1f38275 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.outline.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract set x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract set x(() →* dynamic value) → void;
+ abstract set x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method g(self::B* b) → dynamic
+static method g(self::B b) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.transformed.expect
index 6c97fd8..bd97f3e 100644
--- a/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_function_typed.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(() →* core::int* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(() → core::int value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(() →* dynamic value) → void;
+ abstract set x(() → dynamic value) → void;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method g(self::B* b) → dynamic {
- b.{self::B::x} = self::f<() →* dynamic>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method g(self::B b) → dynamic {
+ b.{self::B::x} = self::f<() → dynamic>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
index 86fd389..b8c2734 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline.expect
index 831f785..eb6e1ec 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline_modelled.expect
index 831f785..eb6e1ec 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.expect
index a14272b..1576c76 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::int* i) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int i) → void {}
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- set x(core::Object* o) → void {}
+ set x(core::Object o) → void {}
}
static method main() → dynamic {
new self::B::•().{self::B::x} = "hello";
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.modular.expect
index a14272b..1576c76 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::int* i) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int i) → void {}
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- set x(core::Object* o) → void {}
+ set x(core::Object o) → void {}
}
static method main() → dynamic {
new self::B::•().{self::B::x} = "hello";
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.outline.expect
index 2a7cb8a..667399f 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- set x(core::int* i) → void
+ set x(core::int i) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- set x(core::Object* o) → void
+ set x(core::Object o) → void
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.transformed.expect
index a14272b..1576c76 100644
--- a/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_setter_return_type_only.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- set x(core::int* i) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int i) → void {}
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- set x(core::Object* o) → void {}
+ set x(core::Object o) → void {}
}
static method main() → dynamic {
new self::B::•().{self::B::x} = "hello";
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart b/pkg/front_end/testcases/inference/infer_statics_transitively.dart
index d1876c3..8c3c5d0 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline.expect
index a053287..a2adc8c 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_statics_transitively_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline_modelled.expect
index a053287..a2adc8c 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_statics_transitively_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.expect
index 445bbcb..f67a543b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as inf;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = inf::a1;
-static final field core::int* m2 = inf::A::a2;
+static final field core::int m1 = inf::a1;
+static final field core::int m2 = inf::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = self::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf2;
@@ -23,29 +23,19 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf2::b1;
- synthetic constructor •() → inf::A*
+ static final field core::int a2 = inf2::b1;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = self::m2;
+static final field core::int a1 = self::m2;
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf2::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.modular.expect
index 445bbcb..f67a543b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.modular.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as inf;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = inf::a1;
-static final field core::int* m2 = inf::A::a2;
+static final field core::int m1 = inf::a1;
+static final field core::int m2 = inf::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = self::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf2;
@@ -23,29 +23,19 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf2::b1;
- synthetic constructor •() → inf::A*
+ static final field core::int a2 = inf2::b1;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = self::m2;
+static final field core::int a1 = self::m2;
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf2::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.outline.expect
index 2813b54..eaa3baf 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.outline.expect
@@ -1,17 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1;
-static final field core::int* m2;
+static final field core::int m1;
+static final field core::int m2;
static method foo() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
@@ -19,28 +19,18 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2;
- synthetic constructor •() → self2::A*
+ static final field core::int a2;
+ synthetic constructor •() → self2::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1;
+static final field core::int a1;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static final field core::int* b1;
+static final field core::int b1;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.transformed.expect
index 445bbcb..f67a543b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively.dart.weak.transformed.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as inf;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = inf::a1;
-static final field core::int* m2 = inf::A::a2;
+static final field core::int m1 = inf::a1;
+static final field core::int m2 = inf::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = self::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf2;
@@ -23,29 +23,19 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf2::b1;
- synthetic constructor •() → inf::A*
+ static final field core::int a2 = inf2::b1;
+ synthetic constructor •() → inf::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = self::m2;
+static final field core::int a1 = self::m2;
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf2::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart
index dac96b8..40dbc28 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline.expect
index 4dfa0fa..3c1f88e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
const x1 = 1;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline_modelled.expect
index 4dfa0fa..3c1f88e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
const x1 = 1;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.expect
index a530b9e..9bc4861 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* x1 = #C1;
-static final field core::int* x2 = 1;
-static final field core::int* y1 = #C1;
-static final field core::int* y2 = self::x2;
+static const field core::int x1 = #C1;
+static final field core::int x2 = 1;
+static final field core::int y1 = #C1;
+static final field core::int y2 = self::x2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = self::y1;
i = self::y2;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.modular.expect
index a530b9e..9bc4861 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* x1 = #C1;
-static final field core::int* x2 = 1;
-static final field core::int* y1 = #C1;
-static final field core::int* y2 = self::x2;
+static const field core::int x1 = #C1;
+static final field core::int x2 = 1;
+static final field core::int y1 = #C1;
+static final field core::int y2 = self::x2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = self::y1;
i = self::y2;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.outline.expect
index 376e563..ecb9a0b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* x1 = 1;
-static final field core::int* x2;
-static final field core::int* y1;
-static final field core::int* y2;
+static const field core::int x1 = 1;
+static final field core::int x2;
+static final field core::int y1;
+static final field core::int y2;
static method foo() → dynamic
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.transformed.expect
index a530b9e..9bc4861 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively2.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static const field core::int* x1 = #C1;
-static final field core::int* x2 = 1;
-static final field core::int* y1 = #C1;
-static final field core::int* y2 = self::x2;
+static const field core::int x1 = #C1;
+static final field core::int x2 = 1;
+static final field core::int y1 = #C1;
+static final field core::int y2 = self::x2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = self::y1;
i = self::y2;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart
index 0d8a590..16e92d1 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline.expect
index 0a748e0..3ff7fa6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_statics_transitively3_a.dart' show a1, A;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline_modelled.expect
index 8276300..d1e56fa 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_statics_transitively3_a.dart' as p show A, a2;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.expect
index 0f736d7..8b9a4f0 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" show a1, A;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" as p show a2, A;
-static const field core::int* t1 = #C1;
-static const field core::int* t2 = #C1;
-static const field core::int* t3 = #C2;
-static const field core::int* t4 = #C3;
+static const field core::int t1 = #C1;
+static const field core::int t2 = #C1;
+static const field core::int t3 = #C2;
+static const field core::int t4 = #C3;
static const field dynamic t5 = #C4;
static const field dynamic t6 = #C4;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
i = #C1;
i = #C2;
@@ -20,28 +20,18 @@
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = #C4;
- synthetic constructor •() → self2::A*
+ synthetic constructor •() → self2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = #C2;
-static const field core::int* a2 = #C3;
+static const field core::int a1 = #C2;
+static const field core::int a2 = #C3;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.modular.expect
index 0f736d7..8b9a4f0 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.modular.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" show a1, A;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" as p show a2, A;
-static const field core::int* t1 = #C1;
-static const field core::int* t2 = #C1;
-static const field core::int* t3 = #C2;
-static const field core::int* t4 = #C3;
+static const field core::int t1 = #C1;
+static const field core::int t2 = #C1;
+static const field core::int t3 = #C2;
+static const field core::int t4 = #C3;
static const field dynamic t5 = #C4;
static const field dynamic t6 = #C4;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
i = #C1;
i = #C2;
@@ -20,28 +20,18 @@
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = #C4;
- synthetic constructor •() → self2::A*
+ synthetic constructor •() → self2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = #C2;
-static const field core::int* a2 = #C3;
+static const field core::int a1 = #C2;
+static const field core::int a2 = #C3;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.outline.expect
index f02cb50..b6d51b5 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively3_a.dart" as inf;
@@ -6,10 +6,10 @@
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" show a1, A;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" as p show a2, A;
-static const field core::int* t1 = 1;
-static const field core::int* t2 = self::t1;
-static const field core::int* t3 = inf::a1;
-static const field core::int* t4 = inf::a2;
+static const field core::int t1 = 1;
+static const field core::int t2 = self::t1;
+static const field core::int t3 = inf::a1;
+static const field core::int t4 = inf::a2;
static const field dynamic t5 = inf::A::a3;
static const field dynamic t6 = inf::A::a3;
static method foo() → dynamic
@@ -17,27 +17,17 @@
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = null;
- synthetic constructor •() → inf::A*
+ synthetic constructor •() → inf::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = 3;
-static const field core::int* a2 = 4;
+static const field core::int a1 = 3;
+static const field core::int a2 = 4;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.transformed.expect
index 0f736d7..8b9a4f0 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3.dart.weak.transformed.expect
@@ -1,18 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" show a1, A;
import "org-dartlang-testcase:///infer_statics_transitively3_a.dart" as p show a2, A;
-static const field core::int* t1 = #C1;
-static const field core::int* t2 = #C1;
-static const field core::int* t3 = #C2;
-static const field core::int* t4 = #C3;
+static const field core::int t1 = #C1;
+static const field core::int t2 = #C1;
+static const field core::int t3 = #C2;
+static const field core::int t4 = #C3;
static const field dynamic t5 = #C4;
static const field dynamic t6 = #C4;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = #C1;
i = #C1;
i = #C2;
@@ -20,28 +20,18 @@
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = #C4;
- synthetic constructor •() → self2::A*
+ synthetic constructor •() → self2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = #C2;
-static const field core::int* a2 = #C3;
+static const field core::int a1 = #C2;
+static const field core::int a2 = #C3;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart
index 043ae72..e9a10e1 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
const a1 = 3;
const a2 = 4;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline.expect
index f8bf78c..ef4e7b4 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
const a1 = 3;
const a2 = 4;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline_modelled.expect
index d6bc2b5..594222f 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A {
static const a3 = null;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.expect
index a54e7ab..b7c7d52 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = #C1;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = #C2;
-static const field core::int* a2 = #C3;
+static const field core::int a1 = #C2;
+static const field core::int a2 = #C3;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.modular.expect
index a54e7ab..b7c7d52 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = #C1;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = #C2;
-static const field core::int* a2 = #C3;
+static const field core::int a1 = #C2;
+static const field core::int a2 = #C3;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.outline.expect
index 6924590..71c7f18 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = null;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = 3;
-static const field core::int* a2 = 4;
+static const field core::int a1 = 3;
+static const field core::int a2 = 4;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.transformed.expect
index a54e7ab..b7c7d52 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively3_a.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
static const field dynamic a3 = #C1;
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field core::int* a1 = #C2;
-static const field core::int* a2 = #C3;
+static const field core::int a1 = #C2;
+static const field core::int a2 = #C3;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart
index 219c150..90fd29c 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
import 'infer_statics_transitively.dart';
import 'infer_statics_transitively_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline.expect
index d83406f..905ce2e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_statics_transitively.dart';
import 'infer_statics_transitively_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline_modelled.expect
index 5e1b884..e6e4d7e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_statics_transitively.dart';
import 'infer_statics_transitively_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.expect
index 54b40b9..a292144 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -8,51 +8,41 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → self::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {
self::a1;
}
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as inf2;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = inf2::a1;
-static final field core::int* m2 = inf2::A::a2;
+static final field core::int m1 = inf2::a1;
+static final field core::int m2 = inf2::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = test::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf::b1;
}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -62,20 +52,10 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → inf2::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → inf2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.modular.expect
index 54b40b9..a292144 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -8,51 +8,41 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → self::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {
self::a1;
}
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as inf2;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = inf2::a1;
-static final field core::int* m2 = inf2::A::a2;
+static final field core::int m1 = inf2::a1;
+static final field core::int m2 = inf2::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = test::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf::b1;
}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -62,20 +52,10 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → inf2::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → inf2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.outline.expect
index 0130840..8fe9220 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
@@ -6,46 +6,36 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2;
- synthetic constructor •() → self::A*
+ static final field core::int a2;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1;
+static final field core::int a1;
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1;
-static final field core::int* m2;
+static final field core::int m1;
+static final field core::int m2;
static method foo() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static final field core::int* b1;
+static final field core::int b1;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self4;
import "dart:core" as core;
@@ -53,20 +43,10 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2;
- synthetic constructor •() → self4::A*
+ static final field core::int a2;
+ synthetic constructor •() → self4::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1;
+static final field core::int a1;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.transformed.expect
index 54b40b9..a292144 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_2_a.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -8,51 +8,41 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → self::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {
self::a1;
}
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as inf2;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = inf2::a1;
-static final field core::int* m2 = inf2::A::a2;
+static final field core::int m1 = inf2::a1;
+static final field core::int m2 = inf2::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = test::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf::b1;
}
-library;
+library /*isNonNullableByDefault*/;
import self as inf2;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -62,20 +52,10 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → inf2::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → inf2::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart
index de0a388..a7b6d9e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
import 'infer_statics_transitively.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline.expect
index d83406f..905ce2e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_statics_transitively.dart';
import 'infer_statics_transitively_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline_modelled.expect
index 5e1b884..e6e4d7e 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_statics_transitively.dart';
import 'infer_statics_transitively_b.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.expect
index 327bcc1..894b7a6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -8,44 +8,34 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → self::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as self;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = self::a1;
-static final field core::int* m2 = self::A::a2;
+static final field core::int m1 = self::a1;
+static final field core::int m2 = self::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = test::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.modular.expect
index 327bcc1..894b7a6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -8,44 +8,34 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → self::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as self;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = self::a1;
-static final field core::int* m2 = self::A::a2;
+static final field core::int m1 = self::a1;
+static final field core::int m2 = self::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = test::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.outline.expect
index beab73f..a6d298c 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
@@ -6,41 +6,31 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2;
- synthetic constructor •() → self::A*
+ static final field core::int a2;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1;
+static final field core::int a1;
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1;
-static final field core::int* m2;
+static final field core::int m1;
+static final field core::int m2;
static method foo() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self3;
import "dart:core" as core;
-static final field core::int* b1;
+static final field core::int b1;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.transformed.expect
index 327bcc1..894b7a6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_a.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_transitively_b.dart" as inf;
@@ -8,44 +8,34 @@
import "org-dartlang-testcase:///infer_statics_transitively_b.dart";
class A extends core::Object {
- static final field core::int* a2 = inf::b1;
- synthetic constructor •() → self::A*
+ static final field core::int a2 = inf::b1;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::int* a1 = test::m2;
+static final field core::int a1 = test::m2;
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_statics_transitively_a.dart" as self;
import "org-dartlang-testcase:///infer_statics_transitively_a.dart";
-static final field core::int* m1 = self::a1;
-static final field core::int* m2 = self::A::a2;
+static final field core::int m1 = self::a1;
+static final field core::int m2 = self::A::a2;
static method foo() → dynamic {
- core::int* i;
+ core::int i;
i = test::m1;
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
inf::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart
index ea876ed..4ae476c 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
final b1 = 2;
main() {
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline.expect
index d14bcfe..01611d6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
final b1 = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline_modelled.expect
index d14bcfe..01611d6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
final b1 = 2;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.expect
index 8c80bfe..ce01e0b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
self::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.modular.expect
index 8c80bfe..ce01e0b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
self::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.outline.expect
index 1634bbb..43194a7 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field core::int* b1;
+static final field core::int b1;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.transformed.expect
index 8c80bfe..ce01e0b 100644
--- a/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_transitively_b.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field core::int* b1 = 2;
+static final field core::int b1 = 2;
static method main() → dynamic {
self::b1;
}
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart
index 85c5145..faf3aa3 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
class T {
static final T foo = m1(m2(m3('', '')));
static T m1(String m) {
- return null;
+ return throw '';
}
static String m2(e) {
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline.expect
index 9a6079b..d3d25f6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_statics_with_method_invocations_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline_modelled.expect
index 73b2ef7..bdbc3a1 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_statics_with_method_invocations_a.dart';
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.expect
index 4a992cd..d992be6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_with_method_invocations_a.dart" as inf;
@@ -6,34 +6,24 @@
import "org-dartlang-testcase:///infer_statics_with_method_invocations_a.dart";
class T extends core::Object {
- static final field self::T* foo = self::T::m1(self::T::m2(inf::m3("", "")));
- synthetic constructor •() → self::T*
+ static final field self::T foo = self::T::m1(self::T::m2(inf::m3("", "")));
+ synthetic constructor •() → self::T
: super core::Object::•()
;
- static method m1(core::String* m) → self::T* {
- return null;
+ static method m1(core::String m) → self::T {
+ return throw "";
}
- static method m2(dynamic e) → core::String* {
+ static method m2(dynamic e) → core::String {
return "";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
+static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.modular.expect
index 4a992cd..d992be6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_with_method_invocations_a.dart" as inf;
@@ -6,34 +6,24 @@
import "org-dartlang-testcase:///infer_statics_with_method_invocations_a.dart";
class T extends core::Object {
- static final field self::T* foo = self::T::m1(self::T::m2(inf::m3("", "")));
- synthetic constructor •() → self::T*
+ static final field self::T foo = self::T::m1(self::T::m2(inf::m3("", "")));
+ synthetic constructor •() → self::T
: super core::Object::•()
;
- static method m1(core::String* m) → self::T* {
- return null;
+ static method m1(core::String m) → self::T {
+ return throw "";
}
- static method m2(dynamic e) → core::String* {
+ static method m2(dynamic e) → core::String {
return "";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
+static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.outline.expect
index 68c5138..96b1ccb 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.outline.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "org-dartlang-testcase:///infer_statics_with_method_invocations_a.dart";
class T extends core::Object {
- static final field self::T* foo;
- synthetic constructor •() → self::T*
+ static final field self::T foo;
+ synthetic constructor •() → self::T
;
- static method m1(core::String* m) → self::T*
+ static method m1(core::String m) → self::T
;
- static method m2(dynamic e) → core::String*
+ static method m2(dynamic e) → core::String
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as self2;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1, dynamic a2]) → dynamic
+static method m3(core::String a, core::String b, [dynamic a1, dynamic a2]) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.transformed.expect
index 4a992cd..d992be6 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_statics_with_method_invocations_a.dart" as inf;
@@ -6,34 +6,24 @@
import "org-dartlang-testcase:///infer_statics_with_method_invocations_a.dart";
class T extends core::Object {
- static final field self::T* foo = self::T::m1(self::T::m2(inf::m3("", "")));
- synthetic constructor •() → self::T*
+ static final field self::T foo = self::T::m1(self::T::m2(inf::m3("", "")));
+ synthetic constructor •() → self::T
: super core::Object::•()
;
- static method m1(core::String* m) → self::T* {
- return null;
+ static method m1(core::String m) → self::T {
+ return throw "";
}
- static method m2(dynamic e) → core::String* {
+ static method m2(dynamic e) → core::String {
return "";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
+static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart
index 14eef051..c9acde0 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
m3(String a, String b, [a1, a2]) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline.expect
index 9013a73..9908614 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
m3(String a, String b, [a1, a2]) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline_modelled.expect
index 9013a73..9908614 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.textual_outline_modelled.expect
@@ -1,3 +1,2 @@
-// @dart = 2.9
m3(String a, String b, [a1, a2]) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.expect
index e864516..facde66 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
+static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.modular.expect
index e864516..facde66 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
+static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.outline.expect
index 92e6635..f577f25 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1, dynamic a2]) → dynamic
+static method m3(core::String a, core::String b, [dynamic a1, dynamic a2]) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.transformed.expect
index e864516..facde66 100644
--- a/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_statics_with_method_invocations_a.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method m3(core::String* a, core::String* b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
+static method m3(core::String a, core::String b, [dynamic a1 = #C1, dynamic a2 = #C1]) → dynamic {}
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart b/pkg/front_end/testcases/inference/infer_throw.dart
index 673ec4e..53940dc 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart
+++ b/pkg/front_end/testcases/inference/infer_throw.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline.expect
index e2abaf8..7a172c4 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var t = true;
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline_modelled.expect
index f00cd7c..5b649fd 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_throw.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.weak.expect b/pkg/front_end/testcases/inference/infer_throw.dart.weak.expect
index 8f6f2b1..c0fb5cf 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_throw.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* t = true;
-static field dynamic a = throw 0;
-static field core::int* b = (throw 0) ?{core::int*} 1 : 2;
-static field core::int* c = self::t ?{core::int*} throw 1 : 2;
-static field core::int* d = self::t ?{core::int*} 1 : throw 2;
+static field core::bool t = true;
+static field Never a = throw 0;
+static field core::int b = (throw 0) ?{core::int} 1 : 2;
+static field core::int c = self::t ?{core::int} throw 1 : 2;
+static field core::int d = self::t ?{core::int} 1 : throw 2;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_throw.dart.weak.modular.expect
index 8f6f2b1..c0fb5cf 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_throw.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* t = true;
-static field dynamic a = throw 0;
-static field core::int* b = (throw 0) ?{core::int*} 1 : 2;
-static field core::int* c = self::t ?{core::int*} throw 1 : 2;
-static field core::int* d = self::t ?{core::int*} 1 : throw 2;
+static field core::bool t = true;
+static field Never a = throw 0;
+static field core::int b = (throw 0) ?{core::int} 1 : 2;
+static field core::int c = self::t ?{core::int} throw 1 : 2;
+static field core::int d = self::t ?{core::int} 1 : throw 2;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_throw.dart.weak.outline.expect
index a26c77f..eccf26e 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_throw.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* t;
-static field dynamic a;
-static field core::int* b;
-static field core::int* c;
-static field core::int* d;
+static field core::bool t;
+static field Never a;
+static field core::int b;
+static field core::int c;
+static field core::int d;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_throw.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_throw.dart.weak.transformed.expect
index 8f6f2b1..c0fb5cf 100644
--- a/pkg/front_end/testcases/inference/infer_throw.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_throw.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* t = true;
-static field dynamic a = throw 0;
-static field core::int* b = (throw 0) ?{core::int*} 1 : 2;
-static field core::int* c = self::t ?{core::int*} throw 1 : 2;
-static field core::int* d = self::t ?{core::int*} 1 : throw 2;
+static field core::bool t = true;
+static field Never a = throw 0;
+static field core::int b = (throw 0) ?{core::int} 1 : 2;
+static field core::int c = self::t ?{core::int} throw 1 : 2;
+static field core::int d = self::t ?{core::int} 1 : throw 2;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart b/pkg/front_end/testcases/inference/infer_throw_downwards.dart
index 937e7e4..c8bf995 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
var x = throw /*@typeArgs=dynamic*/ f();
void g() {
- var /*@type=dynamic */ x = throw /*@typeArgs=dynamic*/ f();
+ var /*@type=Never*/ x = throw /*@typeArgs=dynamic*/ f();
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline.expect
index 7867ecf..653ae5c 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
var x = throw f();
void g() {}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline_modelled.expect
index b75972f..a09c11a 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
main() {}
var x = throw f();
void g() {}
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.expect
index e583c2a..9195452 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field dynamic x = throw self::f<dynamic>();
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static field Never x = throw self::f<dynamic>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method g() → void {
- dynamic x = throw self::f<dynamic>();
+ Never x = throw self::f<dynamic>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.modular.expect
index e583c2a..9195452 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field dynamic x = throw self::f<dynamic>();
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static field Never x = throw self::f<dynamic>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method g() → void {
- dynamic x = throw self::f<dynamic>();
+ Never x = throw self::f<dynamic>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.outline.expect
index 1ba01ea..10378d3 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field dynamic x;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static field Never x;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method g() → void
;
diff --git a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.transformed.expect
index e583c2a..9195452 100644
--- a/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_throw_downwards.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field dynamic x = throw self::f<dynamic>();
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static field Never x = throw self::f<dynamic>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method g() → void {
- dynamic x = throw self::f<dynamic>();
+ Never x = throw self::f<dynamic>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart
index ede9fbe..9d13c19 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline.expect
index 27e82683..18f8608 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline_modelled.expect
index 27e82683..18f8608 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.expect
index 454f2de..d24070d 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,32 +10,22 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.modular.expect
index 454f2de..d24070d 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,32 +10,22 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.outline.expect
index 35d6c84..408d60b 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- get x() → core::int*
+ get x() → core::int
;
}
static method foo() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.transformed.expect
index 454f2de..d24070d 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,32 +10,22 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields2.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart
index 853e6a9..b8d1dcc 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline.expect
index 5f086e4..29aa0a4 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline_modelled.expect
index 5f086e4..29aa0a4 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.expect
index a8b5b21..e7a76c7 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,42 +10,22 @@
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x = 2;
- synthetic constructor •() → self::A*
+ final field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.modular.expect
index a8b5b21..e7a76c7 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,42 +10,22 @@
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x = 2;
- synthetic constructor •() → self::A*
+ final field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.outline.expect
index 09e3891..2b975b5 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x;
- synthetic constructor •() → self::A*
+ final field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- get x() → core::int*
+ get x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.transformed.expect
index a8b5b21..e7a76c7 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,42 +10,22 @@
import "dart:core" as core;
class A extends core::Object {
- final field core::int* x = 2;
- synthetic constructor •() → self::A*
+ final field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object implements self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_overridden_fields4.dart:17:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart b/pkg/front_end/testcases/inference/infer_type_on_var.dart
index b3df35a..6da1e5d 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline.expect
index f75f219..a73b3f8 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test1() {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline_modelled.expect
index b1f0123..128ffb9 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.expect
index be69c0e..9d99b6e 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,9 +10,9 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::int* x = 3;
+ core::int x = 3;
x = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var.dart:10:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.modular.expect
index be69c0e..9d99b6e 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,9 +10,9 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::int* x = 3;
+ core::int x = 3;
x = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var.dart:10:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.outline.expect
index 3619892..c7a3436 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test1() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.transformed.expect
index be69c0e..9d99b6e 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,9 +10,9 @@
import "dart:core" as core;
static method test1() → dynamic {
- core::int* x = 3;
+ core::int x = 3;
x = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var.dart:10:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart b/pkg/front_end/testcases/inference/infer_type_on_var2.dart
index b88af94..1b576ce 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test2() {
- var /*@ type=int* */ x = 3;
+ var /*@type=int*/ x = 3;
x = /*error:INVALID_ASSIGNMENT*/ "hi";
}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline.expect
index 64ead70..715fb78 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test2() {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline_modelled.expect
index f83e884..c5447d1 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.expect
index 318a2d0..ae6e2b2 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,9 +10,9 @@
import "dart:core" as core;
static method test2() → dynamic {
- core::int* x = 3;
+ core::int x = 3;
x = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var2.dart:10:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.modular.expect
index 318a2d0..ae6e2b2 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,9 +10,9 @@
import "dart:core" as core;
static method test2() → dynamic {
- core::int* x = 3;
+ core::int x = 3;
x = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var2.dart:10:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.outline.expect
index 59396ab..6f6dfb3 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test2() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.transformed.expect
index 318a2d0..ae6e2b2 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var2.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,9 +10,9 @@
import "dart:core" as core;
static method test2() → dynamic {
- core::int* x = 3;
+ core::int x = 3;
x = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var2.dart:10:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart
index abb3f47..b368ee0 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,18 +9,18 @@
int x = 0;
test1() {
- var /*@ type=int* */ a = /*@target=A.x*/ x;
+ var /*@type=int*/ a = /*@target=A.x*/ x;
a = /*error:INVALID_ASSIGNMENT*/ "hi";
a = 3;
- var /*@ type=int* */ b = /*@target=A.y*/ y;
+ var /*@type=int*/ b = /*@target=A.y*/ y;
b = /*error:INVALID_ASSIGNMENT*/ "hi";
b = 4;
- var /*@ type=int* */ c = /*@target=A.z*/ z;
+ var /*@type=int*/ c = /*@target=A.z*/ z;
c = /*error:INVALID_ASSIGNMENT*/ "hi";
c = 4;
}
- int y; // field def after use
+ int y = throw ''; // field def after use
final z = 42; // should infer `int`
}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline.expect
index 4ad24eb..33086f4 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
class A {
int x = 0;
test1() {}
- int y;
+ int y = throw '';
final z = 42;
}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline_modelled.expect
index 241cd75..57a9484 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
class A {
final z = 42;
int x = 0;
- int y;
+ int y = throw '';
test1() {}
}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.expect
index f622139..233d4de 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,38 +18,28 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 0;
- field core::int* y = null;
- final field core::int* z = 42;
- synthetic constructor •() → self::A*
+ field core::int x = 0;
+ field core::int y = throw "";
+ final field core::int z = 42;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method test1() → dynamic {
- core::int* a = this.{self::A::x}{core::int*};
+ core::int a = this.{self::A::x}{core::int};
a = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:13:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
a = 3;
- core::int* b = this.{self::A::y}{core::int*};
+ core::int b = this.{self::A::y}{core::int};
b = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:16:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
b = 4;
- core::int* c = this.{self::A::z}{core::int*};
+ core::int c = this.{self::A::z}{core::int};
c = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:19:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
c = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
c = 4;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.modular.expect
index f622139..233d4de 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,38 +18,28 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 0;
- field core::int* y = null;
- final field core::int* z = 42;
- synthetic constructor •() → self::A*
+ field core::int x = 0;
+ field core::int y = throw "";
+ final field core::int z = 42;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method test1() → dynamic {
- core::int* a = this.{self::A::x}{core::int*};
+ core::int a = this.{self::A::x}{core::int};
a = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:13:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
a = 3;
- core::int* b = this.{self::A::y}{core::int*};
+ core::int b = this.{self::A::y}{core::int};
b = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:16:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
b = 4;
- core::int* c = this.{self::A::z}{core::int*};
+ core::int c = this.{self::A::z}{core::int};
c = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:19:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
c = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
c = 4;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.outline.expect
index 00baffd..046ea46 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- field core::int* y;
- final field core::int* z;
- synthetic constructor •() → self::A*
+ field core::int x;
+ field core::int y;
+ final field core::int z;
+ synthetic constructor •() → self::A
;
method test1() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.transformed.expect
index f622139..233d4de 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,38 +18,28 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 0;
- field core::int* y = null;
- final field core::int* z = 42;
- synthetic constructor •() → self::A*
+ field core::int x = 0;
+ field core::int y = throw "";
+ final field core::int z = 42;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method test1() → dynamic {
- core::int* a = this.{self::A::x}{core::int*};
+ core::int a = this.{self::A::x}{core::int};
a = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:13:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
a = 3;
- core::int* b = this.{self::A::y}{core::int*};
+ core::int b = this.{self::A::y}{core::int};
b = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:16:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
b = 4;
- core::int* c = this.{self::A::z}{core::int*};
+ core::int c = this.{self::A::z}{core::int};
c = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_field.dart:19:38: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
c = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
c = 4;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart
index 4d61853..6b971b5 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart
@@ -1,20 +1,20 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
int x = 0;
test1() {
- var /*@ type=int* */ a = x;
+ var /*@type=int*/ a = x;
a = /*error:INVALID_ASSIGNMENT*/ "hi";
a = 3;
- var /*@ type=int* */ b = y;
+ var /*@type=int*/ b = y;
b = /*error:INVALID_ASSIGNMENT*/ "hi";
b = 4;
- var /*@ type=int* */ c = z;
+ var /*@type=int*/ c = z;
c = /*error:INVALID_ASSIGNMENT*/ "hi";
c = 4;
}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline.expect
index eb7d93e..fdb603c 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
int x = 0;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline_modelled.expect
index 6a81cd1..9ad86a2 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
final z = 42;
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.expect
index 63aa12a..3b940a8 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,24 +17,24 @@
import self as self;
import "dart:core" as core;
-static field core::int* x = 0;
-static field core::int* y = 0;
-static final field core::int* z = 42;
+static field core::int x = 0;
+static field core::int y = 0;
+static final field core::int z = 42;
static method test1() → dynamic {
- core::int* a = self::x;
+ core::int a = self::x;
a = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:12:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
a = 3;
- core::int* b = self::y;
+ core::int b = self::y;
b = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:15:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
b = 4;
- core::int* c = self::z;
+ core::int c = self::z;
c = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:18:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
c = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
c = 4;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.modular.expect
index 63aa12a..3b940a8 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,24 +17,24 @@
import self as self;
import "dart:core" as core;
-static field core::int* x = 0;
-static field core::int* y = 0;
-static final field core::int* z = 42;
+static field core::int x = 0;
+static field core::int y = 0;
+static final field core::int z = 42;
static method test1() → dynamic {
- core::int* a = self::x;
+ core::int a = self::x;
a = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:12:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
a = 3;
- core::int* b = self::y;
+ core::int b = self::y;
b = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:15:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
b = 4;
- core::int* c = self::z;
+ core::int c = self::z;
c = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:18:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
c = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
c = 4;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.outline.expect
index 818f5f5e..fc6b54e 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x;
-static field core::int* y;
-static final field core::int* z;
+static field core::int x;
+static field core::int y;
+static final field core::int z;
static method test1() → dynamic
;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.transformed.expect
index 63aa12a..3b940a8 100644
--- a/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,24 +17,24 @@
import self as self;
import "dart:core" as core;
-static field core::int* x = 0;
-static field core::int* y = 0;
-static final field core::int* z = 42;
+static field core::int x = 0;
+static field core::int y = 0;
+static final field core::int z = 42;
static method test1() → dynamic {
- core::int* a = self::x;
+ core::int a = self::x;
a = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:12:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
a = 3;
- core::int* b = self::y;
+ core::int b = self::y;
b = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:15:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
b = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
b = 4;
- core::int* c = self::z;
+ core::int c = self::z;
c = invalid-expression "pkg/front_end/testcases/inference/infer_type_on_var_from_top_level.dart:18:36: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
c = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
c = 4;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart
index 4a7604a..8c49d22 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'infer_type_regardless_of_declaration_order_or_cycles_b.dart';
class C extends B {
- get x => null;
+ get x => throw '';
}
class A {
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline.expect
index 7b0b110..d5f28ce 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
import 'infer_type_regardless_of_declaration_order_or_cycles_b.dart';
class C extends B {
- get x => null;
+ get x => throw '';
}
class A {
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline_modelled.expect
index 7b738b7..212e986 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'infer_type_regardless_of_declaration_order_or_cycles_b.dart';
@@ -8,7 +7,7 @@
}
class C extends B {
- get x => null;
+ get x => throw '';
}
foo() {}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.expect
index dced83d..cfb865f 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,47 +13,37 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends inf::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super inf::B::•()
;
- get x() → core::int*
- return null;
+ get x() → core::int
+ return throw "";
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::int* y = new self::C::•().{self::C::x}{core::int*};
- core::String* z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::int y = new self::C::•().{self::C::x}{core::int};
+ core::String z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String z = /*error:INVALID_ASSIGNMENT*/ new C(). /*@target=C.x*/ x;
- ^" in new self::C::•().{self::C::x}{core::int*} as{TypeError} core::String*;
+ ^" in new self::C::•().{self::C::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
}
static method main() → dynamic {
self::foo();
}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as self;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends self::A {
- synthetic constructor •() → inf::B*
+ synthetic constructor •() → inf::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.modular.expect
index dced83d..cfb865f 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,47 +13,37 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends inf::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super inf::B::•()
;
- get x() → core::int*
- return null;
+ get x() → core::int
+ return throw "";
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::int* y = new self::C::•().{self::C::x}{core::int*};
- core::String* z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::int y = new self::C::•().{self::C::x}{core::int};
+ core::String z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String z = /*error:INVALID_ASSIGNMENT*/ new C(). /*@target=C.x*/ x;
- ^" in new self::C::•().{self::C::x}{core::int*} as{TypeError} core::String*;
+ ^" in new self::C::•().{self::C::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
}
static method main() → dynamic {
self::foo();
}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as self;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends self::A {
- synthetic constructor •() → inf::B*
+ synthetic constructor •() → inf::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.outline.expect
index 1f42db6..315f872 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "infer_type_regardless_of_declaration_order_or_cycles_b.dart" as inf;
import "dart:core" as core;
@@ -6,40 +6,30 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends inf::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- get x() → core::int*
+ get x() → core::int
;
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- get x() → core::int*
+ get x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as self;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends self::A {
- synthetic constructor •() → inf::B*
+ synthetic constructor •() → inf::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.transformed.expect
index dced83d..cfb865f 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,47 +13,37 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends inf::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super inf::B::•()
;
- get x() → core::int*
- return null;
+ get x() → core::int
+ return throw "";
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::int* y = new self::C::•().{self::C::x}{core::int*};
- core::String* z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::int y = new self::C::•().{self::C::x}{core::int};
+ core::String z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String z = /*error:INVALID_ASSIGNMENT*/ new C(). /*@target=C.x*/ x;
- ^" in new self::C::•().{self::C::x}{core::int*} as{TypeError} core::String*;
+ ^" in new self::C::•().{self::C::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
}
static method main() → dynamic {
self::foo();
}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as self;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends self::A {
- synthetic constructor •() → inf::B*
+ synthetic constructor •() → inf::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart
index e46cfe9..e7cdfcb 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
import 'infer_type_regardless_of_declaration_order_or_cycles.dart';
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline.expect
index 26c0dad..0c9213c 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_type_regardless_of_declaration_order_or_cycles.dart';
class B extends A {}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline_modelled.expect
index 26c0dad..0c9213c 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_type_regardless_of_declaration_order_or_cycles.dart';
class B extends A {}
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.expect
index 0acdfbf..1b47b04 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as test;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends test::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super test::A::•()
;
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -26,34 +26,24 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends self::B {
- synthetic constructor •() → test::C*
+ synthetic constructor •() → test::C
: super self::B::•()
;
- get x() → core::int*
- return null;
+ get x() → core::int
+ return throw "";
}
class A extends core::Object {
- synthetic constructor •() → test::A*
+ synthetic constructor •() → test::A
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::int* y = new test::C::•().{test::C::x}{core::int*};
- core::String* z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::int y = new test::C::•().{test::C::x}{core::int};
+ core::String z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String z = /*error:INVALID_ASSIGNMENT*/ new C(). /*@target=C.x*/ x;
- ^" in new test::C::•().{test::C::x}{core::int*} as{TypeError} core::String*;
+ ^" in new test::C::•().{test::C::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
}
static method main() → dynamic {
test::foo();
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.modular.expect
index 0acdfbf..1b47b04 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.modular.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as test;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends test::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super test::A::•()
;
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -26,34 +26,24 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends self::B {
- synthetic constructor •() → test::C*
+ synthetic constructor •() → test::C
: super self::B::•()
;
- get x() → core::int*
- return null;
+ get x() → core::int
+ return throw "";
}
class A extends core::Object {
- synthetic constructor •() → test::A*
+ synthetic constructor •() → test::A
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::int* y = new test::C::•().{test::C::x}{core::int*};
- core::String* z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::int y = new test::C::•().{test::C::x}{core::int};
+ core::String z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String z = /*error:INVALID_ASSIGNMENT*/ new C(). /*@target=C.x*/ x;
- ^" in new test::C::•().{test::C::x}{core::int*} as{TypeError} core::String*;
+ ^" in new test::C::•().{test::C::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
}
static method main() → dynamic {
test::foo();
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.outline.expect
index d9a40c1..a6bf1ca 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.outline.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as test;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends test::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "infer_type_regardless_of_declaration_order_or_cycles_b.dart" as self;
import "dart:core" as core;
@@ -19,26 +19,16 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends self::B {
- synthetic constructor •() → test::C*
+ synthetic constructor •() → test::C
;
- get x() → core::int*
+ get x() → core::int
;
}
class A extends core::Object {
- synthetic constructor •() → test::A*
+ synthetic constructor •() → test::A
;
- get x() → core::int*
+ get x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.transformed.expect
index 0acdfbf..1b47b04 100644
--- a/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles_b.dart.weak.transformed.expect
@@ -1,17 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "infer_type_regardless_of_declaration_order_or_cycles.dart" as test;
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles.dart";
class B extends test::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super test::A::•()
;
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -26,34 +26,24 @@
import "org-dartlang-testcase:///infer_type_regardless_of_declaration_order_or_cycles_b.dart";
class C extends self::B {
- synthetic constructor •() → test::C*
+ synthetic constructor •() → test::C
: super self::B::•()
;
- get x() → core::int*
- return null;
+ get x() → core::int
+ return throw "";
}
class A extends core::Object {
- synthetic constructor •() → test::A*
+ synthetic constructor •() → test::A
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::int* y = new test::C::•().{test::C::x}{core::int*};
- core::String* z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::int y = new test::C::•().{test::C::x}{core::int};
+ core::String z = invalid-expression "pkg/front_end/testcases/inference/infer_type_regardless_of_declaration_order_or_cycles.dart:20:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String z = /*error:INVALID_ASSIGNMENT*/ new C(). /*@target=C.x*/ x;
- ^" in new test::C::•().{test::C::x}{core::int*} as{TypeError} core::String*;
+ ^" in new test::C::•().{test::C::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
}
static method main() → dynamic {
test::foo();
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart
index dafcec3..03bad8b 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline.expect
index 12d51c1..36cd503 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = <int, String>{0: 'aaa', 1: 'bbb'};
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline_modelled.expect
index e4c9ecd..4531ba6 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.expect
index a416db2..13e9723 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* a = <core::int*, core::String*>{0: "aaa", 1: "bbb"};
-static field core::Map<core::double*, core::int*>* b = <core::double*, core::int*>{1.1: 1, 2.2: 2};
-static field core::Map<core::List<core::int*>*, core::Map<core::String*, core::double*>*>* c = <core::List<core::int*>*, core::Map<core::String*, core::double*>*>{};
-static field core::Map<core::int*, dynamic>* d = <core::int*, dynamic>{};
-static field core::Map<dynamic, core::int*>* e = <dynamic, core::int*>{};
-static field core::Map<dynamic, dynamic>* f = <dynamic, dynamic>{};
+static field core::Map<core::int, core::String> a = <core::int, core::String>{0: "aaa", 1: "bbb"};
+static field core::Map<core::double, core::int> b = <core::double, core::int>{1.1: 1, 2.2: 2};
+static field core::Map<core::List<core::int>, core::Map<core::String, core::double>> c = <core::List<core::int>, core::Map<core::String, core::double>>{};
+static field core::Map<core::int, dynamic> d = <core::int, dynamic>{};
+static field core::Map<dynamic, core::int> e = <dynamic, core::int>{};
+static field core::Map<dynamic, dynamic> f = <dynamic, dynamic>{};
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.modular.expect
index a416db2..13e9723 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* a = <core::int*, core::String*>{0: "aaa", 1: "bbb"};
-static field core::Map<core::double*, core::int*>* b = <core::double*, core::int*>{1.1: 1, 2.2: 2};
-static field core::Map<core::List<core::int*>*, core::Map<core::String*, core::double*>*>* c = <core::List<core::int*>*, core::Map<core::String*, core::double*>*>{};
-static field core::Map<core::int*, dynamic>* d = <core::int*, dynamic>{};
-static field core::Map<dynamic, core::int*>* e = <dynamic, core::int*>{};
-static field core::Map<dynamic, dynamic>* f = <dynamic, dynamic>{};
+static field core::Map<core::int, core::String> a = <core::int, core::String>{0: "aaa", 1: "bbb"};
+static field core::Map<core::double, core::int> b = <core::double, core::int>{1.1: 1, 2.2: 2};
+static field core::Map<core::List<core::int>, core::Map<core::String, core::double>> c = <core::List<core::int>, core::Map<core::String, core::double>>{};
+static field core::Map<core::int, dynamic> d = <core::int, dynamic>{};
+static field core::Map<dynamic, core::int> e = <dynamic, core::int>{};
+static field core::Map<dynamic, dynamic> f = <dynamic, dynamic>{};
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.outline.expect
index de41e4b..119adba 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.outline.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* a;
-static field core::Map<core::double*, core::int*>* b;
-static field core::Map<core::List<core::int*>*, core::Map<core::String*, core::double*>*>* c;
-static field core::Map<core::int*, dynamic>* d;
-static field core::Map<dynamic, core::int*>* e;
-static field core::Map<dynamic, dynamic>* f;
+static field core::Map<core::int, core::String> a;
+static field core::Map<core::double, core::int> b;
+static field core::Map<core::List<core::int>, core::Map<core::String, core::double>> c;
+static field core::Map<core::int, dynamic> d;
+static field core::Map<dynamic, core::int> e;
+static field core::Map<dynamic, dynamic> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.transformed.expect
index a416db2..13e9723 100644
--- a/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_typed_map_literal.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* a = <core::int*, core::String*>{0: "aaa", 1: "bbb"};
-static field core::Map<core::double*, core::int*>* b = <core::double*, core::int*>{1.1: 1, 2.2: 2};
-static field core::Map<core::List<core::int*>*, core::Map<core::String*, core::double*>*>* c = <core::List<core::int*>*, core::Map<core::String*, core::double*>*>{};
-static field core::Map<core::int*, dynamic>* d = <core::int*, dynamic>{};
-static field core::Map<dynamic, core::int*>* e = <dynamic, core::int*>{};
-static field core::Map<dynamic, dynamic>* f = <dynamic, dynamic>{};
+static field core::Map<core::int, core::String> a = <core::int, core::String>{0: "aaa", 1: "bbb"};
+static field core::Map<core::double, core::int> b = <core::double, core::int>{1.1: 1, 2.2: 2};
+static field core::Map<core::List<core::int>, core::Map<core::String, core::double>> c = <core::List<core::int>, core::Map<core::String, core::double>>{};
+static field core::Map<core::int, dynamic> d = <core::int, dynamic>{};
+static field core::Map<dynamic, core::int> e = <dynamic, core::int>{};
+static field core::Map<dynamic, dynamic> f = <dynamic, dynamic>{};
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart
index 4ea86c0..ffaddf4 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A<T> {
- final T x = null;
- final T w = null;
+ final T x = throw '';
+ final T w = throw '';
}
class B implements A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline.expect
index 2fd1e40..ad7509c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A<T> {
- final T x = null;
- final T w = null;
+ final T x = throw '';
+ final T w = throw '';
}
class B implements A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline_modelled.expect
index 06fb6ed..48638ba 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A<T> {
- final T w = null;
- final T x = null;
+ final T w = throw '';
+ final T x = throw '';
}
class B implements A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.expect
index a263f07..b6766ce 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be returned from a function with return type 'int'.
// get w => /*error:RETURN_OF_INVALID_TYPE*/ "hello";
// ^
//
@@ -13,48 +13,28 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x = null;
- final field self::A::T* w = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x = throw "";
+ final field self::A::T% w = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
- get w() → core::int*
- return invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ get w() → core::int
+ return invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be returned from a function with return type 'int'.
get w => /*error:RETURN_OF_INVALID_TYPE*/ \"hello\";
- ^" in "hello" as{TypeError} core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int;
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:19:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:19:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.modular.expect
index a263f07..b6766ce 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be returned from a function with return type 'int'.
// get w => /*error:RETURN_OF_INVALID_TYPE*/ "hello";
// ^
//
@@ -13,48 +13,28 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x = null;
- final field self::A::T* w = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x = throw "";
+ final field self::A::T% w = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
- get w() → core::int*
- return invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ get w() → core::int
+ return invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be returned from a function with return type 'int'.
get w => /*error:RETURN_OF_INVALID_TYPE*/ \"hello\";
- ^" in "hello" as{TypeError} core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int;
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:19:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:19:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.outline.expect
index f40fbc7..993531e 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x;
- final field self::A::T* w;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x;
+ final field self::A::T% w;
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
;
- get x() → core::int*
+ get x() → core::int
;
- get w() → core::int*
+ get w() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.transformed.expect
index a263f07..b6766ce 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be returned from a function with return type 'int'.
// get w => /*error:RETURN_OF_INVALID_TYPE*/ "hello";
// ^
//
@@ -13,48 +13,28 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x = null;
- final field self::A::T* w = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x = throw "";
+ final field self::A::T% w = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 3;
- get w() → core::int*
- return invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ get w() → core::int
+ return invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:15:45: Error: A value of type 'String' can't be returned from a function with return type 'int'.
get w => /*error:RETURN_OF_INVALID_TYPE*/ \"hello\";
- ^" in "hello" as{TypeError} core::int*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} core::int;
}
static method foo() → dynamic {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:19:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_3.dart:19:68: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
String y = /*error:INVALID_ASSIGNMENT*/ new B(). /*@target=B.x*/ x;
- ^" in new self::B::•().{self::B::x}{core::int*} as{TypeError} core::String*;
- core::int* z = new self::B::•().{self::B::x}{core::int*};
+ ^" in new self::B::•().{self::B::x}{core::int} as{TypeError,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart
index 3db5d08..46a9b0e 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A<T> {
- T x;
+ T x = throw '';
}
class B<E> extends A<E> {
- E y;
+ E y = throw '';
get x => /*@target=B.y*/ y;
}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline.expect
index 9ddab96..1684bf5 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class A<T> {
- T x;
+ T x = throw '';
}
class B<E> extends A<E> {
- E y;
+ E y = throw '';
get x => y;
}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline_modelled.expect
index 9ddab96..1684bf5 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class A<T> {
- T x;
+ T x = throw '';
}
class B<E> extends A<E> {
- E y;
+ E y = throw '';
get x => y;
}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.expect
index 4e199e1..44304fd 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,35 +9,25 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::T* x = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::T% x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> {
- covariant-by-class field self::B::E* y = null;
- synthetic constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> {
+ covariant-by-class field self::B::E% y = throw "";
+ synthetic constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get x() → self::B::E*
- return this.{self::B::y}{self::B::E*};
+ get x() → self::B::E%
+ return this.{self::B::y}{self::B::E%};
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart:18:73: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart:18:73: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int y = /*error:INVALID_ASSIGNMENT*/ new B<String>(). /*@target=B.x*/ x;
- ^" in new self::B::•<core::String*>().{self::B::x}{core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<core::String*>().{self::B::x}{core::String*};
+ ^" in new self::B::•<core::String>().{self::B::x}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<core::String>().{self::B::x}{core::String};
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.modular.expect
index 4e199e1..44304fd 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,35 +9,25 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::T* x = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::T% x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> {
- covariant-by-class field self::B::E* y = null;
- synthetic constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> {
+ covariant-by-class field self::B::E% y = throw "";
+ synthetic constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get x() → self::B::E*
- return this.{self::B::y}{self::B::E*};
+ get x() → self::B::E%
+ return this.{self::B::y}{self::B::E%};
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart:18:73: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart:18:73: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int y = /*error:INVALID_ASSIGNMENT*/ new B<String>(). /*@target=B.x*/ x;
- ^" in new self::B::•<core::String*>().{self::B::x}{core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<core::String*>().{self::B::x}{core::String*};
+ ^" in new self::B::•<core::String>().{self::B::x}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<core::String>().{self::B::x}{core::String};
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.outline.expect
index 6bff580..467fab3 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.outline.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::T* x;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::T% x;
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> {
- covariant-by-class field self::B::E* y;
- synthetic constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> {
+ covariant-by-class field self::B::E% y;
+ synthetic constructor •() → self::B<self::B::E%>
;
- get x() → self::B::E*
+ get x() → self::B::E%
;
}
static method foo() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.transformed.expect
index 4e199e1..44304fd 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,35 +9,25 @@
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::A::T* x = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::A::T% x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> {
- covariant-by-class field self::B::E* y = null;
- synthetic constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> {
+ covariant-by-class field self::B::E% y = throw "";
+ synthetic constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get x() → self::B::E*
- return this.{self::B::y}{self::B::E*};
+ get x() → self::B::E%
+ return this.{self::B::y}{self::B::E%};
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart:18:73: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_4.dart:18:73: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int y = /*error:INVALID_ASSIGNMENT*/ new B<String>(). /*@target=B.x*/ x;
- ^" in new self::B::•<core::String*>().{self::B::x}{core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<core::String*>().{self::B::x}{core::String*};
+ ^" in new self::B::•<core::String>().{self::B::x}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<core::String>().{self::B::x}{core::String};
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart
index 19b24b0..e38dadb 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -22,13 +22,14 @@
const B();
int get y => 0;
- m(a, f(v, E e)) {}
+ m(a, f(v, E e)) => throw '';
}
foo() {
int y = /*error:INVALID_ASSIGNMENT*/ new /*@typeArgs=dynamic*/ B()
- . /*@target=B.m*/ m(null, null);
- String z = new /*@typeArgs=dynamic*/ B(). /*@target=B.m*/ m(null, null);
+ . /*@target=B.m*/ m(throw '', throw '');
+ String z =
+ new /*@typeArgs=dynamic*/ B(). /*@target=B.m*/ m(throw '', throw '');
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline.expect
index 51601a7..278abf3 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class I<E> {
@@ -17,7 +16,7 @@
class B<E> extends A<E> implements M {
const B();
int get y => 0;
- m(a, f(v, E e)) {}
+ m(a, f(v, E e)) => throw '';
}
foo() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline_modelled.expect
index b277dd6..3a903ba 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A<E> implements I<E> {
@@ -17,7 +16,7 @@
class B<E> extends A<E> implements M {
const B();
int get y => 0;
- m(a, f(v, E e)) {}
+ m(a, f(v, E e)) => throw '';
}
foo() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.expect
index 5b19a39..d2e0a0f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.expect
@@ -1,74 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// . /*@target=B.m*/ m(null, null);
+// . /*@target=B.m*/ m(throw '', throw '');
// ^
//
import self as self;
import "dart:core" as core;
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::I::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::I::E%) → core::String f) → core::String;
}
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<self::A::E*> /*hasConstConstructor*/ {
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<self::A::E%> /*hasConstConstructor*/ {
+ const constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::A::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::A::E%) → core::String f) → core::String;
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → self::M*
+ final field core::int y = 0;
+ synthetic constructor •() → self::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M /*hasConstConstructor*/ {
+ const constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, self::B::E*) →* dynamic f) → core::String* {}
+ method m(dynamic a, (dynamic, self::B::E%) → dynamic f) → core::String
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- . /*@target=B.m*/ m(null, null);
- ^" in new self::B::•<dynamic>().{self::B::m}(null, null){(dynamic, (dynamic, dynamic) →* dynamic) →* core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<dynamic>().{self::B::m}(null, null){(dynamic, (dynamic, dynamic) →* dynamic) →* core::String*};
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ . /*@target=B.m*/ m(throw '', throw '');
+ ^" in new self::B::•<dynamic>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, dynamic) → dynamic) → core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<dynamic>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, dynamic) → dynamic) → core::String};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.modular.expect
index 5b19a39..d2e0a0f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.modular.expect
@@ -1,74 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// . /*@target=B.m*/ m(null, null);
+// . /*@target=B.m*/ m(throw '', throw '');
// ^
//
import self as self;
import "dart:core" as core;
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::I::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::I::E%) → core::String f) → core::String;
}
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<self::A::E*> /*hasConstConstructor*/ {
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<self::A::E%> /*hasConstConstructor*/ {
+ const constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::A::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::A::E%) → core::String f) → core::String;
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → self::M*
+ final field core::int y = 0;
+ synthetic constructor •() → self::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M /*hasConstConstructor*/ {
+ const constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, self::B::E*) →* dynamic f) → core::String* {}
+ method m(dynamic a, (dynamic, self::B::E%) → dynamic f) → core::String
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- . /*@target=B.m*/ m(null, null);
- ^" in new self::B::•<dynamic>().{self::B::m}(null, null){(dynamic, (dynamic, dynamic) →* dynamic) →* core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<dynamic>().{self::B::m}(null, null){(dynamic, (dynamic, dynamic) →* dynamic) →* core::String*};
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ . /*@target=B.m*/ m(throw '', throw '');
+ ^" in new self::B::•<dynamic>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, dynamic) → dynamic) → core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<dynamic>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, dynamic) → dynamic) → core::String};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.outline.expect
index af42f3e..661b49c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.outline.expect
@@ -1,60 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
;
- abstract method m(dynamic a, (dynamic, self::I::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::I::E%) → core::String f) → core::String;
}
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<self::A::E*> /*hasConstConstructor*/ {
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<self::A::E%> /*hasConstConstructor*/ {
+ const constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::A::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::A::E%) → core::String f) → core::String;
}
abstract class M extends core::Object {
- final field core::int* y;
- synthetic constructor •() → self::M*
+ final field core::int y;
+ synthetic constructor •() → self::M
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M /*hasConstConstructor*/ {
+ const constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
;
- method m(dynamic a, (dynamic, self::B::E*) →* dynamic f) → core::String*
+ method m(dynamic a, (dynamic, self::B::E%) → dynamic f) → core::String
;
}
static method foo() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.transformed.expect
index 5b19a39..d2e0a0f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart.weak.transformed.expect
@@ -1,74 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// . /*@target=B.m*/ m(null, null);
+// . /*@target=B.m*/ m(throw '', throw '');
// ^
//
import self as self;
import "dart:core" as core;
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::I::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::I::E%) → core::String f) → core::String;
}
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<self::A::E*> /*hasConstConstructor*/ {
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<self::A::E%> /*hasConstConstructor*/ {
+ const constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, self::A::E*) →* core::String* f) → core::String*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, self::A::E%) → core::String f) → core::String;
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → self::M*
+ final field core::int y = 0;
+ synthetic constructor •() → self::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M /*hasConstConstructor*/ {
+ const constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, self::B::E*) →* dynamic f) → core::String* {}
+ method m(dynamic a, (dynamic, self::B::E%) → dynamic f) → core::String
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- . /*@target=B.m*/ m(null, null);
- ^" in new self::B::•<dynamic>().{self::B::m}(null, null){(dynamic, (dynamic, dynamic) →* dynamic) →* core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<dynamic>().{self::B::m}(null, null){(dynamic, (dynamic, dynamic) →* dynamic) →* core::String*};
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_5.dart:30:25: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ . /*@target=B.m*/ m(throw '', throw '');
+ ^" in new self::B::•<dynamic>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, dynamic) → dynamic) → core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<dynamic>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, dynamic) → dynamic) → core::String};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart
index db5ca36..26c4c1b 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart
@@ -1,16 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'infer_types_on_generic_instantiations_in_library_cycle_a.dart';
abstract class A<E> implements I<E> {
- const A();
-
- final E value = null;
+ final E value = throw '';
}
abstract class M {
@@ -18,18 +16,18 @@
}
class B<E> extends A<E> implements M {
- const B();
int get y => 0;
- m(a, f(v, int e)) {}
+ m(a, f(v, int e)) => throw '';
}
foo() {
int y = /*error:INVALID_ASSIGNMENT*/ new B<String>()
- . /*@target=B.m*/ m(null, null)
+ . /*@target=B.m*/ m(throw '', throw '')
. /*@target=A.value*/ value;
- String z =
- new B<String>(). /*@target=B.m*/ m(null, null). /*@target=A.value*/ value;
+ String z = new B<String>()
+ . /*@target=B.m*/ m(throw '', throw '')
+ . /*@target=A.value*/ value;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline.expect
index cbb4736..6291b3c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline.expect
@@ -1,11 +1,9 @@
-// @dart = 2.9
library test;
import 'infer_types_on_generic_instantiations_in_library_cycle_a.dart';
abstract class A<E> implements I<E> {
- const A();
- final E value = null;
+ final E value = throw '';
}
abstract class M {
@@ -13,9 +11,8 @@
}
class B<E> extends A<E> implements M {
- const B();
int get y => 0;
- m(a, f(v, int e)) {}
+ m(a, f(v, int e)) => throw '';
}
foo() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline_modelled.expect
index cbb4736..6291b3c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.textual_outline_modelled.expect
@@ -1,11 +1,9 @@
-// @dart = 2.9
library test;
import 'infer_types_on_generic_instantiations_in_library_cycle_a.dart';
abstract class A<E> implements I<E> {
- const A();
- final E value = null;
+ final E value = throw '';
}
abstract class M {
@@ -13,9 +11,8 @@
}
class B<E> extends A<E> implements M {
- const B();
int get y => 0;
- m(a, f(v, int e)) {}
+ m(a, f(v, int e)) => throw '';
}
foo() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.expect
index 27f0da3..bc54fe8 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// . /*@target=A.value*/ value;
// ^
//
@@ -12,75 +12,46 @@
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements inf::I<self::A::E*> /*hasConstConstructor*/ {
- final field self::A::E* value = null;
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements inf::I<self::A::E%> {
+ final field self::A::E% value = throw "";
+ synthetic constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → self::M*
+ final field core::int y = 0;
+ synthetic constructor •() → self::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M {
+ synthetic constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → self::A<self::B::E*>* {}
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → self::A<self::B::E%>
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
. /*@target=A.value*/ value;
- ^" in new self::B::•<core::String*>().{self::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* self::A<core::String*>*}.{self::A::value}{core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<core::String*>().{self::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* self::A<core::String*>*}.{self::A::value}{core::String*};
+ ^" in new self::B::•<core::String>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → self::A<core::String>}.{self::A::value}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<core::String>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → self::A<core::String>}.{self::A::value}{core::String};
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as self;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → inf::I<inf::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → inf::I<inf::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → self::A<inf::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → self::A<inf::I::E%>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.modular.expect
index 27f0da3..bc54fe8 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// . /*@target=A.value*/ value;
// ^
//
@@ -12,75 +12,46 @@
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements inf::I<self::A::E*> /*hasConstConstructor*/ {
- final field self::A::E* value = null;
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements inf::I<self::A::E%> {
+ final field self::A::E% value = throw "";
+ synthetic constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → self::M*
+ final field core::int y = 0;
+ synthetic constructor •() → self::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M {
+ synthetic constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → self::A<self::B::E*>* {}
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → self::A<self::B::E%>
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
. /*@target=A.value*/ value;
- ^" in new self::B::•<core::String*>().{self::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* self::A<core::String*>*}.{self::A::value}{core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<core::String*>().{self::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* self::A<core::String*>*}.{self::A::value}{core::String*};
+ ^" in new self::B::•<core::String>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → self::A<core::String>}.{self::A::value}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<core::String>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → self::A<core::String>}.{self::A::value}{core::String};
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as self;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → inf::I<inf::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → inf::I<inf::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → self::A<inf::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → self::A<inf::I::E%>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.outline.expect
index ee54005..7f214a6 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.outline.expect
@@ -1,48 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle_a.dart" as inf;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements inf::I<self::A::E*> /*hasConstConstructor*/ {
- final field self::A::E* value = null;
- const constructor •() → self::A<self::A::E*>*
- : super core::Object::•()
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements inf::I<self::A::E%> {
+ final field self::A::E% value;
+ synthetic constructor •() → self::A<self::A::E%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y;
- synthetic constructor •() → self::M*
+ final field core::int y;
+ synthetic constructor •() → self::M
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
- : super self::A::•()
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M {
+ synthetic constructor •() → self::B<self::B::E%>
;
- get y() → core::int*
+ get y() → core::int
;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → self::A<self::B::E*>*
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → self::A<self::B::E%>
;
}
static method foo() → dynamic
@@ -50,27 +28,17 @@
static method main() → dynamic
;
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as self;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → inf::I<inf::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → inf::I<inf::I::E%>
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → self::A<inf::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → self::A<inf::I::E%>;
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.transformed.expect
index 27f0da3..bc54fe8 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// . /*@target=A.value*/ value;
// ^
//
@@ -12,75 +12,46 @@
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements inf::I<self::A::E*> /*hasConstConstructor*/ {
- final field self::A::E* value = null;
- const constructor •() → self::A<self::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements inf::I<self::A::E%> {
+ final field self::A::E% value = throw "";
+ synthetic constructor •() → self::A<self::A::E%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → self::M*
+ final field core::int y = 0;
+ synthetic constructor •() → self::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends self::A<self::B::E*> implements self::M /*hasConstConstructor*/ {
- const constructor •() → self::B<self::B::E*>*
+class B<E extends core::Object? = dynamic> extends self::A<self::B::E%> implements self::M {
+ synthetic constructor •() → self::B<self::B::E%>
: super self::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → self::A<self::B::E*>* {}
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → self::A<self::B::E%>
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
. /*@target=A.value*/ value;
- ^" in new self::B::•<core::String*>().{self::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* self::A<core::String*>*}.{self::A::value}{core::String*} as{TypeError} core::int*;
- core::String* z = new self::B::•<core::String*>().{self::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* self::A<core::String*>*}.{self::A::value}{core::String*};
+ ^" in new self::B::•<core::String>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → self::A<core::String>}.{self::A::value}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new self::B::•<core::String>().{self::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → self::A<core::String>}.{self::A::value}{core::String};
}
static method main() → dynamic {}
-library;
+library /*isNonNullableByDefault*/;
import self as inf;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as self;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → inf::I<inf::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → inf::I<inf::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → self::A<inf::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → self::A<inf::I::E%>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart
index a18c6f7..0d4db22 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
import 'infer_types_on_generic_instantiations_in_library_cycle.dart';
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline.expect
index b724d7e..05abbc2 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_types_on_generic_instantiations_in_library_cycle.dart';
abstract class I<E> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline_modelled.expect
index b724d7e..05abbc2 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'infer_types_on_generic_instantiations_in_library_cycle.dart';
abstract class I<E> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.expect
index e7555d5..175ca7d 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as test;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → test::A<self::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → test::A<self::I::E%>;
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// . /*@target=A.value*/ value;
// ^
//
@@ -37,50 +27,31 @@
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<test::A::E*> /*hasConstConstructor*/ {
- final field test::A::E* value = null;
- const constructor •() → test::A<test::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<test::A::E%> {
+ final field test::A::E% value = throw "";
+ synthetic constructor •() → test::A<test::A::E%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → test::M*
+ final field core::int y = 0;
+ synthetic constructor •() → test::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends test::A<test::B::E*> implements test::M /*hasConstConstructor*/ {
- const constructor •() → test::B<test::B::E*>*
+class B<E extends core::Object? = dynamic> extends test::A<test::B::E%> implements test::M {
+ synthetic constructor •() → test::B<test::B::E%>
: super test::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → test::A<test::B::E*>* {}
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → test::A<test::B::E%>
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
. /*@target=A.value*/ value;
- ^" in new test::B::•<core::String*>().{test::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* test::A<core::String*>*}.{test::A::value}{core::String*} as{TypeError} core::int*;
- core::String* z = new test::B::•<core::String*>().{test::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* test::A<core::String*>*}.{test::A::value}{core::String*};
+ ^" in new test::B::•<core::String>().{test::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → test::A<core::String>}.{test::A::value}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new test::B::•<core::String>().{test::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → test::A<core::String>}.{test::A::value}{core::String};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.modular.expect
index e7555d5..175ca7d 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as test;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → test::A<self::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → test::A<self::I::E%>;
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// . /*@target=A.value*/ value;
// ^
//
@@ -37,50 +27,31 @@
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<test::A::E*> /*hasConstConstructor*/ {
- final field test::A::E* value = null;
- const constructor •() → test::A<test::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<test::A::E%> {
+ final field test::A::E% value = throw "";
+ synthetic constructor •() → test::A<test::A::E%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → test::M*
+ final field core::int y = 0;
+ synthetic constructor •() → test::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends test::A<test::B::E*> implements test::M /*hasConstConstructor*/ {
- const constructor •() → test::B<test::B::E*>*
+class B<E extends core::Object? = dynamic> extends test::A<test::B::E%> implements test::M {
+ synthetic constructor •() → test::B<test::B::E%>
: super test::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → test::A<test::B::E*>* {}
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → test::A<test::B::E%>
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
. /*@target=A.value*/ value;
- ^" in new test::B::•<core::String*>().{test::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* test::A<core::String*>*}.{test::A::value}{core::String*} as{TypeError} core::int*;
- core::String* z = new test::B::•<core::String*>().{test::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* test::A<core::String*>*}.{test::A::value}{core::String*};
+ ^" in new test::B::•<core::String>().{test::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → test::A<core::String>}.{test::A::value}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new test::B::•<core::String>().{test::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → test::A<core::String>}.{test::A::value}{core::String};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.outline.expect
index 0b3d43f..4496783 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.outline.expect
@@ -1,73 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as test;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → test::A<self::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → test::A<self::I::E%>;
}
static method main() → dynamic
;
-library test;
+library test /*isNonNullableByDefault*/;
import self as test;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle_a.dart" as self;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<test::A::E*> /*hasConstConstructor*/ {
- final field test::A::E* value = null;
- const constructor •() → test::A<test::A::E*>*
- : super core::Object::•()
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<test::A::E%> {
+ final field test::A::E% value;
+ synthetic constructor •() → test::A<test::A::E%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y;
- synthetic constructor •() → test::M*
+ final field core::int y;
+ synthetic constructor •() → test::M
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends test::A<test::B::E*> implements test::M /*hasConstConstructor*/ {
- const constructor •() → test::B<test::B::E*>*
- : super test::A::•()
+class B<E extends core::Object? = dynamic> extends test::A<test::B::E%> implements test::M {
+ synthetic constructor •() → test::B<test::B::E%>
;
- get y() → core::int*
+ get y() → core::int
;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → test::A<test::B::E*>*
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → test::A<test::B::E%>
;
}
static method foo() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.transformed.expect
index e7555d5..175ca7d 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle_a.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "infer_types_on_generic_instantiations_in_library_cycle.dart" as test;
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle.dart";
-abstract class I<E extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::E*>*
+abstract class I<E extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::E%>
: super core::Object::•()
;
- abstract method m(dynamic a, (dynamic, core::int*) →* core::String* f) → test::A<self::I::E*>*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method m(dynamic a, (dynamic, core::int) → core::String f) → test::A<self::I::E%>;
}
static method main() → dynamic {}
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
// . /*@target=A.value*/ value;
// ^
//
@@ -37,50 +27,31 @@
import "org-dartlang-testcase:///infer_types_on_generic_instantiations_in_library_cycle_a.dart";
-abstract class A<E extends core::Object* = dynamic> extends core::Object implements self::I<test::A::E*> /*hasConstConstructor*/ {
- final field test::A::E* value = null;
- const constructor •() → test::A<test::A::E*>*
+abstract class A<E extends core::Object? = dynamic> extends core::Object implements self::I<test::A::E%> {
+ final field test::A::E% value = throw "";
+ synthetic constructor •() → test::A<test::A::E%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class M extends core::Object {
- final field core::int* y = 0;
- synthetic constructor •() → test::M*
+ final field core::int y = 0;
+ synthetic constructor •() → test::M
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<E extends core::Object* = dynamic> extends test::A<test::B::E*> implements test::M /*hasConstConstructor*/ {
- const constructor •() → test::B<test::B::E*>*
+class B<E extends core::Object? = dynamic> extends test::A<test::B::E%> implements test::M {
+ synthetic constructor •() → test::B<test::B::E%>
: super test::A::•()
;
- get y() → core::int*
+ get y() → core::int
return 0;
- method m(dynamic a, (dynamic, core::int*) →* dynamic f) → test::A<test::B::E*>* {}
+ method m(dynamic a, (dynamic, core::int) → dynamic f) → test::A<test::B::E%>
+ return throw "";
}
static method foo() → dynamic {
- core::int* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:30:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_in_library_cycle.dart:27:29: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
. /*@target=A.value*/ value;
- ^" in new test::B::•<core::String*>().{test::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* test::A<core::String*>*}.{test::A::value}{core::String*} as{TypeError} core::int*;
- core::String* z = new test::B::•<core::String*>().{test::B::m}(null, null){(dynamic, (dynamic, core::int*) →* dynamic) →* test::A<core::String*>*}.{test::A::value}{core::String*};
+ ^" in new test::B::•<core::String>().{test::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → test::A<core::String>}.{test::A::value}{core::String} as{TypeError,ForNonNullableByDefault} core::int;
+ core::String z = new test::B::•<core::String>().{test::B::m}(throw "", throw ""){(dynamic, (dynamic, core::int) → dynamic) → test::A<core::String>}.{test::A::value}{core::String};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart
index bf5a41d..715b06e 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A<T> {
- final T x = null;
+ final T x = throw '';
}
class B implements A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline.expect
index 1c2fa21..744b33b 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A<T> {
- final T x = null;
+ final T x = throw '';
}
class B implements A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline_modelled.expect
index 1c2fa21..744b33b 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A<T> {
- final T x = null;
+ final T x = throw '';
}
class B implements A<int> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.expect
index bd1fcf0..b14e415 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,48 +7,28 @@
// /*error:INVALID_METHOD_OVERRIDE*/ dynamic get x => 3;
// ^
// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart:9:11: Context: This is the overridden method ('x').
-// final T x = null;
+// final T x = throw '';
// ^
//
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
: super core::Object::•()
;
get x() → dynamic
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.modular.expect
index bd1fcf0..b14e415 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,48 +7,28 @@
// /*error:INVALID_METHOD_OVERRIDE*/ dynamic get x => 3;
// ^
// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart:9:11: Context: This is the overridden method ('x').
-// final T x = null;
+// final T x = throw '';
// ^
//
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x = null;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
: super core::Object::•()
;
get x() → dynamic
return 3;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic {
- core::String* y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::String*;
- core::int* z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic} core::int*;
+ core::String y = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
+ core::int z = new self::B::•().{self::B::x}{dynamic} as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {
self::foo();
diff --git a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.outline.expect
index bfe3eef..9e53db54 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,42 +7,22 @@
// /*error:INVALID_METHOD_OVERRIDE*/ dynamic get x => 3;
// ^
// pkg/front_end/testcases/inference/infer_types_on_generic_instantiations_infer.dart:9:11: Context: This is the overridden method ('x').
-// final T x = null;
+// final T x = throw '';
// ^
//
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- final field self::A::T* x;
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ final field self::A::T% x;
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B extends core::Object implements self::A<core::int*> {
- synthetic constructor •() → self::B*
+class B extends core::Object implements self::A<core::int> {
+ synthetic constructor •() → self::B
;
get x() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method foo() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart
index 297fbb4..84c283d 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +11,7 @@
class Bar<T extends Iterable<String>> {
void foo(T t) {
- for (var /*@ type=String* */ i in t) {
+ for (var /*@type=String*/ i in t) {
int x = /*error:INVALID_ASSIGNMENT*/ i;
}
}
@@ -19,7 +19,7 @@
class Baz<T, E extends Iterable<T>, S extends E> {
void foo(S t) {
- for (var /*@ type=Baz::T* */ i in t) {
+ for (var /*@type=Baz::T%*/ i in t) {
int x = /*error:INVALID_ASSIGNMENT*/ i;
T y = i;
}
@@ -27,8 +27,8 @@
}
test() {
- var /*@ type=List<Foo*>* */ list = <Foo>[];
- for (var /*@ type=Foo* */ x in list) {
+ var /*@type=List<Foo>*/ list = <Foo>[];
+ for (var /*@type=Foo*/ x in list) {
String y = /*error:INVALID_ASSIGNMENT*/ x;
}
@@ -47,15 +47,15 @@
Iterable iter = list;
for (Foo /*info:DYNAMIC_CAST*/ x in iter) {
- var /*@ type=Foo* */ y = x;
+ var /*@type=Foo*/ y = x;
}
dynamic iter2 = list;
for (Foo /*info:DYNAMIC_CAST*/ x in /*info:DYNAMIC_CAST*/ iter2) {
- var /*@ type=Foo* */ y = x;
+ var /*@type=Foo*/ y = x;
}
- var /*@ type=Map<String*, Foo*>* */ map = <String, Foo>{};
+ var /*@type=Map<String, Foo>*/ map = <String, Foo>{};
// Error: map must be an Iterable.
for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
String y = /*info:DYNAMIC_CAST*/ x;
@@ -63,7 +63,7 @@
// We're not properly inferring that map.keys is an Iterable<String>
// and that x is a String.
- for (var /*@ type=String* */ x in map. /*@target=Map.keys*/ keys) {
+ for (var /*@type=String*/ x in map. /*@target=Map.keys*/ keys) {
String y = x;
}
}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline.expect
index 6ab30aa..db1a358 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline_modelled.expect
index 1a50fa6..b1dd9b9 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Bar<T extends Iterable<String>> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect
index 680de12..26958b0 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -32,111 +32,81 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* bar = 42;
- synthetic constructor •() → self::Foo*
+ field core::int bar = 42;
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Iterable<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
: super core::Object::•()
;
- method foo(covariant-by-class self::Bar::T* t) → void {
- for (core::String* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:15:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Bar::T t) → void {
+ for (core::String i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:15:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends core::Iterable<self::Baz::T*>* = core::Iterable<dynamic>*, S extends self::Baz::E* = core::Iterable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends core::Iterable<self::Baz::T%> = core::Iterable<dynamic>, S extends self::Baz::E = core::Iterable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
: super core::Object::•()
;
- method foo(covariant-by-class self::Baz::S* t) → void {
- for (self::Baz::T* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:23:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Baz::S t) → void {
+ for (self::Baz::T% i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:23:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
- self::Baz::T* y = i;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
+ self::Baz::T% y = i;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- core::List<self::Foo*>* list = <self::Foo*>[];
- for (self::Foo* x in list) {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:32:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ core::List<self::Foo> list = <self::Foo>[];
+ for (self::Foo x in list) {
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:32:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
String y = /*error:INVALID_ASSIGNMENT*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
}
for (dynamic x in list) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- for (final self::Foo* #t1 in list) {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:39:15: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ for (final self::Foo #t1 in list) {
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:39:15: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
Try changing the type of the variable.
for (String x in /*error:FOR_IN_OF_INVALID_ELEMENT_TYPE*/ list) {
- ^" in #t1 as{TypeError} core::String*;
- core::String* y = x;
+ ^" in #t1 as{TypeError,ForNonNullableByDefault} core::String;
+ core::String y = x;
}
dynamic z;
- for (final self::Foo* #t2 in list) {
+ for (final self::Foo #t2 in list) {
z = #t2;
- core::String* y = z as{TypeError,ForDynamic} core::String*;
+ core::String y = z as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- core::Iterable<dynamic>* iter = list;
+ core::Iterable<dynamic> iter = list;
for (final dynamic #t3 in iter) {
- self::Foo* x = #t3 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
dynamic iter2 = list;
- for (final dynamic #t4 in iter2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
- self::Foo* x = #t4 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ for (final dynamic #t4 in iter2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ self::Foo x = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
- core::Map<core::String*, self::Foo*>* map = <core::String*, self::Foo*>{};
+ core::Map<core::String, self::Foo> map = <core::String, self::Foo>{};
for (dynamic x in invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:60:70: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Map' is from 'dart:core'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
- 'Iterable' is from 'dart:core'.
for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
- ^" in map as{TypeError} core::Iterable<dynamic>*) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ ^" in map as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- for (core::String* x in map.{core::Map::keys}{core::Iterable<core::String*>*}) {
- core::String* y = x;
+ for (core::String x in map.{core::Map::keys}{core::Iterable<core::String>}) {
+ core::String y = x;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.modular.expect
index 680de12..26958b0 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -32,111 +32,81 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* bar = 42;
- synthetic constructor •() → self::Foo*
+ field core::int bar = 42;
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Iterable<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
: super core::Object::•()
;
- method foo(covariant-by-class self::Bar::T* t) → void {
- for (core::String* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:15:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Bar::T t) → void {
+ for (core::String i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:15:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends core::Iterable<self::Baz::T*>* = core::Iterable<dynamic>*, S extends self::Baz::E* = core::Iterable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends core::Iterable<self::Baz::T%> = core::Iterable<dynamic>, S extends self::Baz::E = core::Iterable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
: super core::Object::•()
;
- method foo(covariant-by-class self::Baz::S* t) → void {
- for (self::Baz::T* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:23:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Baz::S t) → void {
+ for (self::Baz::T% i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:23:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
- self::Baz::T* y = i;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
+ self::Baz::T% y = i;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- core::List<self::Foo*>* list = <self::Foo*>[];
- for (self::Foo* x in list) {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:32:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ core::List<self::Foo> list = <self::Foo>[];
+ for (self::Foo x in list) {
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:32:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
String y = /*error:INVALID_ASSIGNMENT*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
}
for (dynamic x in list) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- for (final self::Foo* #t1 in list) {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:39:15: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ for (final self::Foo #t1 in list) {
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:39:15: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
Try changing the type of the variable.
for (String x in /*error:FOR_IN_OF_INVALID_ELEMENT_TYPE*/ list) {
- ^" in #t1 as{TypeError} core::String*;
- core::String* y = x;
+ ^" in #t1 as{TypeError,ForNonNullableByDefault} core::String;
+ core::String y = x;
}
dynamic z;
- for (final self::Foo* #t2 in list) {
+ for (final self::Foo #t2 in list) {
z = #t2;
- core::String* y = z as{TypeError,ForDynamic} core::String*;
+ core::String y = z as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- core::Iterable<dynamic>* iter = list;
+ core::Iterable<dynamic> iter = list;
for (final dynamic #t3 in iter) {
- self::Foo* x = #t3 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
dynamic iter2 = list;
- for (final dynamic #t4 in iter2 as{TypeError,ForDynamic} core::Iterable<dynamic>*) {
- self::Foo* x = #t4 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ for (final dynamic #t4 in iter2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ self::Foo x = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
- core::Map<core::String*, self::Foo*>* map = <core::String*, self::Foo*>{};
+ core::Map<core::String, self::Foo> map = <core::String, self::Foo>{};
for (dynamic x in invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:60:70: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Map' is from 'dart:core'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
- 'Iterable' is from 'dart:core'.
for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
- ^" in map as{TypeError} core::Iterable<dynamic>*) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ ^" in map as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- for (core::String* x in map.{core::Map::keys}{core::Iterable<core::String*>*}) {
- core::String* y = x;
+ for (core::String x in map.{core::Map::keys}{core::Iterable<core::String>}) {
+ core::String y = x;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect
index aafbf7f..7d40754 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.outline.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* bar;
- synthetic constructor •() → self::Foo*
+ field core::int bar;
+ synthetic constructor •() → self::Foo
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Iterable<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
;
- method foo(covariant-by-class self::Bar::T* t) → void
+ method foo(covariant-by-class self::Bar::T t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends core::Iterable<self::Baz::T*>* = core::Iterable<dynamic>*, S extends self::Baz::E* = core::Iterable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends core::Iterable<self::Baz::T%> = core::Iterable<dynamic>, S extends self::Baz::E = core::Iterable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
;
- method foo(covariant-by-class self::Baz::S* t) → void
+ method foo(covariant-by-class self::Baz::S t) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect
index 06b4abd..4fab18b 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -32,169 +32,139 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* bar = 42;
- synthetic constructor •() → self::Foo*
+ field core::int bar = 42;
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Iterable<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Iterable<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
: super core::Object::•()
;
- method foo(covariant-by-class self::Bar::T* t) → void {
+ method foo(covariant-by-class self::Bar::T t) → void {
{
- core::Iterator<core::String*>* :sync-for-iterator = t.{core::Iterable::iterator}{core::Iterator<core::String*>*};
+ core::Iterator<core::String> :sync-for-iterator = t.{core::Iterable::iterator}{core::Iterator<core::String>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- core::String* i = :sync-for-iterator.{core::Iterator::current}{core::String*};
+ core::String i = :sync-for-iterator.{core::Iterator::current}{core::String};
{
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:15:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:15:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
}
}
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends core::Iterable<self::Baz::T*>* = core::Iterable<dynamic>*, S extends self::Baz::E* = core::Iterable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends core::Iterable<self::Baz::T%> = core::Iterable<dynamic>, S extends self::Baz::E = core::Iterable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
: super core::Object::•()
;
- method foo(covariant-by-class self::Baz::S* t) → void {
+ method foo(covariant-by-class self::Baz::S t) → void {
{
- core::Iterator<self::Baz::T*>* :sync-for-iterator = t.{core::Iterable::iterator}{core::Iterator<self::Baz::T*>*};
+ core::Iterator<self::Baz::T%> :sync-for-iterator = t.{core::Iterable::iterator}{core::Iterator<self::Baz::T%>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- self::Baz::T* i = :sync-for-iterator.{core::Iterator::current}{self::Baz::T*};
+ self::Baz::T% i = :sync-for-iterator.{core::Iterator::current}{self::Baz::T%};
{
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:23:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:23:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
- self::Baz::T* y = i;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
+ self::Baz::T% y = i;
}
}
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test() → dynamic {
- core::List<self::Foo*>* list = core::_GrowableList::•<self::Foo*>(0);
+ core::List<self::Foo> list = core::_GrowableList::•<self::Foo>(0);
{
- core::Iterator<self::Foo*>* :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo*>*};
+ core::Iterator<self::Foo> :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- self::Foo* x = :sync-for-iterator.{core::Iterator::current}{self::Foo*};
+ self::Foo x = :sync-for-iterator.{core::Iterator::current}{self::Foo};
{
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:32:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:32:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
String y = /*error:INVALID_ASSIGNMENT*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
}
}
}
{
- core::Iterator<self::Foo*>* :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo*>*};
+ core::Iterator<self::Foo> :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- dynamic x = :sync-for-iterator.{core::Iterator::current}{self::Foo*};
+ dynamic x = :sync-for-iterator.{core::Iterator::current}{self::Foo};
{
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
}
{
- core::Iterator<self::Foo*>* :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo*>*};
+ core::Iterator<self::Foo> :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::Foo* #t1 = :sync-for-iterator.{core::Iterator::current}{self::Foo*};
+ final self::Foo #t1 = :sync-for-iterator.{core::Iterator::current}{self::Foo};
{
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:39:15: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:39:15: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
Try changing the type of the variable.
for (String x in /*error:FOR_IN_OF_INVALID_ELEMENT_TYPE*/ list) {
- ^" in #t1 as{TypeError} core::String*;
- core::String* y = x;
+ ^" in #t1 as{TypeError,ForNonNullableByDefault} core::String;
+ core::String y = x;
}
}
}
dynamic z;
{
- core::Iterator<self::Foo*>* :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo*>*};
+ core::Iterator<self::Foo> :sync-for-iterator = list.{core::Iterable::iterator}{core::Iterator<self::Foo>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::Foo* #t2 = :sync-for-iterator.{core::Iterator::current}{self::Foo*};
+ final self::Foo #t2 = :sync-for-iterator.{core::Iterator::current}{self::Foo};
{
z = #t2;
- core::String* y = z as{TypeError,ForDynamic} core::String*;
+ core::String y = z as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
}
- core::Iterable<dynamic>* iter = list;
+ core::Iterable<dynamic> iter = list;
{
- core::Iterator<dynamic>* :sync-for-iterator = iter.{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ core::Iterator<dynamic> :sync-for-iterator = iter.{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t3 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
- self::Foo* x = #t3 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
}
}
dynamic iter2 = list;
{
- core::Iterator<dynamic>* :sync-for-iterator = (iter2 as{TypeError,ForDynamic} core::Iterable<dynamic>*).{core::Iterable::iterator}{core::Iterator<dynamic>*};
+ core::Iterator<dynamic> :sync-for-iterator = (iter2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::Iterable<dynamic>).{core::Iterable::iterator}{core::Iterator<dynamic>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{dynamic};
{
- self::Foo* x = #t4 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
}
}
- core::Map<core::String*, self::Foo*>* map = <core::String*, self::Foo*>{};
+ core::Map<core::String, self::Foo> map = <core::String, self::Foo>{};
{
- core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:60:70: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart:60:70: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Map' is from 'dart:core'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop.dart'.
- 'Iterable' is from 'dart:core'.
for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
- ^" in map as{TypeError} core::Iterable<dynamic>*.{core::Iterable::iterator}{core::Iterator<Never>*};
+ ^" in map as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
dynamic x = :sync-for-iterator.{core::Iterator::current}{Never};
{
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
}
{
- core::Iterator<core::String*>* :sync-for-iterator = map.{core::Map::keys}{core::Iterable<core::String*>*}.{core::Iterable::iterator}{core::Iterator<core::String*>*};
+ core::Iterator<core::String> :sync-for-iterator = map.{core::Map::keys}{core::Iterable<core::String>}.{core::Iterable::iterator}{core::Iterator<core::String>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- core::String* x = :sync-for-iterator.{core::Iterator::current}{core::String*};
+ core::String x = :sync-for-iterator.{core::Iterator::current}{core::String};
{
- core::String* y = x;
+ core::String y = x;
}
}
}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart
index ada372f..da31867 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,7 +13,7 @@
class Bar<T extends Stream<String>> {
foo(T t) async {
- await for (var /*@ type=String* */ i in t) {
+ await for (var /*@type=String*/ i in t) {
int x = /*error:INVALID_ASSIGNMENT*/ i;
}
}
@@ -21,7 +21,7 @@
class Baz<T, E extends Stream<T>, S extends E> {
foo(S t) async {
- await for (var /*@ type=Baz::T* */ i in t) {
+ await for (var /*@type=Baz::T%*/ i in t) {
int x = /*error:INVALID_ASSIGNMENT*/ i;
T y = i;
}
@@ -29,12 +29,12 @@
}
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
test() async {
- var /*@ type=MyStream<Foo*>* */ myStream = new MyStream<Foo>();
- await for (var /*@ type=Foo* */ x in myStream) {
+ var /*@type=MyStream<Foo>*/ myStream = new MyStream<Foo>();
+ await for (var /*@type=Foo*/ x in myStream) {
String y = /*error:INVALID_ASSIGNMENT*/ x;
}
@@ -53,15 +53,15 @@
Stream stream = myStream;
await for (Foo /*info:DYNAMIC_CAST*/ x in stream) {
- var /*@ type=Foo* */ y = x;
+ var /*@type=Foo*/ y = x;
}
dynamic stream2 = myStream;
await for (Foo /*info:DYNAMIC_CAST*/ x in /*info:DYNAMIC_CAST*/ stream2) {
- var /*@ type=Foo* */ y = x;
+ var /*@type=Foo*/ y = x;
}
- var /*@ type=Map<String*, Foo*>* */ map = <String, Foo>{};
+ var /*@type=Map<String, Foo>*/ map = <String, Foo>{};
// Error: map must be a Stream.
await for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
String y = /*info:DYNAMIC_CAST*/ x;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline.expect
index 17a0902..17573e5 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -16,7 +15,7 @@
}
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
test() async {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline_modelled.expect
index 5c461cd..a6bf644 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
import 'dart:async';
abstract class MyStream<T> extends Stream<T> {
- factory MyStream() => null;
+ factory MyStream() => throw '';
}
class Bar<T extends Stream<String>> {
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect
index 0acd6fd..f30cc2e 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -35,164 +35,82 @@
import "dart:async";
class Foo extends core::Object {
- field core::int* bar = 42;
- synthetic constructor •() → self::Foo*
+ field core::int bar = 42;
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends asy::Stream<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
: super core::Object::•()
;
- method foo(covariant-by-class self::Bar::T* t) → dynamic async /* futureValueType= dynamic */ {
- await for (core::String* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:17:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Bar::T t) → dynamic async /* futureValueType= dynamic */ {
+ await for (core::String i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:17:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends asy::Stream<self::Baz::T*>* = asy::Stream<dynamic>*, S extends self::Baz::E* = asy::Stream<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends asy::Stream<self::Baz::T%> = asy::Stream<dynamic>, S extends self::Baz::E = asy::Stream<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
: super core::Object::•()
;
- method foo(covariant-by-class self::Baz::S* t) → dynamic async /* futureValueType= dynamic */ {
- await for (self::Baz::T* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:25:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Baz::S t) → dynamic async /* futureValueType= dynamic */ {
+ await for (self::Baz::T% i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:25:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
- self::Baz::T* y = i;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
+ self::Baz::T% y = i;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
static method test() → dynamic async /* futureValueType= dynamic */ {
- self::MyStream<self::Foo*>* myStream = self::MyStream::•<self::Foo*>();
- await for (self::Foo* x in myStream) {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:38:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ self::MyStream<self::Foo> myStream = self::MyStream::•<self::Foo>();
+ await for (self::Foo x in myStream) {
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:38:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
String y = /*error:INVALID_ASSIGNMENT*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
}
await for (dynamic x in myStream) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- await for (final self::Foo* #t1 in myStream) {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:45:21: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ await for (final self::Foo #t1 in myStream) {
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:45:21: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
Try changing the type of the variable.
await for (String x in /*error:FOR_IN_OF_INVALID_ELEMENT_TYPE*/ myStream) {
- ^" in #t1 as{TypeError} core::String*;
- core::String* y = x;
+ ^" in #t1 as{TypeError,ForNonNullableByDefault} core::String;
+ core::String y = x;
}
dynamic z;
- await for (final self::Foo* #t2 in myStream) {
+ await for (final self::Foo #t2 in myStream) {
z = #t2;
- core::String* y = z as{TypeError,ForDynamic} core::String*;
+ core::String y = z as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- asy::Stream<dynamic>* stream = myStream;
+ asy::Stream<dynamic> stream = myStream;
await for (final dynamic #t3 in stream) {
- self::Foo* x = #t3 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
dynamic stream2 = myStream;
- await for (final dynamic #t4 in stream2 as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
- self::Foo* x = #t4 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ await for (final dynamic #t4 in stream2 as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ self::Foo x = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
- core::Map<core::String*, self::Foo*>* map = <core::String*, self::Foo*>{};
+ core::Map<core::String, self::Foo> map = <core::String, self::Foo>{};
await for (dynamic x in invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:66:76: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Map' is from 'dart:core'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
- 'Stream' is from 'dart:async'.
await for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
- ^" in map as{TypeError} asy::Stream<dynamic>*) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ ^" in map as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
static method main() → dynamic {}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.modular.expect
index 0acd6fd..f30cc2e 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -35,164 +35,82 @@
import "dart:async";
class Foo extends core::Object {
- field core::int* bar = 42;
- synthetic constructor •() → self::Foo*
+ field core::int bar = 42;
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends asy::Stream<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
: super core::Object::•()
;
- method foo(covariant-by-class self::Bar::T* t) → dynamic async /* futureValueType= dynamic */ {
- await for (core::String* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:17:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Bar::T t) → dynamic async /* futureValueType= dynamic */ {
+ await for (core::String i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:17:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends asy::Stream<self::Baz::T*>* = asy::Stream<dynamic>*, S extends self::Baz::E* = asy::Stream<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends asy::Stream<self::Baz::T%> = asy::Stream<dynamic>, S extends self::Baz::E = asy::Stream<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
: super core::Object::•()
;
- method foo(covariant-by-class self::Baz::S* t) → dynamic async /* futureValueType= dynamic */ {
- await for (self::Baz::T* i in t) {
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:25:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
+ method foo(covariant-by-class self::Baz::S t) → dynamic async /* futureValueType= dynamic */ {
+ await for (self::Baz::T% i in t) {
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:25:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
- self::Baz::T* y = i;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
+ self::Baz::T% y = i;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
static method test() → dynamic async /* futureValueType= dynamic */ {
- self::MyStream<self::Foo*>* myStream = self::MyStream::•<self::Foo*>();
- await for (self::Foo* x in myStream) {
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:38:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ self::MyStream<self::Foo> myStream = self::MyStream::•<self::Foo>();
+ await for (self::Foo x in myStream) {
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:38:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
String y = /*error:INVALID_ASSIGNMENT*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
}
await for (dynamic x in myStream) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- await for (final self::Foo* #t1 in myStream) {
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:45:21: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ await for (final self::Foo #t1 in myStream) {
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:45:21: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
Try changing the type of the variable.
await for (String x in /*error:FOR_IN_OF_INVALID_ELEMENT_TYPE*/ myStream) {
- ^" in #t1 as{TypeError} core::String*;
- core::String* y = x;
+ ^" in #t1 as{TypeError,ForNonNullableByDefault} core::String;
+ core::String y = x;
}
dynamic z;
- await for (final self::Foo* #t2 in myStream) {
+ await for (final self::Foo #t2 in myStream) {
z = #t2;
- core::String* y = z as{TypeError,ForDynamic} core::String*;
+ core::String y = z as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
- asy::Stream<dynamic>* stream = myStream;
+ asy::Stream<dynamic> stream = myStream;
await for (final dynamic #t3 in stream) {
- self::Foo* x = #t3 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
dynamic stream2 = myStream;
- await for (final dynamic #t4 in stream2 as{TypeError,ForDynamic} asy::Stream<dynamic>*) {
- self::Foo* x = #t4 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ await for (final dynamic #t4 in stream2 as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ self::Foo x = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
- core::Map<core::String*, self::Foo*>* map = <core::String*, self::Foo*>{};
+ core::Map<core::String, self::Foo> map = <core::String, self::Foo>{};
await for (dynamic x in invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:66:76: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Map' is from 'dart:core'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
- 'Stream' is from 'dart:async'.
await for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
- ^" in map as{TypeError} asy::Stream<dynamic>*) {
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ ^" in map as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
static method main() → dynamic {}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect
index ad06471..00ef50f 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
@@ -6,102 +6,25 @@
import "dart:async";
class Foo extends core::Object {
- field core::int* bar;
- synthetic constructor •() → self::Foo*
+ field core::int bar;
+ synthetic constructor •() → self::Foo
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends asy::Stream<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
;
- method foo(covariant-by-class self::Bar::T* t) → dynamic async
+ method foo(covariant-by-class self::Bar::T t) → dynamic async
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends asy::Stream<self::Baz::T*>* = asy::Stream<dynamic>*, S extends self::Baz::E* = asy::Stream<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends asy::Stream<self::Baz::T%> = asy::Stream<dynamic>, S extends self::Baz::E = asy::Stream<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
;
- method foo(covariant-by-class self::Baz::S* t) → dynamic async
+ method foo(covariant-by-class self::Baz::S t) → dynamic async
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError, () →* void onDone, core::bool* cancelOnError}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
}
static method test() → dynamic async
;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect
index 5cac307..6dc3fe7 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -35,166 +35,89 @@
import "dart:async";
class Foo extends core::Object {
- field core::int* bar = 42;
- synthetic constructor •() → self::Foo*
+ field core::int bar = 42;
+ synthetic constructor •() → self::Foo
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends asy::Stream<core::String*>*> extends core::Object {
- synthetic constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends asy::Stream<core::String>> extends core::Object {
+ synthetic constructor •() → self::Bar<self::Bar::T>
: super core::Object::•()
;
- method foo(covariant-by-class self::Bar::T* t) → dynamic async /* futureValueType= dynamic */ {
+ method foo(covariant-by-class self::Bar::T t) → dynamic async /* futureValueType= dynamic */ {
{
- self::Bar::T* :stream = t;
- asy::_StreamIterator<core::String*>* :for-iterator = new asy::_StreamIterator::•<core::String*>(:stream);
+ self::Bar::T :stream = t;
+ asy::_StreamIterator<core::String>? :for-iterator = new asy::_StreamIterator::•<core::String>(:stream);
try
while (let dynamic #t1 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- core::String* i = :for-iterator.{asy::_StreamIterator::current}{core::String*};
+ core::String i = :for-iterator.{asy::_StreamIterator::current}{core::String};
{
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:17:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:17:44: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::String*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<core::String>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Baz<T extends core::Object* = dynamic, E extends asy::Stream<self::Baz::T*>* = asy::Stream<dynamic>*, S extends self::Baz::E* = asy::Stream<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Baz<self::Baz::T*, self::Baz::E*, self::Baz::S*>*
+class Baz<T extends core::Object? = dynamic, E extends asy::Stream<self::Baz::T%> = asy::Stream<dynamic>, S extends self::Baz::E = asy::Stream<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Baz<self::Baz::T%, self::Baz::E, self::Baz::S>
: super core::Object::•()
;
- method foo(covariant-by-class self::Baz::S* t) → dynamic async /* futureValueType= dynamic */ {
+ method foo(covariant-by-class self::Baz::S t) → dynamic async /* futureValueType= dynamic */ {
{
- self::Baz::S* :stream = t;
- asy::_StreamIterator<self::Baz::T*>* :for-iterator = new asy::_StreamIterator::•<self::Baz::T*>(:stream);
+ self::Baz::S :stream = t;
+ asy::_StreamIterator<self::Baz::T%>? :for-iterator = new asy::_StreamIterator::•<self::Baz::T%>(:stream);
try
while (let dynamic #t2 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- self::Baz::T* i = :for-iterator.{asy::_StreamIterator::current}{self::Baz::T*};
+ self::Baz::T% i = :for-iterator.{asy::_StreamIterator::current}{self::Baz::T%};
{
- core::int* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:25:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
+ core::int x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:25:44: Error: A value of type 'T' can't be assigned to a variable of type 'int'.
int x = /*error:INVALID_ASSIGNMENT*/ i;
- ^" in i as{TypeError} core::int*;
- self::Baz::T* y = i;
+ ^" in i as{TypeError,ForNonNullableByDefault} core::int;
+ self::Baz::T% y = i;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Baz::T*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Baz::T%>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class MyStream<T extends core::Object* = dynamic> extends asy::Stream<self::MyStream::T*> {
- static factory •<T extends core::Object* = dynamic>() → self::MyStream<self::MyStream::•::T*>*
- return null;
- abstract member-signature get isBroadcast() → core::bool*; -> asy::Stream::isBroadcast
- abstract member-signature method asBroadcastStream({(asy::StreamSubscription<self::MyStream::T*>*) →* void onListen = #C1, (asy::StreamSubscription<self::MyStream::T*>*) →* void onCancel = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::asBroadcastStream
- abstract member-signature method where((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::where
- abstract member-signature method map<S extends core::Object* = dynamic>((self::MyStream::T*) →* self::MyStream::map::S* convert) → asy::Stream<self::MyStream::map::S*>*; -> asy::Stream::map
- abstract member-signature method asyncMap<E extends core::Object* = dynamic>((self::MyStream::T*) →* FutureOr<self::MyStream::asyncMap::E*>* convert) → asy::Stream<self::MyStream::asyncMap::E*>*; -> asy::Stream::asyncMap
- abstract member-signature method asyncExpand<E extends core::Object* = dynamic>((self::MyStream::T*) →* asy::Stream<self::MyStream::asyncExpand::E*>* convert) → asy::Stream<self::MyStream::asyncExpand::E*>*; -> asy::Stream::asyncExpand
- abstract member-signature method handleError(core::Function* onError, {(dynamic) →* core::bool* test = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::handleError
- abstract member-signature method expand<S extends core::Object* = dynamic>((self::MyStream::T*) →* core::Iterable<self::MyStream::expand::S*>* convert) → asy::Stream<self::MyStream::expand::S*>*; -> asy::Stream::expand
- abstract member-signature method pipe(covariant-by-class asy::StreamConsumer<self::MyStream::T*>* streamConsumer) → asy::Future<dynamic>*; -> asy::Stream::pipe
- abstract member-signature method transform<S extends core::Object* = dynamic>(covariant-by-class asy::StreamTransformer<self::MyStream::T*, self::MyStream::transform::S*>* streamTransformer) → asy::Stream<self::MyStream::transform::S*>*; -> asy::Stream::transform
- abstract member-signature method reduce(covariant-by-class (self::MyStream::T*, self::MyStream::T*) →* self::MyStream::T* combine) → asy::Future<self::MyStream::T*>*; -> asy::Stream::reduce
- abstract member-signature method fold<S extends core::Object* = dynamic>(self::MyStream::fold::S* initialValue, (self::MyStream::fold::S*, self::MyStream::T*) →* self::MyStream::fold::S* combine) → asy::Future<self::MyStream::fold::S*>*; -> asy::Stream::fold
- abstract member-signature method join([core::String* separator = #C2]) → asy::Future<core::String*>*; -> asy::Stream::join
- abstract member-signature method contains(core::Object* needle) → asy::Future<core::bool*>*; -> asy::Stream::contains
- abstract member-signature method forEach((self::MyStream::T*) →* void action) → asy::Future<dynamic>*; -> asy::Stream::forEach
- abstract member-signature method every((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::every
- abstract member-signature method any((self::MyStream::T*) →* core::bool* test) → asy::Future<core::bool*>*; -> asy::Stream::any
- abstract member-signature get length() → asy::Future<core::int*>*; -> asy::Stream::length
- abstract member-signature get isEmpty() → asy::Future<core::bool*>*; -> asy::Stream::isEmpty
- abstract member-signature method cast<R extends core::Object* = dynamic>() → asy::Stream<self::MyStream::cast::R*>*; -> asy::Stream::cast
- abstract member-signature method toList() → asy::Future<core::List<self::MyStream::T*>*>*; -> asy::Stream::toList
- abstract member-signature method toSet() → asy::Future<core::Set<self::MyStream::T*>*>*; -> asy::Stream::toSet
- abstract member-signature method drain<E extends core::Object* = dynamic>([self::MyStream::drain::E* futureValue = #C1]) → asy::Future<self::MyStream::drain::E*>*; -> asy::Stream::drain
- abstract member-signature method take(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::take
- abstract member-signature method takeWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::takeWhile
- abstract member-signature method skip(core::int* count) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skip
- abstract member-signature method skipWhile((self::MyStream::T*) →* core::bool* test) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::skipWhile
- abstract member-signature method distinct([(self::MyStream::T*, self::MyStream::T*) →* core::bool* equals = #C1]) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::distinct
- abstract member-signature get first() → asy::Future<self::MyStream::T*>*; -> asy::Stream::first
- abstract member-signature get last() → asy::Future<self::MyStream::T*>*; -> asy::Stream::last
- abstract member-signature get single() → asy::Future<self::MyStream::T*>*; -> asy::Stream::single
- abstract member-signature method firstWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::firstWhere
- abstract member-signature method lastWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::lastWhere
- abstract member-signature method singleWhere((self::MyStream::T*) →* core::bool* test, {covariant-by-class () →* self::MyStream::T* orElse = #C1}) → asy::Future<self::MyStream::T*>*; -> asy::Stream::singleWhere
- abstract member-signature method elementAt(core::int* index) → asy::Future<self::MyStream::T*>*; -> asy::Stream::elementAt
- abstract member-signature method timeout(core::Duration* timeLimit, {(asy::EventSink<self::MyStream::T*>*) →* void onTimeout = #C1}) → asy::Stream<self::MyStream::T*>*; -> asy::Stream::timeout
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
- abstract member-signature method listen((self::MyStream::T*) →* void onData, {core::Function* onError = #C1, () →* void onDone = #C1, core::bool* cancelOnError = #C1}) → asy::StreamSubscription<self::MyStream::T*>*; -> asy::Stream::listen
+abstract class MyStream<T extends core::Object? = dynamic> extends asy::Stream<self::MyStream::T%> {
+ static factory •<T extends core::Object? = dynamic>() → self::MyStream<self::MyStream::•::T%>
+ return throw "";
}
static method test() → dynamic async /* futureValueType= dynamic */ {
- self::MyStream<self::Foo*>* myStream = self::MyStream::•<self::Foo*>();
+ self::MyStream<self::Foo> myStream = self::MyStream::•<self::Foo>();
{
- self::MyStream<self::Foo*>* :stream = myStream;
- asy::_StreamIterator<self::Foo*>* :for-iterator = new asy::_StreamIterator::•<self::Foo*>(:stream);
+ self::MyStream<self::Foo> :stream = myStream;
+ asy::_StreamIterator<self::Foo>? :for-iterator = new asy::_StreamIterator::•<self::Foo>(:stream);
try
while (let dynamic #t3 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- self::Foo* x = :for-iterator.{asy::_StreamIterator::current}{self::Foo*};
+ self::Foo x = :for-iterator.{asy::_StreamIterator::current}{self::Foo};
{
- core::String* y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:38:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ core::String y = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:38:45: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
String y = /*error:INVALID_ASSIGNMENT*/ x;
- ^" in x as{TypeError} core::String*;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::String;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Foo*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Foo>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- self::MyStream<self::Foo*>* :stream = myStream;
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ self::MyStream<self::Foo> :stream = myStream;
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t4 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
dynamic x = :for-iterator.{asy::_StreamIterator::current}{dynamic};
{
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
finally
@@ -202,50 +125,50 @@
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- self::MyStream<self::Foo*>* :stream = myStream;
- asy::_StreamIterator<self::Foo*>* :for-iterator = new asy::_StreamIterator::•<self::Foo*>(:stream);
+ self::MyStream<self::Foo> :stream = myStream;
+ asy::_StreamIterator<self::Foo>? :for-iterator = new asy::_StreamIterator::•<self::Foo>(:stream);
try
while (let dynamic #t5 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final self::Foo* #t6 = :for-iterator.{asy::_StreamIterator::current}{self::Foo*};
+ final self::Foo #t6 = :for-iterator.{asy::_StreamIterator::current}{self::Foo};
{
- core::String* x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:45:21: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
+ core::String x = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:45:21: Error: A value of type 'Foo' can't be assigned to a variable of type 'String'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
Try changing the type of the variable.
await for (String x in /*error:FOR_IN_OF_INVALID_ELEMENT_TYPE*/ myStream) {
- ^" in #t6 as{TypeError} core::String*;
- core::String* y = x;
+ ^" in #t6 as{TypeError,ForNonNullableByDefault} core::String;
+ core::String y = x;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Foo*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Foo>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
dynamic z;
{
- self::MyStream<self::Foo*>* :stream = myStream;
- asy::_StreamIterator<self::Foo*>* :for-iterator = new asy::_StreamIterator::•<self::Foo*>(:stream);
+ self::MyStream<self::Foo> :stream = myStream;
+ asy::_StreamIterator<self::Foo>? :for-iterator = new asy::_StreamIterator::•<self::Foo>(:stream);
try
while (let dynamic #t7 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final self::Foo* #t8 = :for-iterator.{asy::_StreamIterator::current}{self::Foo*};
+ final self::Foo #t8 = :for-iterator.{asy::_StreamIterator::current}{self::Foo};
{
z = #t8;
- core::String* y = z as{TypeError,ForDynamic} core::String*;
+ core::String y = z as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Foo*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::Foo>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
- asy::Stream<dynamic>* stream = myStream;
+ asy::Stream<dynamic> stream = myStream;
{
- asy::Stream<dynamic>* :stream = stream;
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ asy::Stream<dynamic> :stream = stream;
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t9 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
final dynamic #t10 = :for-iterator.{asy::_StreamIterator::current}{dynamic};
{
- self::Foo* x = #t10 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t10 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
}
finally
@@ -254,34 +177,34 @@
}
dynamic stream2 = myStream;
{
- asy::Stream<dynamic>* :stream = stream2 as{TypeError,ForDynamic} asy::Stream<dynamic>*;
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ asy::Stream<dynamic> :stream = stream2 as{TypeError,ForDynamic,ForNonNullableByDefault} asy::Stream<dynamic>;
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t11 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
final dynamic #t12 = :for-iterator.{asy::_StreamIterator::current}{dynamic};
{
- self::Foo* x = #t12 as{TypeError,ForDynamic} self::Foo*;
- self::Foo* y = x;
+ self::Foo x = #t12 as{TypeError,ForDynamic,ForNonNullableByDefault} self::Foo;
+ self::Foo y = x;
}
}
finally
if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
- core::Map<core::String*, self::Foo*>* map = <core::String*, self::Foo*>{};
+ core::Map<core::String, self::Foo> map = <core::String, self::Foo>{};
{
Never :stream = invalid-expression "pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart:66:76: Error: The type 'Map<String, Foo>' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Map' is from 'dart:core'.
- 'Foo' is from 'pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_each_loop_async.dart'.
- 'Stream' is from 'dart:async'.
await for (var /*@ type=dynamic */ x in /*error:FOR_IN_OF_INVALID_TYPE*/ map) {
- ^" in map as{TypeError} asy::Stream<dynamic>*;
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ ^" in map as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>;
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t13 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
dynamic x = :for-iterator.{asy::_StreamIterator::current}{dynamic};
{
- core::String* y = x as{TypeError,ForDynamic} core::String*;
+ core::String y = x as{TypeError,ForDynamic,ForNonNullableByDefault} core::String;
}
}
finally
@@ -290,8 +213,3 @@
}
}
static method main() → dynamic {}
-
-constants {
- #C1 = null
- #C2 = ""
-}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart
index f377d5f..a8f810d 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test() {
- for (var /*@ type=int* */ i = 0;
+ for (var /*@type=int*/ i = 0;
i /*@target=num.<*/ < 10;
i /*@target=num.+*/ ++) {
int j = i /*@target=num.+*/ + 1;
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline.expect
index 84bb5b3..c70c84a 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline_modelled.expect
index 630ead4..10819ea 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.expect
index 22c972f..666e42c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → dynamic {
- for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
- core::int* j = i.{core::num::+}(1){(core::num*) →* core::int*};
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+ core::int j = i.{core::num::+}(1){(core::num) → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.modular.expect
index 22c972f..666e42c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → dynamic {
- for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
- core::int* j = i.{core::num::+}(1){(core::num*) →* core::int*};
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+ core::int j = i.{core::num::+}(1){(core::num) → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.outline.expect
index 8e85697..100b8e9 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → dynamic
diff --git a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.transformed.expect
index 22c972f..666e42c 100644
--- a/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_types_on_loop_indices_for_loop_with_inference.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → dynamic {
- for (core::int* i = 0; i.{core::num::<}(10){(core::num*) →* core::bool*}; i = i.{core::num::+}(1){(core::num*) →* core::int*}) {
- core::int* j = i.{core::num::+}(1){(core::num*) →* core::int*};
+ for (core::int i = 0; i.{core::num::<}(10){(core::num) → core::bool}; i = i.{core::num::+}(1){(core::num) → core::int}) {
+ core::int j = i.{core::num::+}(1){(core::num) → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart
index c390b0a..e6e32e8 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline.expect
index 1ed6a1b..37187cb 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void f() {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline_modelled.expect
index 510ed2c..4e388e1 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.expect
index f8773b2..7a06d87 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method f() → void {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.modular.expect
index f8773b2..7a06d87 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method f() → void {}
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.outline.expect
index d0366a8..8365ca5 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method f() → void
diff --git a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.transformed.expect
index f8773b2..7a06d87 100644
--- a/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_use_of_void_local.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method f() → void {}
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart b/pkg/front_end/testcases/inference/infer_variable_void.dart
index efca54d..65fdfb3 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline.expect
index 0627c58..e064860 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void f() {}
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline_modelled.expect
index 73eff79..9e93269 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.expect
index 3bfd2e6..f7ec0b6 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field void x = self::f();
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.modular.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.modular.expect
index 3bfd2e6..f7ec0b6 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field void x = self::f();
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.outline.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.outline.expect
index 3c20c2d..3ef4a95 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field void x;
diff --git a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.transformed.expect
index 3bfd2e6..f7ec0b6 100644
--- a/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/infer_variable_void.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field void x = self::f();
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart
index 5a86959..5ecd7db 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline.expect
index a6850eb..4e7cbdc 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline_modelled.expect
index 7add8e5..57d515d 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Foo {
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.expect
index 524ef39..e61825f 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,21 +10,11 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* x = 1;
- constructor •([core::int* x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ field core::int x = 1;
+ constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
- ^"]) → self::Foo*
+ ^"]) → self::Foo
: self::Foo::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.modular.expect
index 524ef39..e61825f 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,21 +10,11 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* x = 1;
- constructor •([core::int* x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ field core::int x = 1;
+ constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
- ^"]) → self::Foo*
+ ^"]) → self::Foo
: self::Foo::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.outline.expect
index c617c3d..5aac32f 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,21 +10,11 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* x;
- constructor •([core::int* x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ field core::int x;
+ constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
- ^" in "1" as{TypeError} core::int*]) → self::Foo*
+ ^" in "1" as{TypeError,ForNonNullableByDefault} core::int]) → self::Foo
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.transformed.expect
index 524ef39..e61825f 100644
--- a/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,21 +10,11 @@
import "dart:core" as core;
class Foo extends core::Object {
- field core::int* x = 1;
- constructor •([core::int* x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ field core::int x = 1;
+ constructor •([core::int x = invalid-expression "pkg/front_end/testcases/inference/inferred_initializing_formal_checks_default_value.dart:10:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
Foo([this.x = /*error:INVALID_ASSIGNMENT*/ \"1\"]);
- ^"]) → self::Foo*
+ ^"]) → self::Foo
: self::Foo::x = x, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart
index fba8b45..760375f 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
static var x = 'x';
- var y = /*@ typeArgs=String*, Map<String*, String*>* */ {
- 'a': /*@ typeArgs=String*, String* */ {'b': 'c'},
- 'd': /*@ typeArgs=String*, String* */ {'e': x}
+ var y = /*@typeArgs=String, Map<String, String>*/ {
+ 'a': /*@typeArgs=String, String*/ {'b': 'c'},
+ 'd': /*@typeArgs=String, String*/ {'e': x}
};
}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline.expect
index e3e7924..ab2bd61 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline_modelled.expect
index e3e7924..ab2bd61 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.expect
index 24a6a4b..a09587a 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static field core::String* x = "x";
- field core::Map<core::String*, core::Map<core::String*, core::String*>*>* y = <core::String*, core::Map<core::String*, core::String*>*>{"a": <core::String*, core::String*>{"b": "c"}, "d": <core::String*, core::String*>{"e": self::C::x}};
- synthetic constructor •() → self::C*
+ static field core::String x = "x";
+ field core::Map<core::String, core::Map<core::String, core::String>> y = <core::String, core::Map<core::String, core::String>>{"a": <core::String, core::String>{"b": "c"}, "d": <core::String, core::String>{"e": self::C::x}};
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.modular.expect
index 24a6a4b..a09587a 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static field core::String* x = "x";
- field core::Map<core::String*, core::Map<core::String*, core::String*>*>* y = <core::String*, core::Map<core::String*, core::String*>*>{"a": <core::String*, core::String*>{"b": "c"}, "d": <core::String*, core::String*>{"e": self::C::x}};
- synthetic constructor •() → self::C*
+ static field core::String x = "x";
+ field core::Map<core::String, core::Map<core::String, core::String>> y = <core::String, core::Map<core::String, core::String>>{"a": <core::String, core::String>{"b": "c"}, "d": <core::String, core::String>{"e": self::C::x}};
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.outline.expect
index 440ca7b..78b8b5f 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static field core::String* x;
- field core::Map<core::String*, core::Map<core::String*, core::String*>*>* y;
- synthetic constructor •() → self::C*
+ static field core::String x;
+ field core::Map<core::String, core::Map<core::String, core::String>> y;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.transformed.expect
index 24a6a4b..a09587a 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_static_field_complex.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static field core::String* x = "x";
- field core::Map<core::String*, core::Map<core::String*, core::String*>*>* y = <core::String*, core::Map<core::String*, core::String*>*>{"a": <core::String*, core::String*>{"b": "c"}, "d": <core::String*, core::String*>{"e": self::C::x}};
- synthetic constructor •() → self::C*
+ static field core::String x = "x";
+ field core::Map<core::String, core::Map<core::String, core::String>> y = <core::String, core::Map<core::String, core::String>>{"a": <core::String, core::String>{"b": "c"}, "d": <core::String, core::String>{"e": self::C::x}};
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart
index d24c133..8e9c16b 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline.expect
index ce1a48e..766e416 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = 'x';
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline_modelled.expect
index c01336a..fd2cec5 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.expect
index 3b47743..677b806 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::String* y = self::x;
- synthetic constructor •() → self::C*
+ field core::String y = self::x;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::String* x = "x";
+static field core::String x = "x";
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.modular.expect
index 3b47743..677b806 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.modular.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::String* y = self::x;
- synthetic constructor •() → self::C*
+ field core::String y = self::x;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::String* x = "x";
+static field core::String x = "x";
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.outline.expect
index 0abe37d..0e33b94 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::String* y;
- synthetic constructor •() → self::C*
+ field core::String y;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::String* x;
+static field core::String x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.transformed.expect
index 3b47743..677b806 100644
--- a/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_nonstatic_field_depends_on_top_level_var_simple.dart.weak.transformed.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::String* y = self::x;
- synthetic constructor •() → self::C*
+ field core::String y = self::x;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::String* x = "x";
+static field core::String x = "x";
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart
index ee9d519..ed4c775 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart
@@ -1,10 +1,10 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=() ->* Null */ f = /*@ returnType=Null */ () {};
+ var /*@type=() -> Null*/ f = /*@ returnType=Null */ () {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.expect
index 8ee4d33..9b2e180 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.expect
@@ -1,6 +1,6 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic {
- () →* Null f = () → Null {};
+ () → Null f = () → Null {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.modular.expect
index 8ee4d33..9b2e180 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.modular.expect
@@ -1,6 +1,6 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic {
- () →* Null f = () → Null {};
+ () → Null f = () → Null {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.transformed.expect
index 8ee4d33..9b2e180 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return.dart.weak.transformed.expect
@@ -1,6 +1,6 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic {
- () →* Null f = () → Null {};
+ () → Null f = () → Null {};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart
index e899595..7cca2f1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,5 +10,5 @@
}
main() {
- var /*@ type=C* */ c = new C(/*@ returnType=Null */ () {});
+ var /*@type=C*/ c = new C(/*@returnType=void*/ () {});
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline.expect
index c4ef339..beb68c7 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline_modelled.expect
index c4ef339..beb68c7 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.expect
index 21efe4c..d019bb1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* void func) → self::C*
+ constructor •(() → void func) → self::C
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•(() → Null {});
+ self::C c = new self::C::•(() → void {});
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.modular.expect
index 21efe4c..d019bb1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* void func) → self::C*
+ constructor •(() → void func) → self::C
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•(() → Null {});
+ self::C c = new self::C::•(() → void {});
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.outline.expect
index 59e91e3..8744ebb 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* void func) → self::C*
+ constructor •(() → void func) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.transformed.expect
index 21efe4c..d019bb1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_block_closure_no_args_no_return_void_context.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* void func) → self::C*
+ constructor •(() → void func) → self::C
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•(() → Null {});
+ self::C c = new self::C::•(() → void {});
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart b/pkg/front_end/testcases/inference/inferred_type_cascade.dart
index 8d97b7d..b33149c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- int a;
- List<int> b;
+ int a = 0;
+ List<int> b = /*@typeArgs=int*/ [];
void m() {}
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline.expect
index 08b17fc..028c66f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A {
- int a;
- List<int> b;
+ int a = 0;
+ List<int> b = [];
void m() {}
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline_modelled.expect
index e94beb3..0120650 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A {
- List<int> b;
- int a;
+ List<int> b = [];
+ int a = 0;
void m() {}
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.expect
index e5b98d2..3cf2f58 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* a = null;
- field core::List<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ field core::int a = 0;
+ field core::List<core::int> b = <core::int>[];
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method m() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* v = let final self::A* #t1 = new self::A::•() in block {
+static field self::A v = let final self::A #t1 = new self::A::•() in block {
#t1.{self::A::a} = 1;
- #t1.{self::A::b}{core::List<core::int*>*}.{core::List::add}(2){(core::int*) →* void};
- #t1.{self::A::m}(){() →* void};
+ #t1.{self::A::b}{core::List<core::int>}.{core::List::add}(2){(core::int) → void};
+ #t1.{self::A::m}(){() → void};
} =>#t1;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.modular.expect
index e5b98d2..3cf2f58 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* a = null;
- field core::List<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ field core::int a = 0;
+ field core::List<core::int> b = <core::int>[];
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method m() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* v = let final self::A* #t1 = new self::A::•() in block {
+static field self::A v = let final self::A #t1 = new self::A::•() in block {
#t1.{self::A::a} = 1;
- #t1.{self::A::b}{core::List<core::int*>*}.{core::List::add}(2){(core::int*) →* void};
- #t1.{self::A::m}(){() →* void};
+ #t1.{self::A::b}{core::List<core::int>}.{core::List::add}(2){(core::int) → void};
+ #t1.{self::A::m}(){() → void};
} =>#t1;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.outline.expect
index 396d8a1..d8c5a7a 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* a;
- field core::List<core::int*>* b;
- synthetic constructor •() → self::A*
+ field core::int a;
+ field core::List<core::int> b;
+ synthetic constructor •() → self::A
;
method m() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* v;
+static field self::A v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.transformed.expect
index e5b98d2..d82d4f3 100644
--- a/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_cascade.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* a = null;
- field core::List<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ field core::int a = 0;
+ field core::List<core::int> b = core::_GrowableList::•<core::int>(0);
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method m() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* v = let final self::A* #t1 = new self::A::•() in block {
+static field self::A v = let final self::A #t1 = new self::A::•() in block {
#t1.{self::A::a} = 1;
- #t1.{self::A::b}{core::List<core::int*>*}.{core::List::add}(2){(core::int*) →* void};
- #t1.{self::A::m}(){() →* void};
+ #t1.{self::A::b}{core::List<core::int>}.{core::List::add}(2){(core::int) → void};
+ #t1.{self::A::m}(){() → void};
} =>#t1;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart
index f4d66e4..082a541 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline.expect
index 7ac968f..e6999dd 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline_modelled.expect
index 1321da2..82580a5 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
C c = new C();
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.expect
index 83b4e3b..f731f5c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::bool* x = self::c.{self::C::*}(self::c){(self::C*) →* core::bool*};
+static field self::C c = new self::C::•();
+static field core::bool x = self::c.{self::C::*}(self::c){(self::C) → core::bool};
static method main() → dynamic {
self::c;
self::x;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.modular.expect
index 83b4e3b..f731f5c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::bool* x = self::c.{self::C::*}(self::c){(self::C*) →* core::bool*};
+static field self::C c = new self::C::•();
+static field core::bool x = self::c.{self::C::*}(self::c){(self::C) → core::bool};
static method main() → dynamic {
self::c;
self::x;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.outline.expect
index ff48fe4..f8410a5 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x;
+static field self::C c;
+static field core::bool x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.transformed.expect
index 83b4e3b..f731f5c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::bool* x = self::c.{self::C::*}(self::c){(self::C*) →* core::bool*};
+static field self::C c = new self::C::•();
+static field core::bool x = self::c.{self::C::*}(self::c){(self::C) → core::bool};
static method main() → dynamic {
self::c;
self::x;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart
index c31ac32..6f03812 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,9 +11,9 @@
abstract class C implements I {}
-C c;
+C c = throw '';
var x = c /*@target=I.**/ * c;
-main() {
+test() {
c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline.expect
index 40ec159..8c59e01 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class I {
@@ -7,6 +6,6 @@
abstract class C implements I {}
-C c;
+C c = throw '';
var x = c * c;
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline_modelled.expect
index 30aecfa..e133e7b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-C c;
+C c = throw '';
abstract class C implements I {}
@@ -9,5 +8,5 @@
bool operator *(C other) => true;
}
-main() {}
+test() {}
var x = c * c;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.expect
index 6764bc5..a6cc255 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x = self::c.{self::I::*}(self::c){(self::C*) →* core::bool*};
-static method main() → dynamic {
+static field self::C c = throw "";
+static field core::bool x = self::c.{self::I::*}(self::c){(self::C) → core::bool};
+static method test() → dynamic {
self::c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.modular.expect
index 6764bc5..a6cc255 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.modular.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x = self::c.{self::I::*}(self::c){(self::C*) →* core::bool*};
-static method main() → dynamic {
+static field self::C c = throw "";
+static field core::bool x = self::c.{self::I::*}(self::c){(self::C) → core::bool};
+static method test() → dynamic {
self::c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.outline.expect
index 2f69c5f..7399445 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x;
-static method main() → dynamic
+static field self::C c;
+static field core::bool x;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.transformed.expect
index 6764bc5..a6cc255 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_binary_op_via_interface.dart.weak.transformed.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator *(self::C* other) → core::bool*
+ operator *(self::C other) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x = self::c.{self::I::*}(self::c){(self::C*) →* core::bool*};
-static method main() → dynamic {
+static field self::C c = throw "";
+static field core::bool x = self::c.{self::I::*}(self::c){(self::C) → core::bool};
+static method test() → dynamic {
self::c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart
index afb2888..825aa6b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,5 +11,5 @@
main() {
C c = new C();
- var /*@ type=bool* */ x = c /*@target=C.[]*/ [0];
+ var /*@type=bool*/ x = c /*@target=C.[]*/ [0];
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline.expect
index 6a44be8..2d475c3 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline_modelled.expect
index 6a44be8..2d475c3 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.expect
index 250adf8..a5697a6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•();
- core::bool* x = c.{self::C::[]}(0){(core::int*) →* core::bool*};
+ self::C c = new self::C::•();
+ core::bool x = c.{self::C::[]}(0){(core::int) → core::bool};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.modular.expect
index 250adf8..a5697a6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•();
- core::bool* x = c.{self::C::[]}(0){(core::int*) →* core::bool*};
+ self::C c = new self::C::•();
+ core::bool x = c.{self::C::[]}(0){(core::int) → core::bool};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.outline.expect
index 5329d5f..877629b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.transformed.expect
index 250adf8..a5697a6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C* c = new self::C::•();
- core::bool* x = c.{self::C::[]}(0){(core::int*) →* core::bool*};
+ self::C c = new self::C::•();
+ core::bool x = c.{self::C::[]}(0){(core::int) → core::bool};
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart
index 3ee86cb..59b19f3 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,9 +11,8 @@
abstract class C implements I {}
-f() {
- C c;
- var /*@ type=bool* */ x = c /*@target=I.[]*/ [0];
+f(C c) {
+ var /*@type=bool*/ x = c /*@target=I.[]*/ [0];
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline.expect
index 1032ae5..1546462 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class I {
@@ -7,5 +6,5 @@
abstract class C implements I {}
-f() {}
+f(C c) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline_modelled.expect
index d0bcdda..ae95753 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class C implements I {}
@@ -7,5 +6,5 @@
bool operator [](int index) => true;
}
-f() {}
+f(C c) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.expect
index 007c0cd..49a12f7 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.expect
@@ -1,41 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f() → dynamic {
- self::C* c;
- core::bool* x = c.{self::I::[]}(0){(core::int*) →* core::bool*};
+static method f(self::C c) → dynamic {
+ core::bool x = c.{self::I::[]}(0){(core::int) → core::bool};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.modular.expect
index 007c0cd..49a12f7 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.modular.expect
@@ -1,41 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f() → dynamic {
- self::C* c;
- core::bool* x = c.{self::I::[]}(0){(core::int*) →* core::bool*};
+static method f(self::C c) → dynamic {
+ core::bool x = c.{self::I::[]}(0){(core::int) → core::bool};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.outline.expect
index 35afd45..1b09b8d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f() → dynamic
+static method f(self::C c) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.transformed.expect
index 007c0cd..49a12f7 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_index_op_via_interface.dart.weak.transformed.expect
@@ -1,41 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator [](core::int* index) → core::bool*
+ operator [](core::int index) → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f() → dynamic {
- self::C* c;
- core::bool* x = c.{self::I::[]}(0){(core::int*) →* core::bool*};
+static method f(self::C c) → dynamic {
+ core::bool x = c.{self::I::[]}(0){(core::int) → core::bool};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart
index 7b0a39c..e5e734e 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline.expect
index 2b6326a..8f42327 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline_modelled.expect
index 4b4b77a..faae8e3 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
C c = new C();
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.expect
index d0c4a3c..a87e3b4 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::bool* x = self::c.{self::C::unary-}(){() →* core::bool*};
+static field self::C c = new self::C::•();
+static field core::bool x = self::c.{self::C::unary-}(){() → core::bool};
static method main() → dynamic {
self::c;
self::x;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.modular.expect
index d0c4a3c..a87e3b4 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::bool* x = self::c.{self::C::unary-}(){() →* core::bool*};
+static field self::C c = new self::C::•();
+static field core::bool x = self::c.{self::C::unary-}(){() → core::bool};
static method main() → dynamic {
self::c;
self::x;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.outline.expect
index a662c5a..8bbc970 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x;
+static field self::C c;
+static field core::bool x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.transformed.expect
index d0c4a3c..a87e3b4 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::bool* x = self::c.{self::C::unary-}(){() →* core::bool*};
+static field self::C c = new self::C::•();
+static field core::bool x = self::c.{self::C::unary-}(){() → core::bool};
static method main() → dynamic {
self::c;
self::x;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart
index a8803b2..82718b1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,9 +11,9 @@
abstract class C implements I {}
-C c;
+C c = throw '';
var x = /*@target=I.unary-*/ -c;
-main() {
+test() {
c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline.expect
index b92e9c8..bca6e26 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class I {
@@ -7,6 +6,6 @@
abstract class C implements I {}
-C c;
+C c = throw '';
var x = -c;
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline_modelled.expect
index e1a2934..512d479 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-C c;
+C c = throw '';
abstract class C implements I {}
@@ -9,5 +8,5 @@
bool operator -() => true;
}
-main() {}
+test() {}
var x = -c;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.expect
index 443ba4b..38d07e6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x = self::c.{self::I::unary-}(){() →* core::bool*};
-static method main() → dynamic {
+static field self::C c = throw "";
+static field core::bool x = self::c.{self::I::unary-}(){() → core::bool};
+static method test() → dynamic {
self::c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.modular.expect
index 443ba4b..38d07e6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.modular.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x = self::c.{self::I::unary-}(){() →* core::bool*};
-static method main() → dynamic {
+static field self::C c = throw "";
+static field core::bool x = self::c.{self::I::unary-}(){() → core::bool};
+static method test() → dynamic {
self::c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.outline.expect
index 7ff3691..08aa6e6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x;
-static method main() → dynamic
+static field self::C c;
+static field core::bool x;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.transformed.expect
index 443ba4b..38d07e6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_custom_unary_op_via_interface.dart.weak.transformed.expect
@@ -1,41 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- operator unary-() → core::bool*
+ operator unary-() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::bool* x = self::c.{self::I::unary-}(){() →* core::bool*};
-static method main() → dynamic {
+static field self::C c = throw "";
+static field core::bool x = self::c.{self::I::unary-}(){() → core::bool};
+static method test() → dynamic {
self::c;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart
index fd183c5..36f1953 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
bool g() => true;
}
-C f() => null;
+C f() => throw '';
var x = f(). /*@target=C.g*/ g;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline.expect
index 9748fda..e23deee 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
class C {
bool g() => true;
}
-C f() => null;
+C f() => throw '';
var x = f().g;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline_modelled.expect
index cfad014..adedcab 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-C f() => null;
+C f() => throw '';
class C {
bool g() => true;
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.expect
index 909f982..a396ea2 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x = self::f().{self::C::g}{() →* core::bool*};
-static method f() → self::C*
- return null;
+static field () → core::bool x = self::f().{self::C::g}{() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.modular.expect
index 909f982..a396ea2 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x = self::f().{self::C::g}{() →* core::bool*};
-static method f() → self::C*
- return null;
+static field () → core::bool x = self::f().{self::C::g}{() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.outline.expect
index 3d86e37..cea0e03 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method g() → core::bool*
+ method g() → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x;
-static method f() → self::C*
+static field () → core::bool x;
+static method f() → self::C
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.transformed.expect
index 909f982..a396ea2 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x = self::f().{self::C::g}{() →* core::bool*};
-static method f() → self::C*
- return null;
+static field () → core::bool x = self::f().{self::C::g}{() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart
index 99aff77..6711e22 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +11,7 @@
abstract class C implements I {}
-C f() => null;
+C f() => throw '';
var x = f(). /*@target=I.g*/ g;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline.expect
index b568393..a212f8f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class I {
@@ -7,6 +6,6 @@
abstract class C implements I {}
-C f() => null;
+C f() => throw '';
var x = f().g;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline_modelled.expect
index d4d4706..3337558 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-C f() => null;
+C f() => throw '';
abstract class C implements I {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.expect
index a162c11..0f26c3d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x = self::f().{self::I::g}{() →* core::bool*};
-static method f() → self::C*
- return null;
+static field () → core::bool x = self::f().{self::I::g}{() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.modular.expect
index a162c11..0f26c3d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x = self::f().{self::I::g}{() →* core::bool*};
-static method f() → self::C*
- return null;
+static field () → core::bool x = self::f().{self::I::g}{() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.outline.expect
index b78cf45..ed06829 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.outline.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- method g() → core::bool*
+ method g() → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x;
-static method f() → self::C*
+static field () → core::bool x;
+static method f() → self::C
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.transformed.expect
index a162c11..0f26c3d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_extract_method_tear_off_via_interface.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field () →* core::bool* x = self::f().{self::I::g}{() →* core::bool*};
-static method f() → self::C*
- return null;
+static field () → core::bool x = self::f().{self::I::g}{() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart
index c473eb3..38ccc97 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline.expect
index c2164ee..cff7f24 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var v = print;
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline_modelled.expect
index d1179e4..b24205c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.expect
index 6eef7cc..38cfa64 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field (core::Object*) →* void v = #C1;
+static field (core::Object?) → void v = #C1;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.modular.expect
index 6eef7cc..38cfa64 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field (core::Object*) →* void v = #C1;
+static field (core::Object?) → void v = #C1;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.outline.expect
index 093165a..9c6860a 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field (core::Object*) →* void v;
+static field (core::Object?) → void v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.transformed.expect
index 6eef7cc..38cfa64 100644
--- a/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_from_top_level_executable_tear_off.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field (core::Object*) →* void v = #C1;
+static field (core::Object?) → void v = #C1;
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart
index e5d89a3..b354e77 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
bool g() => true;
}
-C f() => null;
+C f() => throw '';
var x = f(). /*@target=C.g*/ g();
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline.expect
index 419f287..1456408 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
class C {
bool g() => true;
}
-C f() => null;
+C f() => throw '';
var x = f().g();
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline_modelled.expect
index f78e346..447ac65 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-C f() => null;
+C f() => throw '';
class C {
bool g() => true;
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.expect
index 429fa8a..06acdec 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x = self::f().{self::C::g}(){() →* core::bool*};
-static method f() → self::C*
- return null;
+static field core::bool x = self::f().{self::C::g}(){() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.modular.expect
index 429fa8a..06acdec 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x = self::f().{self::C::g}(){() →* core::bool*};
-static method f() → self::C*
- return null;
+static field core::bool x = self::f().{self::C::g}(){() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.outline.expect
index d6e7617..18da8ef 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method g() → core::bool*
+ method g() → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x;
-static method f() → self::C*
+static field core::bool x;
+static method f() → self::C
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.transformed.expect
index 429fa8a..06acdec 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x = self::f().{self::C::g}(){() →* core::bool*};
-static method f() → self::C*
- return null;
+static field core::bool x = self::f().{self::C::g}(){() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart
index 8666080..83d6cbc 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +11,7 @@
abstract class C implements I {}
-C f() => null;
+C f() => throw '';
var x = f(). /*@target=I.g*/ g();
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline.expect
index 48c694c..3f65a00 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class I {
@@ -7,6 +6,6 @@
abstract class C implements I {}
-C f() => null;
+C f() => throw '';
var x = f().g();
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline_modelled.expect
index 009ab81..f690edf 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-C f() => null;
+C f() => throw '';
abstract class C implements I {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.expect
index c694d88..1693f58 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x = self::f().{self::I::g}(){() →* core::bool*};
-static method f() → self::C*
- return null;
+static field core::bool x = self::f().{self::I::g}(){() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.modular.expect
index c694d88..1693f58 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x = self::f().{self::I::g}(){() →* core::bool*};
-static method f() → self::C*
- return null;
+static field core::bool x = self::f().{self::I::g}(){() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.outline.expect
index d7fe296..0259d38 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.outline.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- method g() → core::bool*
+ method g() → core::bool
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x;
-static method f() → self::C*
+static field core::bool x;
+static method f() → self::C
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.transformed.expect
index c694d88..1693f58 100644
--- a/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_invoke_method_via_interface.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- method g() → core::bool*
+ method g() → core::bool
return true;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class C extends core::Object implements self::I {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::bool* x = self::f().{self::I::g}(){() →* core::bool*};
-static method f() → self::C*
- return null;
+static field core::bool x = self::f().{self::I::g}(){() → core::bool};
+static method f() → self::C
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart
index a3f32c7..1262709 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect
index d228da5..3275f8d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
enum E { v1 }
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect
index d228da5..3275f8d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
enum E { v1 }
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.expect
index 6ba5551..baf973d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = #C4;
- static const field self::E* v1 = #C3;
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = #C4;
+ static const field self::E v1 = #C3;
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field self::E* x = #C3;
+static final field self::E x = #C3;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.modular.expect
index 6ba5551..baf973d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.modular.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = #C4;
- static const field self::E* v1 = #C3;
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = #C4;
+ static const field self::E v1 = #C3;
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field self::E* x = #C3;
+static final field self::E x = #C3;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.outline.expect
index 40a64df..d7af66f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.outline.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = const <self::E*>[self::E::v1];
- static const field self::E* v1 = const self::E::•(0, "v1");
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = const <self::E>[self::E::v1];
+ static const field self::E v1 = const self::E::•(0, "v1");
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field self::E* x;
+static final field self::E x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.transformed.expect
index 6ba5551..baf973d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum.dart.weak.transformed.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = #C4;
- static const field self::E* v1 = #C3;
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = #C4;
+ static const field self::E v1 = #C3;
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field self::E* x = #C3;
+static final field self::E x = #C3;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart
index 6ba7933..2463b13 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect
index f7c5643..3f3a674 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
enum E { v1 }
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect
index f7c5643..3f3a674 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
enum E { v1 }
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.expect
index c012545..a239515 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = #C4;
- static const field self::E* v1 = #C3;
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = #C4;
+ static const field self::E v1 = #C3;
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::List<self::E*>* x = #C4;
+static final field core::List<self::E> x = #C4;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.modular.expect
index c012545..a239515 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.modular.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = #C4;
- static const field self::E* v1 = #C3;
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = #C4;
+ static const field self::E v1 = #C3;
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::List<self::E*>* x = #C4;
+static final field core::List<self::E> x = #C4;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.outline.expect
index f2f6482..fbb89b5 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.outline.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = const <self::E*>[self::E::v1];
- static const field self::E* v1 = const self::E::•(0, "v1");
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = const <self::E>[self::E::v1];
+ static const field self::E v1 = const self::E::•(0, "v1");
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::List<self::E*>* x;
+static final field core::List<self::E> x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.transformed.expect
index c012545..a239515 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_enum_values.dart.weak.transformed.expect
@@ -1,28 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class E extends core::_Enum /*isEnum*/ {
- static const field core::List<self::E*>* values = #C4;
- static const field self::E* v1 = #C3;
- const constructor •(core::int* #index, core::String* #name) → self::E*
+ static const field core::List<self::E> values = #C4;
+ static const field self::E v1 = #C3;
+ const constructor •(core::int #index, core::String #name) → self::E
: super core::_Enum::•(#index, #name)
;
- method toString() → core::String*
+ method toString() → core::String
return "E.${this.{core::_Enum::_name}{core::String}}";
- abstract member-signature get index() → core::int*; -> core::_Enum::index
- abstract member-signature get _name() → core::String*; -> core::_Enum::_name
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static final field core::List<self::E*>* x = #C4;
+static final field core::List<self::E> x = #C4;
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart
index ae851c2..faf400f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline.expect
index 4154f5b..ef330db 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef void F();
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline_modelled.expect
index d23a923..19c52ac 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
final x = <String, F>{};
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.expect
index 2f74b63..35015df 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Map<core::String*, () →* void>* x = <core::String*, () →* void>{};
+typedef F = () → void;
+static final field core::Map<core::String, () → void> x = <core::String, () → void>{};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.modular.expect
index 2f74b63..35015df 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Map<core::String*, () →* void>* x = <core::String*, () →* void>{};
+typedef F = () → void;
+static final field core::Map<core::String, () → void> x = <core::String, () → void>{};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.outline.expect
index 8c72258..5906114 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Map<core::String*, () →* void>* x;
+typedef F = () → void;
+static final field core::Map<core::String, () → void> x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.transformed.expect
index 2f74b63..35015df 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Map<core::String*, () →* void>* x = <core::String*, () →* void>{};
+typedef F = () → void;
+static final field core::Map<core::String, () → void> x = <core::String, () → void>{};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart
index a5ea8d2..09ae0af 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline.expect
index 265e538..52d5fdc 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef T F<T>();
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline_modelled.expect
index d267640..8ede87e 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
final x = <String, F<int>>{};
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.expect
index 24aba57..1c4bec9 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
-static final field core::Map<core::String*, () →* core::int*>* x = <core::String*, () →* core::int*>{};
+typedef F<T extends core::Object? = dynamic> = () → T%;
+static final field core::Map<core::String, () → core::int> x = <core::String, () → core::int>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.modular.expect
index 24aba57..1c4bec9 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
-static final field core::Map<core::String*, () →* core::int*>* x = <core::String*, () →* core::int*>{};
+typedef F<T extends core::Object? = dynamic> = () → T%;
+static final field core::Map<core::String, () → core::int> x = <core::String, () → core::int>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.outline.expect
index 41a8e7b..c3a98c3 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
-static final field core::Map<core::String*, () →* core::int*>* x;
+typedef F<T extends core::Object? = dynamic> = () → T%;
+static final field core::Map<core::String, () → core::int> x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.transformed.expect
index 24aba57..1c4bec9 100644
--- a/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_is_typedef_parameterized.dart.weak.transformed.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<T extends core::Object* = dynamic> = () →* T*;
-static final field core::Map<core::String*, () →* core::int*>* x = <core::String*, () →* core::int*>{};
+typedef F<T extends core::Object? = dynamic> = () → T%;
+static final field core::Map<core::String, () → core::int> x = <core::String, () → core::int>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart
index 8e5bde5..1cc7347 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-int f() => null;
-String g() => null;
-var v = /*@ typeArgs=() ->* Object* */ [f, g];
+int f() => 0;
+String g() => '';
+var v = /*@typeArgs=() -> Object*/ [f, g];
main() {
v;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline.expect
index 1e34fe4..3b8bd87 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-int f() => null;
-String g() => null;
+int f() => 0;
+String g() => '';
var v = [f, g];
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline_modelled.expect
index 714d7e8..9ae2ff1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-String g() => null;
-int f() => null;
+String g() => '';
+int f() => 0;
main() {}
var v = [f, g];
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.expect
index 21d3b06..00cc02d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<() →* core::Object*>* v = <() →* core::Object*>[#C1, #C2];
-static method f() → core::int*
- return null;
-static method g() → core::String*
- return null;
+static field core::List<() → core::Object> v = <() → core::Object>[#C1, #C2];
+static method f() → core::int
+ return 0;
+static method g() → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.modular.expect
index 21d3b06..00cc02d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<() →* core::Object*>* v = <() →* core::Object*>[#C1, #C2];
-static method f() → core::int*
- return null;
-static method g() → core::String*
- return null;
+static field core::List<() → core::Object> v = <() → core::Object>[#C1, #C2];
+static method f() → core::int
+ return 0;
+static method g() → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.outline.expect
index 022fc54..c0cd7e9 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<() →* core::Object*>* v;
-static method f() → core::int*
+static field core::List<() → core::Object> v;
+static method f() → core::int
;
-static method g() → core::String*
+static method g() → core::String
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.transformed.expect
index 2e71da8..2a9a74f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<() →* core::Object*>* v = core::_GrowableList::_literal2<() →* core::Object*>(#C1, #C2);
-static method f() → core::int*
- return null;
-static method g() → core::String*
- return null;
+static field core::List<() → core::Object> v = core::_GrowableList::_literal2<() → core::Object>(#C1, #C2);
+static method f() → core::int
+ return 0;
+static method g() → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart
index 2ff8f19..cd78389 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-int f(int x(String y)) => null;
-String g(int x(String y)) => null;
-var v = /*@ typeArgs=((String*) ->* int*) ->* Object* */ [f, g];
+int f(int x(String y)) => 0;
+String g(int x(String y)) => '';
+var v = /*@typeArgs=((String) -> int) -> Object*/ [f, g];
main() {
v;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline.expect
index 9f49cea..5547d44 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-int f(int x(String y)) => null;
-String g(int x(String y)) => null;
+int f(int x(String y)) => 0;
+String g(int x(String y)) => '';
var v = [f, g];
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline_modelled.expect
index 2a9820c..88511a1 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-String g(int x(String y)) => null;
-int f(int x(String y)) => null;
+String g(int x(String y)) => '';
+int f(int x(String y)) => 0;
main() {}
var v = [f, g];
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.expect
index 9be942f..650c27a 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<((core::String*) →* core::int*) →* core::Object*>* v = <((core::String*) →* core::int*) →* core::Object*>[#C1, #C2];
-static method f((core::String*) →* core::int* x) → core::int*
- return null;
-static method g((core::String*) →* core::int* x) → core::String*
- return null;
+static field core::List<((core::String) → core::int) → core::Object> v = <((core::String) → core::int) → core::Object>[#C1, #C2];
+static method f((core::String) → core::int x) → core::int
+ return 0;
+static method g((core::String) → core::int x) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.modular.expect
index 9be942f..650c27a 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<((core::String*) →* core::int*) →* core::Object*>* v = <((core::String*) →* core::int*) →* core::Object*>[#C1, #C2];
-static method f((core::String*) →* core::int* x) → core::int*
- return null;
-static method g((core::String*) →* core::int* x) → core::String*
- return null;
+static field core::List<((core::String) → core::int) → core::Object> v = <((core::String) → core::int) → core::Object>[#C1, #C2];
+static method f((core::String) → core::int x) → core::int
+ return 0;
+static method g((core::String) → core::int x) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.outline.expect
index 19ea551..7637a5c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<((core::String*) →* core::int*) →* core::Object*>* v;
-static method f((core::String*) →* core::int* x) → core::int*
+static field core::List<((core::String) → core::int) → core::Object> v;
+static method f((core::String) → core::int x) → core::int
;
-static method g((core::String*) →* core::int* x) → core::String*
+static method g((core::String) → core::int x) → core::String
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.transformed.expect
index 126d190..4884711 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_function_typed_param.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<((core::String*) →* core::int*) →* core::Object*>* v = core::_GrowableList::_literal2<((core::String*) →* core::int*) →* core::Object*>(#C1, #C2);
-static method f((core::String*) →* core::int* x) → core::int*
- return null;
-static method g((core::String*) →* core::int* x) → core::String*
- return null;
+static field core::List<((core::String) → core::int) → core::Object> v = core::_GrowableList::_literal2<((core::String) → core::int) → core::Object>(#C1, #C2);
+static method f((core::String) → core::int x) → core::int
+ return 0;
+static method g((core::String) → core::int x) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart
index 3129faf..65a460e 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-int f({int x}) => null;
-String g({int x}) => null;
-var v = /*@ typeArgs=({x: int*}) ->* Object* */ [f, g];
+int f({int? x}) => 0;
+String g({int? x}) => '';
+var v = /*@typeArgs=({x: int?}) -> Object*/ [f, g];
main() {
v;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline.expect
index 4f9e601..620bfac 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-int f({int x}) => null;
-String g({int x}) => null;
+int f({int? x}) => 0;
+String g({int? x}) => '';
var v = [f, g];
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline_modelled.expect
index 088d600..2d67246 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-String g({int x}) => null;
-int f({int x}) => null;
+String g({int? x}) => '';
+int f({int? x}) => 0;
main() {}
var v = [f, g];
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.expect
index 0b7d047..ffb7a2a 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<({x: core::int*}) →* core::Object*>* v = <({x: core::int*}) →* core::Object*>[#C1, #C2];
-static method f({core::int* x = #C3}) → core::int*
- return null;
-static method g({core::int* x = #C3}) → core::String*
- return null;
+static field core::List<({x: core::int?}) → core::Object> v = <({x: core::int?}) → core::Object>[#C1, #C2];
+static method f({core::int? x = #C3}) → core::int
+ return 0;
+static method g({core::int? x = #C3}) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.modular.expect
index 0b7d047..ffb7a2a 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<({x: core::int*}) →* core::Object*>* v = <({x: core::int*}) →* core::Object*>[#C1, #C2];
-static method f({core::int* x = #C3}) → core::int*
- return null;
-static method g({core::int* x = #C3}) → core::String*
- return null;
+static field core::List<({x: core::int?}) → core::Object> v = <({x: core::int?}) → core::Object>[#C1, #C2];
+static method f({core::int? x = #C3}) → core::int
+ return 0;
+static method g({core::int? x = #C3}) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.outline.expect
index 13063fa5..6f4488d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<({x: core::int*}) →* core::Object*>* v;
-static method f({core::int* x}) → core::int*
+static field core::List<({x: core::int?}) → core::Object> v;
+static method f({core::int? x}) → core::int
;
-static method g({core::int* x}) → core::String*
+static method g({core::int? x}) → core::String
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.transformed.expect
index ee21ab4..57268af 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_named_param.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<({x: core::int*}) →* core::Object*>* v = core::_GrowableList::_literal2<({x: core::int*}) →* core::Object*>(#C1, #C2);
-static method f({core::int* x = #C3}) → core::int*
- return null;
-static method g({core::int* x = #C3}) → core::String*
- return null;
+static field core::List<({x: core::int?}) → core::Object> v = core::_GrowableList::_literal2<({x: core::int?}) → core::Object>(#C1, #C2);
+static method f({core::int? x = #C3}) → core::int
+ return 0;
+static method g({core::int? x = #C3}) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart
index 07a0512..4298578 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-int f([int x]) => null;
-String g([int x]) => null;
-var v = /*@ typeArgs=([int*]) ->* Object* */ [f, g];
+int f([int? x]) => 0;
+String g([int? x]) => '';
+var v = /*@typeArgs=([int?]) -> Object*/ [f, g];
main() {
v;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline.expect
index da9fa47..7006b62 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-int f([int x]) => null;
-String g([int x]) => null;
+int f([int? x]) => 0;
+String g([int? x]) => '';
var v = [f, g];
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline_modelled.expect
index f739837..1384132 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-String g([int x]) => null;
-int f([int x]) => null;
+String g([int? x]) => '';
+int f([int? x]) => 0;
main() {}
var v = [f, g];
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.expect
index 704ff597..d7abdbb 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<([core::int*]) →* core::Object*>* v = <([core::int*]) →* core::Object*>[#C1, #C2];
-static method f([core::int* x = #C3]) → core::int*
- return null;
-static method g([core::int* x = #C3]) → core::String*
- return null;
+static field core::List<([core::int?]) → core::Object> v = <([core::int?]) → core::Object>[#C1, #C2];
+static method f([core::int? x = #C3]) → core::int
+ return 0;
+static method g([core::int? x = #C3]) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.modular.expect
index 704ff597..d7abdbb 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<([core::int*]) →* core::Object*>* v = <([core::int*]) →* core::Object*>[#C1, #C2];
-static method f([core::int* x = #C3]) → core::int*
- return null;
-static method g([core::int* x = #C3]) → core::String*
- return null;
+static field core::List<([core::int?]) → core::Object> v = <([core::int?]) → core::Object>[#C1, #C2];
+static method f([core::int? x = #C3]) → core::int
+ return 0;
+static method g([core::int? x = #C3]) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.outline.expect
index bd37456..2a6192c 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<([core::int*]) →* core::Object*>* v;
-static method f([core::int* x]) → core::int*
+static field core::List<([core::int?]) → core::Object> v;
+static method f([core::int? x]) → core::int
;
-static method g([core::int* x]) → core::String*
+static method g([core::int? x]) → core::String
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.transformed.expect
index 2e47f05..92a804f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_positional_param.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<([core::int*]) →* core::Object*>* v = core::_GrowableList::_literal2<([core::int*]) →* core::Object*>(#C1, #C2);
-static method f([core::int* x = #C3]) → core::int*
- return null;
-static method g([core::int* x = #C3]) → core::String*
- return null;
+static field core::List<([core::int?]) → core::Object> v = core::_GrowableList::_literal2<([core::int?]) → core::Object>(#C1, #C2);
+static method f([core::int? x = #C3]) → core::int
+ return 0;
+static method g([core::int? x = #C3]) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart
index b0e2a07..b03aa89 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-int f(int x) => null;
-String g(int x) => null;
-var v = /*@ typeArgs=(int*) ->* Object* */ [f, g];
+int f(int x) => 0;
+String g(int x) => '';
+var v = /*@typeArgs=(int) -> Object*/ [f, g];
main() {
v;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline.expect
index 76487bb..2a49ca2 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-int f(int x) => null;
-String g(int x) => null;
+int f(int x) => 0;
+String g(int x) => '';
var v = [f, g];
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline_modelled.expect
index d6d11aa..7be13e7 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-String g(int x) => null;
-int f(int x) => null;
+String g(int x) => '';
+int f(int x) => 0;
main() {}
var v = [f, g];
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.expect
index b495253..791df39 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<(core::int*) →* core::Object*>* v = <(core::int*) →* core::Object*>[#C1, #C2];
-static method f(core::int* x) → core::int*
- return null;
-static method g(core::int* x) → core::String*
- return null;
+static field core::List<(core::int) → core::Object> v = <(core::int) → core::Object>[#C1, #C2];
+static method f(core::int x) → core::int
+ return 0;
+static method g(core::int x) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.modular.expect
index b495253..791df39 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<(core::int*) →* core::Object*>* v = <(core::int*) →* core::Object*>[#C1, #C2];
-static method f(core::int* x) → core::int*
- return null;
-static method g(core::int* x) → core::String*
- return null;
+static field core::List<(core::int) → core::Object> v = <(core::int) → core::Object>[#C1, #C2];
+static method f(core::int x) → core::int
+ return 0;
+static method g(core::int x) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.outline.expect
index 4de588f..3aaac73 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<(core::int*) →* core::Object*>* v;
-static method f(core::int* x) → core::int*
+static field core::List<(core::int) → core::Object> v;
+static method f(core::int x) → core::int
;
-static method g(core::int* x) → core::String*
+static method g(core::int x) → core::String
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.transformed.expect
index 805ab2c..c181f5b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_uses_synthetic_function_type_required_param.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<(core::int*) →* core::Object*>* v = core::_GrowableList::_literal2<(core::int*) →* core::Object*>(#C1, #C2);
-static method f(core::int* x) → core::int*
- return null;
-static method g(core::int* x) → core::String*
- return null;
+static field core::List<(core::int) → core::Object> v = core::_GrowableList::_literal2<(core::int) → core::Object>(#C1, #C2);
+static method f(core::int x) → core::int
+ return 0;
+static method g(core::int x) → core::String
+ return "";
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart
index 2a8e631..11972a9 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- static final f = /*@ returnType=(int*) ->* Map<int*, bool*>* */ (bool
- b) => /*@ returnType=Map<int*, bool*>* */ (int i) => /*@ typeArgs=int*, bool* */ {i: b};
+ static final f = /*@returnType=(int) -> Map<int, bool>*/ (bool
+ b) => /*@returnType=Map<int, bool>*/ (int i) => /*@typeArgs=int, bool*/ {i: b};
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline.expect
index e1c479d..a5cc028 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline_modelled.expect
index e1c479d..a5cc028 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.expect
index 7c6c26d..557304d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* (core::int*) →* core::Map<core::int*, core::bool*>* f = (core::bool* b) → (core::int*) →* core::Map<core::int*, core::bool*>* => (core::int* i) → core::Map<core::int*, core::bool*>* => <core::int*, core::bool*>{i: b};
- synthetic constructor •() → self::C*
+ static final field (core::bool) → (core::int) → core::Map<core::int, core::bool> f = (core::bool b) → (core::int) → core::Map<core::int, core::bool> => (core::int i) → core::Map<core::int, core::bool> => <core::int, core::bool>{i: b};
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.modular.expect
index 7c6c26d..557304d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* (core::int*) →* core::Map<core::int*, core::bool*>* f = (core::bool* b) → (core::int*) →* core::Map<core::int*, core::bool*>* => (core::int* i) → core::Map<core::int*, core::bool*>* => <core::int*, core::bool*>{i: b};
- synthetic constructor •() → self::C*
+ static final field (core::bool) → (core::int) → core::Map<core::int, core::bool> f = (core::bool b) → (core::int) → core::Map<core::int, core::bool> => (core::int i) → core::Map<core::int, core::bool> => <core::int, core::bool>{i: b};
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.outline.expect
index 81002bb..dd4646b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* (core::int*) →* core::Map<core::int*, core::bool*>* f;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → (core::int) → core::Map<core::int, core::bool> f;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.transformed.expect
index 7c6c26d..557304d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_multiple_levels_of_nesting.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* (core::int*) →* core::Map<core::int*, core::bool*>* f = (core::bool* b) → (core::int*) →* core::Map<core::int*, core::bool*>* => (core::int* i) → core::Map<core::int*, core::bool*>* => <core::int*, core::bool*>{i: b};
- synthetic constructor •() → self::C*
+ static final field (core::bool) → (core::int) → core::Map<core::int, core::bool> f = (core::bool b) → (core::int) → core::Map<core::int, core::bool> => (core::int i) → core::Map<core::int, core::bool> => <core::int, core::bool>{i: b};
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart
index 3075157..76efa44 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- static final f = /*@ returnType=bool* */ (bool b) => b;
+ static final f = /*@returnType=bool*/ (bool b) => b;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline.expect
index bbe0538..fc48846 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline_modelled.expect
index bbe0538..fc48846 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.expect
index edd69ee..9a7f76f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::bool* f = (core::bool* b) → core::bool* => b;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::bool f = (core::bool b) → core::bool => b;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.modular.expect
index edd69ee..9a7f76f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::bool* f = (core::bool* b) → core::bool* => b;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::bool f = (core::bool b) → core::bool => b;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.outline.expect
index f9dc7d5..24e8a3f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::bool* f;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::bool f;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.transformed.expect
index edd69ee..9a7f76f 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_depends_on_args.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::bool* f = (core::bool* b) → core::bool* => b;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::bool f = (core::bool b) → core::bool => b;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart
index c05d7ad..08e3315 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- static final f = /*@ returnType=int* */ (bool b) => 1;
+ static final f = /*@returnType=int*/ (bool b) => 1;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline.expect
index 23d72ce..015c510 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline_modelled.expect
index 23d72ce..015c510 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.expect
index 06af2b3..305a39d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::int* f = (core::bool* b) → core::int* => 1;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::int f = (core::bool b) → core::int => 1;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.modular.expect
index 06af2b3..305a39d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::int* f = (core::bool* b) → core::int* => 1;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::int f = (core::bool b) → core::int => 1;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.outline.expect
index e735ba1..bc7cc7d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::int* f;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::int f;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.transformed.expect
index 06af2b3..305a39d 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_field.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- static final field (core::bool*) →* core::int* f = (core::bool* b) → core::int* => 1;
- synthetic constructor •() → self::C*
+ static final field (core::bool) → core::int f = (core::bool b) → core::int => 1;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart
index 8690f8d..1030f5b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-final f = /*@ returnType=int* */ (bool b) => 1;
+final f = /*@returnType=int*/ (bool b) => 1;
main() {
f;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline.expect
index 206b794..2cfa51b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
final f = (bool b) => 1;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline_modelled.expect
index 206b794..2cfa51b 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
final f = (bool b) => 1;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.expect
index ac18ccc..0d38afe 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field (core::bool*) →* core::int* f = (core::bool* b) → core::int* => 1;
+static final field (core::bool) → core::int f = (core::bool b) → core::int => 1;
static method main() → dynamic {
self::f;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.modular.expect
index ac18ccc..0d38afe 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field (core::bool*) →* core::int* f = (core::bool* b) → core::int* => 1;
+static final field (core::bool) → core::int f = (core::bool b) → core::int => 1;
static method main() → dynamic {
self::f;
}
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.outline.expect
index d303dfc..25d83e6 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field (core::bool*) →* core::int* f;
+static final field (core::bool) → core::int f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.transformed.expect
index ac18ccc..0d38afe 100644
--- a/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inferred_type_via_closure_type_independent_of_args_top_level.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static final field (core::bool*) →* core::int* f = (core::bool* b) → core::int* => 1;
+static final field (core::bool) → core::int f = (core::bool b) → core::int => 1;
static method main() → dynamic {
self::f;
}
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart
index 38f62b7..4d4c90c 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline.expect
index 379de19..134a70e 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class I1 {
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline_modelled.expect
index 228de69..71382d7 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class I2 {
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.expect
index 7b33a23..bf13c875 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- final field core::int* x = self::y;
- synthetic constructor •() → self::I1*
+ final field core::int x = self::y;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num;
}
class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* y = new self::C::•().{self::C::x}{core::int*};
+static field core::int y = new self::C::•().{self::C::x}{core::int};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.modular.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.modular.expect
index 7b33a23..bf13c875 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.modular.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- final field core::int* x = self::y;
- synthetic constructor •() → self::I1*
+ final field core::int x = self::y;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num;
}
class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* y = new self::C::•().{self::C::x}{core::int*};
+static field core::int y = new self::C::•().{self::C::x}{core::int};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.outline.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.outline.expect
index 206c9e8..5ab909e 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.outline.expect
@@ -1,53 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- final field core::int* x;
- synthetic constructor •() → self::I1*
+ final field core::int x;
+ synthetic constructor •() → self::I1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num;
}
class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- get x() → core::int*
+ get x() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* y;
+static field core::int y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.transformed.expect
index 7b33a23..bf13c875 100644
--- a/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/inheritance_does_not_imply_circularity.dart.weak.transformed.expect
@@ -1,55 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class I1 extends core::Object {
- final field core::int* x = self::y;
- synthetic constructor •() → self::I1*
+ final field core::int x = self::y;
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::num;
}
class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get x() → core::int*
+ get x() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* y = new self::C::•().{self::C::x}{core::int*};
+static field core::int y = new self::C::•().{self::C::x}{core::int};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart b/pkg/front_end/testcases/inference/instance_creation_downwards.dart
index a50d04f..3e47568 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,6 +12,6 @@
class B<T> {}
main() {
- var /*@ type=A<dynamic>* */ x =
- new /*@ typeArgs=dynamic */ A(new /*@ typeArgs=List<dynamic>* */ B());
+ var /*@type=A<Object?>*/ x =
+ new /*@typeArgs=Object?*/ A(new /*@typeArgs=List<Object?>*/ B());
}
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline.expect
index 55a9a31..3809765 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline_modelled.expect
index 55a9a31..3809765 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.expect
index 1e592bc2..1e0189b 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B<core::List<self::A::T*>*>* b) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B<core::List<self::A::T%>> b) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<dynamic>* x = new self::A::•<dynamic>(new self::B::•<core::List<dynamic>*>());
+ self::A<core::Object?> x = new self::A::•<core::Object?>(new self::B::•<core::List<core::Object?>>());
}
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.modular.expect
index 1e592bc2..1e0189b 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.modular.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B<core::List<self::A::T*>*>* b) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B<core::List<self::A::T%>> b) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<dynamic>* x = new self::A::•<dynamic>(new self::B::•<core::List<dynamic>*>());
+ self::A<core::Object?> x = new self::A::•<core::Object?>(new self::B::•<core::List<core::Object?>>());
}
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.outline.expect
index 4ee8d42..d8b6844 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.outline.expect
@@ -1,34 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B<core::List<self::A::T*>*>* b) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B<core::List<self::A::T%>> b) → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.transformed.expect
index 1e592bc2..1e0189b 100644
--- a/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instance_creation_downwards.dart.weak.transformed.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B<core::List<self::A::T*>*>* b) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B<core::List<self::A::T%>> b) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<dynamic>* x = new self::A::•<dynamic>(new self::B::•<core::List<dynamic>*>());
+ self::A<core::Object?> x = new self::A::•<core::Object?>(new self::B::•<core::List<core::Object?>>());
}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart b/pkg/front_end/testcases/inference/instantiate_tearoff.dart
index 7137f2e..b6ab9e0 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline.expect
index f58b8ab..bfdc465 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T f<T>(T x) => x;
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline_modelled.expect
index 198ae74..885153c 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T f<T>(T x) => x;
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.expect
index f272f74..66db882 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.expect
@@ -1,45 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(self::C::f::T* x) → self::C::f::T*
+ method f<T extends core::Object? = dynamic>(self::C::f::T% x) → self::C::f::T%
return x;
- static method g<T extends core::Object* = dynamic>(self::C::g::T* x) → self::C::g::T*
+ static method g<T extends core::Object? = dynamic>(self::C::g::T% x) → self::C::g::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method test() → void {
- (core::int*) →* core::int* func;
- func = super.{self::C::f}<core::int*>;
+ (core::int) → core::int func;
+ func = super.{self::C::f}<core::int>;
}
}
-static method f<T extends core::Object* = dynamic>(self::f::T* x) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% x) → self::f::T%
return x;
static method test() → void {
- function h<T extends core::Object* = dynamic>(T* x) → T*
+ function h<T extends core::Object? = dynamic>(T% x) → T%
return x;
- (core::int*) →* core::int* func;
+ (core::int) → core::int func;
func = #C2;
- func = new self::C::•().{self::C::f}{<T extends core::Object* = dynamic>(T*) →* T*}<core::int*>;
+ func = new self::C::•().{self::C::f}{<T extends core::Object? = dynamic>(T%) → T%}<core::int>;
func = #C4;
- func = h<core::int*>;
+ func = h<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.modular.expect
index f272f74..66db882 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.modular.expect
@@ -1,45 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(self::C::f::T* x) → self::C::f::T*
+ method f<T extends core::Object? = dynamic>(self::C::f::T% x) → self::C::f::T%
return x;
- static method g<T extends core::Object* = dynamic>(self::C::g::T* x) → self::C::g::T*
+ static method g<T extends core::Object? = dynamic>(self::C::g::T% x) → self::C::g::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method test() → void {
- (core::int*) →* core::int* func;
- func = super.{self::C::f}<core::int*>;
+ (core::int) → core::int func;
+ func = super.{self::C::f}<core::int>;
}
}
-static method f<T extends core::Object* = dynamic>(self::f::T* x) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% x) → self::f::T%
return x;
static method test() → void {
- function h<T extends core::Object* = dynamic>(T* x) → T*
+ function h<T extends core::Object? = dynamic>(T% x) → T%
return x;
- (core::int*) →* core::int* func;
+ (core::int) → core::int func;
func = #C2;
- func = new self::C::•().{self::C::f}{<T extends core::Object* = dynamic>(T*) →* T*}<core::int*>;
+ func = new self::C::•().{self::C::f}{<T extends core::Object? = dynamic>(T%) → T%}<core::int>;
func = #C4;
- func = h<core::int*>;
+ func = h<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.outline.expect
index acad0ca..addd631 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.outline.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f<T extends core::Object* = dynamic>(self::C::f::T* x) → self::C::f::T*
+ method f<T extends core::Object? = dynamic>(self::C::f::T% x) → self::C::f::T%
;
- static method g<T extends core::Object* = dynamic>(self::C::g::T* x) → self::C::g::T*
+ static method g<T extends core::Object? = dynamic>(self::C::g::T% x) → self::C::g::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method test() → void
;
}
-static method f<T extends core::Object* = dynamic>(self::f::T* x) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% x) → self::f::T%
;
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.transformed.expect
index f272f74..66db882 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff.dart.weak.transformed.expect
@@ -1,45 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(self::C::f::T* x) → self::C::f::T*
+ method f<T extends core::Object? = dynamic>(self::C::f::T% x) → self::C::f::T%
return x;
- static method g<T extends core::Object* = dynamic>(self::C::g::T* x) → self::C::g::T*
+ static method g<T extends core::Object? = dynamic>(self::C::g::T% x) → self::C::g::T%
return x;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method test() → void {
- (core::int*) →* core::int* func;
- func = super.{self::C::f}<core::int*>;
+ (core::int) → core::int func;
+ func = super.{self::C::f}<core::int>;
}
}
-static method f<T extends core::Object* = dynamic>(self::f::T* x) → self::f::T*
+static method f<T extends core::Object? = dynamic>(self::f::T% x) → self::f::T%
return x;
static method test() → void {
- function h<T extends core::Object* = dynamic>(T* x) → T*
+ function h<T extends core::Object? = dynamic>(T% x) → T%
return x;
- (core::int*) →* core::int* func;
+ (core::int) → core::int func;
func = #C2;
- func = new self::C::•().{self::C::f}{<T extends core::Object* = dynamic>(T*) →* T*}<core::int*>;
+ func = new self::C::•().{self::C::f}{<T extends core::Object? = dynamic>(T%) → T%}<core::int>;
func = #C4;
- func = h<core::int*>;
+ func = h<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart
index b112116..2c07157 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> {
- void Function(T) f<U>(U x) => /*@ returnType=Null */ (/*@ type=C::T* */ y) {};
+ void Function(T) f<U>(U x) => /*@returnType=void*/ (/*@type=C::T%*/ y) {};
}
void test(C<String> c) {
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline.expect
index 6740386..585e21c 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline_modelled.expect
index 11bee7d..d1a470c 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.expect
index 86594e9..7bb2ac2 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::T*) →* void
- return (self::C::T* y) → Null {};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::T%) → void
+ return (self::C::T% y) → void {};
}
-static method test(self::C<core::String*>* c) → void {
- (core::int*) →* (core::String*) →* void tearoff = (c.{self::C::f}{<U extends core::Object* = dynamic>(U*) →* (core::String*) →* void} as{TypeError,CovarianceCheck} <U extends core::Object* = dynamic>(U*) →* (core::String*) →* void)<core::int*>;
+static method test(self::C<core::String> c) → void {
+ (core::int) → (core::String) → void tearoff = (c.{self::C::f}{<U extends core::Object? = dynamic>(U%) → (core::String) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <U extends core::Object? = dynamic>(U%) → (core::String) → void)<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.modular.expect
index 86594e9..7bb2ac2 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::T*) →* void
- return (self::C::T* y) → Null {};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::T%) → void
+ return (self::C::T% y) → void {};
}
-static method test(self::C<core::String*>* c) → void {
- (core::int*) →* (core::String*) →* void tearoff = (c.{self::C::f}{<U extends core::Object* = dynamic>(U*) →* (core::String*) →* void} as{TypeError,CovarianceCheck} <U extends core::Object* = dynamic>(U*) →* (core::String*) →* void)<core::int*>;
+static method test(self::C<core::String> c) → void {
+ (core::int) → (core::String) → void tearoff = (c.{self::C::f}{<U extends core::Object? = dynamic>(U%) → (core::String) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <U extends core::Object? = dynamic>(U%) → (core::String) → void)<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.outline.expect
index 629df19..e312b24 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::T*) →* void
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::T%) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(self::C<core::String*>* c) → void
+static method test(self::C<core::String> c) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.transformed.expect
index 86594e9..7bb2ac2 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_after_contravariance_check.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- method f<U extends core::Object* = dynamic>(self::C::f::U* x) → (self::C::T*) →* void
- return (self::C::T* y) → Null {};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<U extends core::Object? = dynamic>(self::C::f::U% x) → (self::C::T%) → void
+ return (self::C::T% y) → void {};
}
-static method test(self::C<core::String*>* c) → void {
- (core::int*) →* (core::String*) →* void tearoff = (c.{self::C::f}{<U extends core::Object* = dynamic>(U*) →* (core::String*) →* void} as{TypeError,CovarianceCheck} <U extends core::Object* = dynamic>(U*) →* (core::String*) →* void)<core::int*>;
+static method test(self::C<core::String> c) → void {
+ (core::int) → (core::String) → void tearoff = (c.{self::C::f}{<U extends core::Object? = dynamic>(U%) → (core::String) → void} as{TypeError,CovarianceCheck,ForNonNullableByDefault} <U extends core::Object? = dynamic>(U%) → (core::String) → void)<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart
index d44fc61..f4b7459 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.expect
index 2e086bf..bfb17da 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:10:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
+// pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:12:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
// func = f.call;
// ^
//
@@ -11,7 +11,7 @@
static method test(<T extends core::Object* = dynamic>(T*) →* T* f) → void {
(core::int*) →* core::int* func;
- func = invalid-expression "pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:10:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
+ func = invalid-expression "pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:12:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
func = f.call;
^" in f.call as{TypeError} (core::int*) →* core::int*;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.modular.expect
index 2e086bf..bfb17da 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.modular.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:10:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
+// pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:12:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
// func = f.call;
// ^
//
@@ -11,7 +11,7 @@
static method test(<T extends core::Object* = dynamic>(T*) →* T* f) → void {
(core::int*) →* core::int* func;
- func = invalid-expression "pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:10:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
+ func = invalid-expression "pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:12:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
func = f.call;
^" in f.call as{TypeError} (core::int*) →* core::int*;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.transformed.expect
index 2e086bf..bfb17da 100644
--- a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:10:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
+// pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:12:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
// func = f.call;
// ^
//
@@ -11,7 +11,7 @@
static method test(<T extends core::Object* = dynamic>(T*) →* T* f) → void {
(core::int*) →* core::int* func;
- func = invalid-expression "pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:10:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
+ func = invalid-expression "pkg/front_end/testcases/inference/instantiate_tearoff_of_call.dart:12:12: Error: A value of type 'T Function<T>(T)' can't be assigned to a variable of type 'int Function(int)'.
func = f.call;
^" in f.call as{TypeError} (core::int*) →* core::int*;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart
new file mode 100644
index 0000000..1967387
--- /dev/null
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+void test(T Function<T>(T) f) {
+ int Function(int) func;
+ func = f.call;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.textual_outline.expect
new file mode 100644
index 0000000..3ac64a9
--- /dev/null
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+library test;
+
+void test(T Function<T>(T) f) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b579dab
--- /dev/null
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+library test;
+
+main() {}
+void test(T Function<T>(T) f) {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.expect
new file mode 100644
index 0000000..26274da1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.expect
@@ -0,0 +1,9 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(<T extends core::Object? = dynamic>(T%) → T% f) → void {
+ (core::int) → core::int func;
+ func = f.call<core::int>;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.modular.expect
new file mode 100644
index 0000000..26274da1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.modular.expect
@@ -0,0 +1,9 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(<T extends core::Object? = dynamic>(T%) → T% f) → void {
+ (core::int) → core::int func;
+ func = f.call<core::int>;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.outline.expect
new file mode 100644
index 0000000..f7f9c64
--- /dev/null
+++ b/pkg/front_end/testcases/inference/instantiate_tearoff_of_call2.dart.weak.outline.expect
@@ -0,0 +1,8 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method test(<T extends core::Object? = dynamic>(T%) → T% f) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart
index eedc188..c5aabb1 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,8 +9,8 @@
class A<T extends int> {}
-B v = null;
+B v = throw '';
-main() {
+test() {
v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline.expect
index 937a53e..57bc886 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class B<T extends A> {}
class A<T extends int> {}
-B v = null;
-main() {}
+B v = throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline_modelled.expect
index 5b4b015..dd1576d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
-B v = null;
+B v = throw '';
class A<T extends int> {}
class B<T extends A> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect
index 0fb60dc..d7868a1 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<core::int>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.modular.expect
index 0fb60dc..d7868a1 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<core::int>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect
index e676290..99d73b4 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.outline.expect
@@ -1,35 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v;
-static method main() → dynamic
+static field self::B<self::A<core::int>> v;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect
index 0fb60dc..d7868a1 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_after.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<core::int>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart
index 7741a6a..d51ee0d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,8 +9,8 @@
class B<T extends /*error:NOT_INSTANTIATED_BOUND*/ A> {}
-B v = null;
+B v = throw '';
-main() {
+test() {
v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline.expect
index 93b75d2..5ac42a1 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A<T extends int> {}
class B<T extends A> {}
-B v = null;
-main() {}
+B v = throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline_modelled.expect
index 5b4b015..dd1576d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
-B v = null;
+B v = throw '';
class A<T extends int> {}
class B<T extends A> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect
index 0612d0f..d9cba8d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<core::int>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.modular.expect
index 0612d0f..d9cba8d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<core::int>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect
index 8a8c77b..8b1c460 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.outline.expect
@@ -1,35 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v;
-static method main() → dynamic
+static field self::B<self::A<core::int>> v;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect
index 0612d0f..d9cba8d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_has_bound_defined_before.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::int*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::int>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<core::int*>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<core::int>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart
index e1646d1..6a36d8b 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,8 +9,8 @@
class B<T extends A> {}
-B v = null;
+B v = throw '';
-main() {
+test() {
v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline.expect
index 2313221..6e410d8 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A<T> {}
class B<T extends A> {}
-B v = null;
-main() {}
+B v = throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline_modelled.expect
index 0151256..a1351f5 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
-B v = null;
+B v = throw '';
class A<T> {}
class B<T extends A> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect
index 731ae28..fd0a375 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<dynamic>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<dynamic>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.modular.expect
index 731ae28..fd0a375 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<dynamic>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<dynamic>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect
index f7e09d3..e32fb11 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.outline.expect
@@ -1,35 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<dynamic>*>* v;
-static method main() → dynamic
+static field self::B<self::A<dynamic>> v;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect
index 731ae28..fd0a375 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic2_no_bound.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A<dynamic>*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A<dynamic>> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart
index 27f3f93..4ee3038 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-A v = null;
+A v = throw '';
class A<T extends int> {}
-main() {
+test() {
v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline.expect
index f140b4b..5958426 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
-A v = null;
+A v = throw '';
class A<T extends int> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline_modelled.expect
index f140b4b..5958426 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
-A v = null;
+A v = throw '';
class A<T extends int> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect
index 09072c4..051d277 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v = null;
-static method main() → dynamic {
+static field self::A<core::int> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.modular.expect
index 09072c4..051d277 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v = null;
-static method main() → dynamic {
+static field self::A<core::int> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect
index 5cb5fd6..2ca172d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v;
-static method main() → dynamic
+static field self::A<core::int> v;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect
index 09072c4..051d277 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_after.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v = null;
-static method main() → dynamic {
+static field self::A<core::int> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart
index 3d29b34..16dee4d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A<T extends int> {}
-A v = null;
+A v = throw '';
-main() {
+test() {
v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline.expect
index f4deaca..aba6243 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
class A<T extends int> {}
-A v = null;
-main() {}
+A v = throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline_modelled.expect
index f140b4b..5958426 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
-A v = null;
+A v = throw '';
class A<T extends int> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect
index 09072c4..051d277 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v = null;
-static method main() → dynamic {
+static field self::A<core::int> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.modular.expect
index 09072c4..051d277 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v = null;
-static method main() → dynamic {
+static field self::A<core::int> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect
index 5cb5fd6..2ca172d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v;
-static method main() → dynamic
+static field self::A<core::int> v;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect
index 09072c4..051d277 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_generic_has_bound_defined_before.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::int*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::int> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<core::int*>* v = null;
-static method main() → dynamic {
+static field self::A<core::int> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart
index 2ab61b3..0bfb3cc 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> {}
main() {
- var /*@ type=C<dynamic>* */ v = new /*@ typeArgs=dynamic */ C();
+ var /*@type=C<dynamic>*/ v = new /*@ typeArgs=dynamic */ C();
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline.expect
index 1fc88a2..3c2908d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline_modelled.expect
index 1fc88a2..3c2908d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.expect
index 05cb019..3688e12 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<dynamic>* v = new self::C::•<dynamic>();
+ self::C<dynamic> v = new self::C::•<dynamic>();
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.modular.expect
index 05cb019..3688e12 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<dynamic>* v = new self::C::•<dynamic>();
+ self::C<dynamic> v = new self::C::•<dynamic>();
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.outline.expect
index e2b049c..8de3b7d 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.transformed.expect
index 05cb019..3688e12 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_no_bound.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<dynamic>* v = new self::C::•<dynamic>();
+ self::C<dynamic> v = new self::C::•<dynamic>();
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart
index b74908c..a1c62d3 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline.expect
index 016021d..c265515 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T extends num> {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline_modelled.expect
index 116c671..71e70ed 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T extends num> {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect
index 1fb9971..c9aecdc 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* x = new self::C::•<core::int*>();
+static field self::C<core::int> x = new self::C::•<core::int>();
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.modular.expect
index 1fb9971..c9aecdc 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* x = new self::C::•<core::int*>();
+static field self::C<core::int> x = new self::C::•<core::int>();
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect
index 1338660..3dc98d7 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* x;
+static field self::C<core::int> x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect
index 1fb9971..c9aecdc 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_invoke_constructor_type_args_exact.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* x = new self::C::•<core::int*>();
+static field self::C<core::int> x = new self::C::•<core::int>();
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart
index c1b6795..04bc090 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,8 +9,8 @@
class B<T extends A> {}
-B v = null;
+B v = throw '';
-main() {
+test() {
v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline.expect
index 68ed21d..c8caf2e 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class A {}
class B<T extends A> {}
-B v = null;
-main() {}
+B v = throw '';
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline_modelled.expect
index b6747d2..7865249 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
-B v = null;
+B v = throw '';
class A {}
class B<T extends A> {}
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect
index 6bd9194..00cc457 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.modular.expect
index 6bd9194..00cc457 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect
index ef0a99a..a4b11a7 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.outline.expect
@@ -1,35 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A*>* v;
-static method main() → dynamic
+static field self::B<self::A> v;
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect
index 6bd9194..00cc457 100644
--- a/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/instantiate_to_bounds_not_generic.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<self::A*>* v = null;
-static method main() → dynamic {
+static field self::B<self::A> v = throw "";
+static method test() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart b/pkg/front_end/testcases/inference/int_upwards_local.dart
index 95950f1..d4e7729 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart
@@ -1,10 +1,10 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=int* */ x = 1;
+ var /*@type=int*/ x = 1;
}
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline.expect b/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.expect b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.expect
index bdd406c..b54f218 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::int* x = 1;
+ core::int x = 1;
}
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.modular.expect b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.modular.expect
index bdd406c..b54f218 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::int* x = 1;
+ core::int x = 1;
}
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.outline.expect b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.transformed.expect
index bdd406c..b54f218 100644
--- a/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/int_upwards_local.dart.weak.transformed.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::int* x = 1;
+ core::int x = 1;
}
diff --git a/pkg/front_end/testcases/inference/issue41199.dart b/pkg/front_end/testcases/inference/issue41199.dart
index 95fc6a4..778bf42 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart
+++ b/pkg/front_end/testcases/inference/issue41199.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2020, 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.
-// @dart=2.9
+
foo<X>(Map<X, Y> Function<Y>() f) => null;
baz() => foo(<Z>() => <dynamic, Z>{});
diff --git a/pkg/front_end/testcases/inference/issue41199.dart.textual_outline.expect b/pkg/front_end/testcases/inference/issue41199.dart.textual_outline.expect
index d392452..a90b5ce 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/issue41199.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
foo<X>(Map<X, Y> Function<Y>() f) => null;
baz() => foo(<Z>() => <dynamic, Z>{});
main() {}
diff --git a/pkg/front_end/testcases/inference/issue41199.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/issue41199.dart.textual_outline_modelled.expect
index a7957a3..81ec7c1 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/issue41199.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
baz() => foo(<Z>() => <dynamic, Z>{});
foo<X>(Map<X, Y> Function<Y>() f) => null;
main() {}
diff --git a/pkg/front_end/testcases/inference/issue41199.dart.weak.expect b/pkg/front_end/testcases/inference/issue41199.dart.weak.expect
index 6d7392d..993a778 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/issue41199.dart.weak.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method foo<X extends core::Object* = dynamic>(<Y extends core::Object* = dynamic>() →* core::Map<self::foo::X*, Y*>* f) → dynamic
+static method foo<X extends core::Object? = dynamic>(<Y extends core::Object? = dynamic>() → core::Map<self::foo::X%, Y%> f) → dynamic
return null;
static method baz() → dynamic
- return self::foo<dynamic>(<Z extends core::Object* = dynamic>() → core::Map<dynamic, Z*>* => <dynamic, Z*>{});
+ return self::foo<dynamic>(<Z extends core::Object? = dynamic>() → core::Map<dynamic, Z%> => <dynamic, Z%>{});
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/issue41199.dart.weak.modular.expect b/pkg/front_end/testcases/inference/issue41199.dart.weak.modular.expect
index 6d7392d..993a778 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/issue41199.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method foo<X extends core::Object* = dynamic>(<Y extends core::Object* = dynamic>() →* core::Map<self::foo::X*, Y*>* f) → dynamic
+static method foo<X extends core::Object? = dynamic>(<Y extends core::Object? = dynamic>() → core::Map<self::foo::X%, Y%> f) → dynamic
return null;
static method baz() → dynamic
- return self::foo<dynamic>(<Z extends core::Object* = dynamic>() → core::Map<dynamic, Z*>* => <dynamic, Z*>{});
+ return self::foo<dynamic>(<Z extends core::Object? = dynamic>() → core::Map<dynamic, Z%> => <dynamic, Z%>{});
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/issue41199.dart.weak.outline.expect b/pkg/front_end/testcases/inference/issue41199.dart.weak.outline.expect
index 69b0cc3..295ad87 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/issue41199.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method foo<X extends core::Object* = dynamic>(<Y extends core::Object* = dynamic>() →* core::Map<self::foo::X*, Y*>* f) → dynamic
+static method foo<X extends core::Object? = dynamic>(<Y extends core::Object? = dynamic>() → core::Map<self::foo::X%, Y%> f) → dynamic
;
static method baz() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/issue41199.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/issue41199.dart.weak.transformed.expect
index 6d7392d..993a778 100644
--- a/pkg/front_end/testcases/inference/issue41199.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/issue41199.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method foo<X extends core::Object* = dynamic>(<Y extends core::Object* = dynamic>() →* core::Map<self::foo::X*, Y*>* f) → dynamic
+static method foo<X extends core::Object? = dynamic>(<Y extends core::Object? = dynamic>() → core::Map<self::foo::X%, Y%> f) → dynamic
return null;
static method baz() → dynamic
- return self::foo<dynamic>(<Z extends core::Object* = dynamic>() → core::Map<dynamic, Z*>* => <dynamic, Z*>{});
+ return self::foo<dynamic>(<Z extends core::Object? = dynamic>() → core::Map<dynamic, Z%> => <dynamic, Z%>{});
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart
index 4c823e7..3fdda1f 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,8 +9,8 @@
void foo() {
List myList = getListOfString();
- myList. /*@ typeArgs=int* */ /*@target=Iterable.map*/ map(
- /*@ returnType=int* */ (/*@ type=dynamic */ type) => 42);
+ myList. /*@typeArgs=int*/ /*@target=Iterable.map*/ map(
+ /*@returnType=int*/ (/*@ type=dynamic */ type) => 42);
}
void bar() {
@@ -21,7 +21,7 @@
return;
}
/*info:DYNAMIC_INVOKE*/ list.map(
- /*@ returnType=String* */ (/*@ type=dynamic */ value) => '${value}');
+ /*@returnType=String*/ (/*@ type=dynamic */ value) => '${value}');
}
main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline.expect
index 132d473..8090ea1 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<String> getListOfString() => const <String>[];
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline_modelled.expect
index 2ff4dca..cd53744 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<String> getListOfString() => const <String>[];
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.expect
index 9cfc708..3c6da75 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.expect
@@ -1,22 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getListOfString() → core::List<core::String*>*
+static method getListOfString() → core::List<core::String>
return #C1;
static method foo() → void {
- core::List<dynamic>* myList = self::getListOfString();
- myList.{core::Iterable::map}<core::int*>((dynamic type) → core::int* => 42){((dynamic) →* core::int*) →* core::Iterable<core::int*>*};
+ core::List<dynamic> myList = self::getListOfString();
+ myList.{core::Iterable::map}<core::int>((dynamic type) → core::int => 42){((dynamic) → core::int) → core::Iterable<core::int>};
}
static method bar() → void {
dynamic list;
try {
- list = <core::String*>[];
+ list = <core::String>[];
}
- on dynamic catch(final dynamic _) {
+ on core::Object catch(final core::Object _) {
return;
}
- list{dynamic}.map((dynamic value) → core::String* => "${value}");
+ list{dynamic}.map((dynamic value) → core::String => "${value}");
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.modular.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.modular.expect
index 9cfc708..3c6da75 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.modular.expect
@@ -1,22 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getListOfString() → core::List<core::String*>*
+static method getListOfString() → core::List<core::String>
return #C1;
static method foo() → void {
- core::List<dynamic>* myList = self::getListOfString();
- myList.{core::Iterable::map}<core::int*>((dynamic type) → core::int* => 42){((dynamic) →* core::int*) →* core::Iterable<core::int*>*};
+ core::List<dynamic> myList = self::getListOfString();
+ myList.{core::Iterable::map}<core::int>((dynamic type) → core::int => 42){((dynamic) → core::int) → core::Iterable<core::int>};
}
static method bar() → void {
dynamic list;
try {
- list = <core::String*>[];
+ list = <core::String>[];
}
- on dynamic catch(final dynamic _) {
+ on core::Object catch(final core::Object _) {
return;
}
- list{dynamic}.map((dynamic value) → core::String* => "${value}");
+ list{dynamic}.map((dynamic value) → core::String => "${value}");
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.outline.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.outline.expect
index a021f96..8d24c6a 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getListOfString() → core::List<core::String*>*
+static method getListOfString() → core::List<core::String>
;
static method foo() → void
;
diff --git a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.transformed.expect
index 438dd97..597e52c 100644
--- a/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/lambda_does_not_have_propagated_type_hint.dart.weak.transformed.expect
@@ -1,22 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method getListOfString() → core::List<core::String*>*
+static method getListOfString() → core::List<core::String>
return #C1;
static method foo() → void {
- core::List<dynamic>* myList = self::getListOfString();
- myList.{core::Iterable::map}<core::int*>((dynamic type) → core::int* => 42){((dynamic) →* core::int*) →* core::Iterable<core::int*>*};
+ core::List<dynamic> myList = self::getListOfString();
+ myList.{core::Iterable::map}<core::int>((dynamic type) → core::int => 42){((dynamic) → core::int) → core::Iterable<core::int>};
}
static method bar() → void {
dynamic list;
try {
- list = core::_GrowableList::•<core::String*>(0);
+ list = core::_GrowableList::•<core::String>(0);
}
- on dynamic catch(final dynamic _) {
+ on core::Object catch(final core::Object _) {
return;
}
- list{dynamic}.map((dynamic value) → core::String* => "${value}");
+ list{dynamic}.map((dynamic value) → core::String => "${value}");
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type.dart b/pkg/front_end/testcases/inference/lambda_return_type.dart
index cdaf2d6..452f486 100644
--- a/pkg/front_end/testcases/inference/lambda_return_type.dart
+++ b/pkg/front_end/testcases/inference/lambda_return_type.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,12 +12,12 @@
test() {
int i = 1;
Object o = 1;
- FunctionReturningNum a = /*@ returnType=int* */ () => i;
- FunctionReturningNum b = /*@ returnType=num* */ () => o;
- FunctionReturningNum c = /*@ returnType=int* */ () {
+ FunctionReturningNum a = /*@returnType=int**/ () => i;
+ FunctionReturningNum b = /*@returnType=num**/ () => o;
+ FunctionReturningNum c = /*@returnType=int**/ () {
return i;
};
- FunctionReturningNum d = /*@ returnType=num* */ () {
+ FunctionReturningNum d = /*@returnType=num**/ () {
return o;
};
}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart b/pkg/front_end/testcases/inference/lambda_return_type2.dart
new file mode 100644
index 0000000..bbc9b57
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart
@@ -0,0 +1,23 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+typedef num FunctionReturningNum();
+
+test() {
+ int i = 1;
+ dynamic o = 1;
+ FunctionReturningNum a = /*@returnType=int*/ () => i;
+ FunctionReturningNum b = /*@returnType=num*/ () => o;
+ FunctionReturningNum c = /*@returnType=int*/ () {
+ return i;
+ };
+ FunctionReturningNum d = /*@returnType=num*/ () {
+ return o;
+ };
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/lambda_return_type2.dart.textual_outline.expect
new file mode 100644
index 0000000..431191c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart.textual_outline.expect
@@ -0,0 +1,5 @@
+library test;
+
+typedef num FunctionReturningNum();
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/lambda_return_type2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a159045
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart.textual_outline_modelled.expect
@@ -0,0 +1,5 @@
+library test;
+
+main() {}
+test() {}
+typedef num FunctionReturningNum();
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.expect b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.expect
new file mode 100644
index 0000000..4d5ee2a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.expect
@@ -0,0 +1,18 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef FunctionReturningNum = () → core::num;
+static method test() → dynamic {
+ core::int i = 1;
+ dynamic o = 1;
+ () → core::num a = () → core::int => i;
+ () → core::num b = () → core::num => o as{TypeError,ForDynamic,ForNonNullableByDefault} core::num;
+ () → core::num c = () → core::int {
+ return i;
+ };
+ () → core::num d = () → core::num {
+ return o as{TypeError,ForDynamic,ForNonNullableByDefault} core::num;
+ };
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.modular.expect
new file mode 100644
index 0000000..4d5ee2a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.modular.expect
@@ -0,0 +1,18 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef FunctionReturningNum = () → core::num;
+static method test() → dynamic {
+ core::int i = 1;
+ dynamic o = 1;
+ () → core::num a = () → core::int => i;
+ () → core::num b = () → core::num => o as{TypeError,ForDynamic,ForNonNullableByDefault} core::num;
+ () → core::num c = () → core::int {
+ return i;
+ };
+ () → core::num d = () → core::num {
+ return o as{TypeError,ForDynamic,ForNonNullableByDefault} core::num;
+ };
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.outline.expect
new file mode 100644
index 0000000..a044417
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.outline.expect
@@ -0,0 +1,9 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef FunctionReturningNum = () → core::num;
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.transformed.expect
new file mode 100644
index 0000000..4d5ee2a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/lambda_return_type2.dart.weak.transformed.expect
@@ -0,0 +1,18 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+typedef FunctionReturningNum = () → core::num;
+static method test() → dynamic {
+ core::int i = 1;
+ dynamic o = 1;
+ () → core::num a = () → core::int => i;
+ () → core::num b = () → core::num => o as{TypeError,ForDynamic,ForNonNullableByDefault} core::num;
+ () → core::num c = () → core::int {
+ return i;
+ };
+ () → core::num d = () → core::num {
+ return o as{TypeError,ForDynamic,ForNonNullableByDefault} core::num;
+ };
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart b/pkg/front_end/testcases/inference/lambda_void_context.dart
index 44143a8..d24a4e5 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart
@@ -1,14 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-f() {
- List<int> o;
+f(List<int> o) {
o. /*@target=Iterable.forEach*/ forEach(
- /*@ returnType=int* */ (/*@ type=int* */ i) => i /*@target=num.+*/ + 1);
+ /*@returnType=void*/ (/*@type=int*/ i) => i /*@target=num.+*/ + 1);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline.expect
index 54d3052..3276f20 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-f() {}
+f(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline_modelled.expect
index 54d3052..3276f20 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-f() {}
+f(List<int> o) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.expect
index bfc338c..2c12f41 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.expect
@@ -1,9 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f() → dynamic {
- core::List<core::int*>* o;
- o.{core::Iterable::forEach}((core::int* i) → core::int* => i.{core::num::+}(1){(core::num*) →* core::int*}){((core::int*) →* void) →* void};
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::forEach}((core::int i) → void => i.{core::num::+}(1){(core::num) → core::int}){((core::int) → void) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.modular.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.modular.expect
index bfc338c..2c12f41 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.modular.expect
@@ -1,9 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f() → dynamic {
- core::List<core::int*>* o;
- o.{core::Iterable::forEach}((core::int* i) → core::int* => i.{core::num::+}(1){(core::num*) →* core::int*}){((core::int*) →* void) →* void};
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::forEach}((core::int i) → void => i.{core::num::+}(1){(core::num) → core::int}){((core::int) → void) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.outline.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.outline.expect
index b08cbd0..a5a8e2e 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method f() → dynamic
+static method f(core::List<core::int> o) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.transformed.expect
index bfc338c..2c12f41 100644
--- a/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/lambda_void_context.dart.weak.transformed.expect
@@ -1,9 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f() → dynamic {
- core::List<core::int*>* o;
- o.{core::Iterable::forEach}((core::int* i) → core::int* => i.{core::num::+}(1){(core::num*) →* core::int*}){((core::int*) →* void) →* void};
+static method f(core::List<core::int> o) → dynamic {
+ o.{core::Iterable::forEach}((core::int i) → void => i.{core::num::+}(1){(core::num) → core::int}){((core::int) → void) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart b/pkg/front_end/testcases/inference/list_literal_typed.dart
index 39ca4a0..5182f1a 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,8 +11,8 @@
var d = <dynamic>[1, 2.0, false];
main() {
- var /*@ type=List<int*>* */ a = <int>[];
- var /*@ type=List<double*>* */ b = <double>[1.0, 2.0, 3.0];
- var /*@ type=List<List<int*>*>* */ c = <List<int>>[];
- var /*@ type=List<dynamic>* */ d = <dynamic>[1, 2.0, false];
+ var /*@type=List<int>*/ a = <int>[];
+ var /*@type=List<double>*/ b = <double>[1.0, 2.0, 3.0];
+ var /*@type=List<List<int>>*/ c = <List<int>>[];
+ var /*@type=List<dynamic>*/ d = <dynamic>[1, 2.0, false];
}
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline.expect
index 850be34..a8bb8ca 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = <int>[];
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline_modelled.expect
index 4745cec..64454d9 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.expect
index 87ba7a9..3519921 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* a = <core::int*>[];
-static field core::List<core::double*>* b = <core::double*>[1.0, 2.0, 3.0];
-static field core::List<core::List<core::int*>*>* c = <core::List<core::int*>*>[];
-static field core::List<dynamic>* d = <dynamic>[1, 2.0, false];
+static field core::List<core::int> a = <core::int>[];
+static field core::List<core::double> b = <core::double>[1.0, 2.0, 3.0];
+static field core::List<core::List<core::int>> c = <core::List<core::int>>[];
+static field core::List<dynamic> d = <dynamic>[1, 2.0, false];
static method main() → dynamic {
- core::List<core::int*>* a = <core::int*>[];
- core::List<core::double*>* b = <core::double*>[1.0, 2.0, 3.0];
- core::List<core::List<core::int*>*>* c = <core::List<core::int*>*>[];
- core::List<dynamic>* d = <dynamic>[1, 2.0, false];
+ core::List<core::int> a = <core::int>[];
+ core::List<core::double> b = <core::double>[1.0, 2.0, 3.0];
+ core::List<core::List<core::int>> c = <core::List<core::int>>[];
+ core::List<dynamic> d = <dynamic>[1, 2.0, false];
}
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.modular.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.modular.expect
index 87ba7a9..3519921 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* a = <core::int*>[];
-static field core::List<core::double*>* b = <core::double*>[1.0, 2.0, 3.0];
-static field core::List<core::List<core::int*>*>* c = <core::List<core::int*>*>[];
-static field core::List<dynamic>* d = <dynamic>[1, 2.0, false];
+static field core::List<core::int> a = <core::int>[];
+static field core::List<core::double> b = <core::double>[1.0, 2.0, 3.0];
+static field core::List<core::List<core::int>> c = <core::List<core::int>>[];
+static field core::List<dynamic> d = <dynamic>[1, 2.0, false];
static method main() → dynamic {
- core::List<core::int*>* a = <core::int*>[];
- core::List<core::double*>* b = <core::double*>[1.0, 2.0, 3.0];
- core::List<core::List<core::int*>*>* c = <core::List<core::int*>*>[];
- core::List<dynamic>* d = <dynamic>[1, 2.0, false];
+ core::List<core::int> a = <core::int>[];
+ core::List<core::double> b = <core::double>[1.0, 2.0, 3.0];
+ core::List<core::List<core::int>> c = <core::List<core::int>>[];
+ core::List<dynamic> d = <dynamic>[1, 2.0, false];
}
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.outline.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.outline.expect
index 683fac8..0fbc7e9 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* a;
-static field core::List<core::double*>* b;
-static field core::List<core::List<core::int*>*>* c;
-static field core::List<dynamic>* d;
+static field core::List<core::int> a;
+static field core::List<core::double> b;
+static field core::List<core::List<core::int>> c;
+static field core::List<dynamic> d;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.transformed.expect
index 08d625d..e689f44 100644
--- a/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literal_typed.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* a = core::_GrowableList::•<core::int*>(0);
-static field core::List<core::double*>* b = core::_GrowableList::_literal3<core::double*>(1.0, 2.0, 3.0);
-static field core::List<core::List<core::int*>*>* c = core::_GrowableList::•<core::List<core::int*>*>(0);
-static field core::List<dynamic>* d = core::_GrowableList::_literal3<dynamic>(1, 2.0, false);
+static field core::List<core::int> a = core::_GrowableList::•<core::int>(0);
+static field core::List<core::double> b = core::_GrowableList::_literal3<core::double>(1.0, 2.0, 3.0);
+static field core::List<core::List<core::int>> c = core::_GrowableList::•<core::List<core::int>>(0);
+static field core::List<dynamic> d = core::_GrowableList::_literal3<dynamic>(1, 2.0, false);
static method main() → dynamic {
- core::List<core::int*>* a = core::_GrowableList::•<core::int*>(0);
- core::List<core::double*>* b = core::_GrowableList::_literal3<core::double*>(1.0, 2.0, 3.0);
- core::List<core::List<core::int*>*>* c = core::_GrowableList::•<core::List<core::int*>*>(0);
- core::List<dynamic>* d = core::_GrowableList::_literal3<dynamic>(1, 2.0, false);
+ core::List<core::int> a = core::_GrowableList::•<core::int>(0);
+ core::List<core::double> b = core::_GrowableList::_literal3<core::double>(1.0, 2.0, 3.0);
+ core::List<core::List<core::int>> c = core::_GrowableList::•<core::List<core::int>>(0);
+ core::List<dynamic> d = core::_GrowableList::_literal3<dynamic>(1, 2.0, false);
}
diff --git a/pkg/front_end/testcases/inference/list_literals.dart b/pkg/front_end/testcases/inference/list_literals.dart
index d6c56b3..0e7aa7e 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart
+++ b/pkg/front_end/testcases/inference/list_literals.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test1() {
- var /*@ type=List<int*>* */ x = /*@ typeArgs=int* */ [1, 2, 3];
+ var /*@type=List<int>*/ x = /*@typeArgs=int*/ [1, 2, 3];
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
x. /*@target=List.add*/ add(4);
@@ -14,7 +14,7 @@
}
test2() {
- var /*@ type=List<num*>* */ x = /*@ typeArgs=num* */ [1, 2.0, 3];
+ var /*@type=List<num>*/ x = /*@typeArgs=num*/ [1, 2.0, 3];
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
x. /*@target=List.add*/ add(4.0);
List<int> y = /*info:ASSIGNMENT_CAST*/ x;
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.textual_outline.expect b/pkg/front_end/testcases/inference/list_literals.dart.textual_outline.expect
index eee2ee4..5609202 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test1() {}
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/list_literals.dart.textual_outline_modelled.expect
index 6c93634..140f235 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.weak.expect b/pkg/front_end/testcases/inference/list_literals.dart.weak.expect
index a4e38e4..578cc6c 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,26 +14,34 @@
// x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
// ^
//
+// pkg/front_end/testcases/inference/list_literals.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> y = /*info:ASSIGNMENT_CAST*/ x;
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::List<core::int*>* x = <core::int*>[1, 2, 3];
+ core::List<core::int> x = <core::int>[1, 2, 3];
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:10:70: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::int*){(core::int*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:11:70: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
- ^" in 4.0 as{TypeError} core::int*){(core::int*) →* void};
- x.{core::List::add}(4){(core::int*) →* void};
- core::List<core::num*>* y = x;
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ x.{core::List::add}(4){(core::int) → void};
+ core::List<core::num> y = x;
}
static method test2() → dynamic {
- core::List<core::num*>* x = <core::num*>[1, 2.0, 3];
+ core::List<core::num> x = <core::num>[1, 2.0, 3];
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:18:70: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::num*){(core::num*) →* void};
- x.{core::List::add}(4.0){(core::num*) →* void};
- core::List<core::int*>* y = x as{TypeError} core::List<core::int*>*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num){(core::num) → void};
+ x.{core::List::add}(4.0){(core::num) → void};
+ core::List<core::int> y = invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> y = /*info:ASSIGNMENT_CAST*/ x;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.weak.modular.expect b/pkg/front_end/testcases/inference/list_literals.dart.weak.modular.expect
index a4e38e4..578cc6c 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,26 +14,34 @@
// x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
// ^
//
+// pkg/front_end/testcases/inference/list_literals.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> y = /*info:ASSIGNMENT_CAST*/ x;
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::List<core::int*>* x = <core::int*>[1, 2, 3];
+ core::List<core::int> x = <core::int>[1, 2, 3];
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:10:70: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::int*){(core::int*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:11:70: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
- ^" in 4.0 as{TypeError} core::int*){(core::int*) →* void};
- x.{core::List::add}(4){(core::int*) →* void};
- core::List<core::num*>* y = x;
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ x.{core::List::add}(4){(core::int) → void};
+ core::List<core::num> y = x;
}
static method test2() → dynamic {
- core::List<core::num*>* x = <core::num*>[1, 2.0, 3];
+ core::List<core::num> x = <core::num>[1, 2.0, 3];
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:18:70: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::num*){(core::num*) →* void};
- x.{core::List::add}(4.0){(core::num*) →* void};
- core::List<core::int*>* y = x as{TypeError} core::List<core::int*>*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num){(core::num) → void};
+ x.{core::List::add}(4.0){(core::num) → void};
+ core::List<core::int> y = invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> y = /*info:ASSIGNMENT_CAST*/ x;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.weak.outline.expect b/pkg/front_end/testcases/inference/list_literals.dart.weak.outline.expect
index 893540e..c9f55bc 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test1() → dynamic
diff --git a/pkg/front_end/testcases/inference/list_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/list_literals.dart.weak.transformed.expect
index 6631f98..f8209e7 100644
--- a/pkg/front_end/testcases/inference/list_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,26 +14,34 @@
// x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
// ^
//
+// pkg/front_end/testcases/inference/list_literals.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> y = /*info:ASSIGNMENT_CAST*/ x;
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::List<core::int*>* x = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
+ core::List<core::int> x = core::_GrowableList::_literal3<core::int>(1, 2, 3);
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:10:70: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::int*){(core::int*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:11:70: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
- ^" in 4.0 as{TypeError} core::int*){(core::int*) →* void};
- x.{core::List::add}(4){(core::int*) →* void};
- core::List<core::num*>* y = x;
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ x.{core::List::add}(4){(core::int) → void};
+ core::List<core::num> y = x;
}
static method test2() → dynamic {
- core::List<core::num*>* x = core::_GrowableList::_literal3<core::num*>(1, 2.0, 3);
+ core::List<core::num> x = core::_GrowableList::_literal3<core::num>(1, 2.0, 3);
x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:18:70: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
x. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::num*){(core::num*) →* void};
- x.{core::List::add}(4.0){(core::num*) →* void};
- core::List<core::int*>* y = x as{TypeError} core::List<core::int*>*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num){(core::num) → void};
+ x.{core::List::add}(4.0){(core::num) → void};
+ core::List<core::int> y = invalid-expression "pkg/front_end/testcases/inference/list_literals.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> y = /*info:ASSIGNMENT_CAST*/ x;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart
index e8742e5..ed2b92f4 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test1() {
- var /*@ type=List<Null>* */ x = /*@ typeArgs=Null */ [null];
+ var /*@type=List<Null>*/ x = /*@ typeArgs=Null */ [null];
x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline.expect
index f75f219..a73b3f8 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test1() {}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline_modelled.expect
index b1f0123..128ffb9 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.expect
index 6efc2e7..aceb523 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.expect
@@ -1,9 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart:10:62: Error: The argument type 'int' can't be assigned to the parameter type 'Null'.
+// x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::List<Null>* x = <Null>[null];
- x.{core::List::add}(42 as{TypeError} Null){(Null) →* void};
+ core::List<Null> x = <Null>[null];
+ x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart:10:62: Error: The argument type 'int' can't be assigned to the parameter type 'Null'.
+ x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
+ ^" in 42 as{TypeError,ForNonNullableByDefault} Null){(Null) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.modular.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.modular.expect
index 6efc2e7..aceb523 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.modular.expect
@@ -1,9 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart:10:62: Error: The argument type 'int' can't be assigned to the parameter type 'Null'.
+// x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::List<Null>* x = <Null>[null];
- x.{core::List::add}(42 as{TypeError} Null){(Null) →* void};
+ core::List<Null> x = <Null>[null];
+ x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart:10:62: Error: The argument type 'int' can't be assigned to the parameter type 'Null'.
+ x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
+ ^" in 42 as{TypeError,ForNonNullableByDefault} Null){(Null) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.outline.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.outline.expect
index 3619892..c7a3436 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test1() → dynamic
diff --git a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.transformed.expect
index 53cdae6..6b46a1d 100644
--- a/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart.weak.transformed.expect
@@ -1,9 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart:10:62: Error: The argument type 'int' can't be assigned to the parameter type 'Null'.
+// x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::List<Null>* x = core::_GrowableList::_literal1<Null>(null);
- x.{core::List::add}(42 as{TypeError} Null){(Null) →* void};
+ core::List<Null> x = core::_GrowableList::_literal1<Null>(null);
+ x.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_can_infer_null_bottom.dart:10:62: Error: The argument type 'int' can't be assigned to the parameter type 'Null'.
+ x. /*@target=List.add*/ add(/*error:INVALID_CAST_LITERAL*/ 42);
+ ^" in 42 as{TypeError,ForNonNullableByDefault} Null){(Null) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart b/pkg/front_end/testcases/inference/list_literals_top_level.dart
index d8a8475..6cb3b90 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-var x1 = /*@ typeArgs=int* */ [1, 2, 3];
+var x1 = /*@typeArgs=int*/ [1, 2, 3];
test1() {
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
@@ -13,7 +13,7 @@
List<num> y = x1;
}
-var x2 = /*@ typeArgs=num* */ [1, 2.0, 3];
+var x2 = /*@typeArgs=num*/ [1, 2.0, 3];
test2() {
x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
x2. /*@target=List.add*/ add(4.0);
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline.expect
index 7927c17..6756ba5 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x1 = [1, 2, 3];
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline_modelled.expect
index 8caee53..f0f5ec2 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.expect
index 75f767f..e98bc4c 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,26 +14,34 @@
// x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
// ^
//
+// pkg/front_end/testcases/inference/list_literals_top_level.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> y = /*info:ASSIGNMENT_CAST*/ x2;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* x1 = <core::int*>[1, 2, 3];
-static field core::List<core::num*>* x2 = <core::num*>[1, 2.0, 3];
+static field core::List<core::int> x1 = <core::int>[1, 2, 3];
+static field core::List<core::num> x2 = <core::num>[1, 2.0, 3];
static method test1() → dynamic {
self::x1.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:10:71: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::int*){(core::int*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
self::x1.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:11:71: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
- ^" in 4.0 as{TypeError} core::int*){(core::int*) →* void};
- self::x1.{core::List::add}(4){(core::int*) →* void};
- core::List<core::num*>* y = self::x1;
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ self::x1.{core::List::add}(4){(core::int) → void};
+ core::List<core::num> y = self::x1;
}
static method test2() → dynamic {
self::x2.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:18:71: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::num*){(core::num*) →* void};
- self::x2.{core::List::add}(4.0){(core::num*) →* void};
- core::List<core::int*>* y = self::x2 as{TypeError} core::List<core::int*>*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num){(core::num) → void};
+ self::x2.{core::List::add}(4.0){(core::num) → void};
+ core::List<core::int> y = invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> y = /*info:ASSIGNMENT_CAST*/ x2;
+ ^" in self::x2 as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.modular.expect
index 75f767f..e98bc4c 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,26 +14,34 @@
// x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
// ^
//
+// pkg/front_end/testcases/inference/list_literals_top_level.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> y = /*info:ASSIGNMENT_CAST*/ x2;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* x1 = <core::int*>[1, 2, 3];
-static field core::List<core::num*>* x2 = <core::num*>[1, 2.0, 3];
+static field core::List<core::int> x1 = <core::int>[1, 2, 3];
+static field core::List<core::num> x2 = <core::num>[1, 2.0, 3];
static method test1() → dynamic {
self::x1.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:10:71: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::int*){(core::int*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
self::x1.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:11:71: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
- ^" in 4.0 as{TypeError} core::int*){(core::int*) →* void};
- self::x1.{core::List::add}(4){(core::int*) →* void};
- core::List<core::num*>* y = self::x1;
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ self::x1.{core::List::add}(4){(core::int) → void};
+ core::List<core::num> y = self::x1;
}
static method test2() → dynamic {
self::x2.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:18:71: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::num*){(core::num*) →* void};
- self::x2.{core::List::add}(4.0){(core::num*) →* void};
- core::List<core::int*>* y = self::x2 as{TypeError} core::List<core::int*>*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num){(core::num) → void};
+ self::x2.{core::List::add}(4.0){(core::num) → void};
+ core::List<core::int> y = invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> y = /*info:ASSIGNMENT_CAST*/ x2;
+ ^" in self::x2 as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.outline.expect
index 24cab9d..e84539e 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* x1;
-static field core::List<core::num*>* x2;
+static field core::List<core::int> x1;
+static field core::List<core::num> x2;
static method test1() → dynamic
;
static method test2() → dynamic
diff --git a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.transformed.expect
index ec2a985..90c67e5 100644
--- a/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/list_literals_top_level.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,26 +14,34 @@
// x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
// ^
//
+// pkg/front_end/testcases/inference/list_literals_top_level.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+// - 'List' is from 'dart:core'.
+// List<int> y = /*info:ASSIGNMENT_CAST*/ x2;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* x1 = core::_GrowableList::_literal3<core::int*>(1, 2, 3);
-static field core::List<core::num*>* x2 = core::_GrowableList::_literal3<core::num*>(1, 2.0, 3);
+static field core::List<core::int> x1 = core::_GrowableList::_literal3<core::int>(1, 2, 3);
+static field core::List<core::num> x2 = core::_GrowableList::_literal3<core::num>(1, 2.0, 3);
static method test1() → dynamic {
self::x1.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:10:71: Error: The argument type 'String' can't be assigned to the parameter type 'int'.
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::int*){(core::int*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
self::x1.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:11:71: Error: The argument type 'double' can't be assigned to the parameter type 'int'.
x1. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0);
- ^" in 4.0 as{TypeError} core::int*){(core::int*) →* void};
- self::x1.{core::List::add}(4){(core::int*) →* void};
- core::List<core::num*>* y = self::x1;
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int){(core::int) → void};
+ self::x1.{core::List::add}(4){(core::int) → void};
+ core::List<core::num> y = self::x1;
}
static method test2() → dynamic {
self::x2.{core::List::add}(invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:18:71: Error: The argument type 'String' can't be assigned to the parameter type 'num'.
x2. /*@target=List.add*/ add(/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi');
- ^" in "hi" as{TypeError} core::num*){(core::num*) →* void};
- self::x2.{core::List::add}(4.0){(core::num*) →* void};
- core::List<core::int*>* y = self::x2 as{TypeError} core::List<core::int*>*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num){(core::num) → void};
+ self::x2.{core::List::add}(4.0){(core::num) → void};
+ core::List<core::int> y = invalid-expression "pkg/front_end/testcases/inference/list_literals_top_level.dart:20:42: Error: A value of type 'List<num>' can't be assigned to a variable of type 'List<int>'.
+ - 'List' is from 'dart:core'.
+ List<int> y = /*info:ASSIGNMENT_CAST*/ x2;
+ ^" in self::x2 as{TypeError,ForNonNullableByDefault} core::List<core::int>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart
index 6b0b12c..6569c91 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,15 +10,13 @@
C(this.t);
}
-main() {
- var /*@ type=C<int*>* */ x = new /*@ typeArgs=int* */ C(42);
+test(dynamic y) {
+ var /*@type=C<int>*/ x = new /*@typeArgs=int*/ C(42);
- num y;
- C<int> c_int = new /*@ typeArgs=int* */ C(
- /*info:DOWN_CAST_IMPLICIT*/ y);
+ C<int> c_int = new /*@typeArgs=int*/ C(/*info:DOWN_CAST_IMPLICIT*/ y);
- C<num> c_num = new /*@ typeArgs=num* */ C(123);
+ C<num> c_num = new /*@typeArgs=num*/ C(123);
// Don't infer from explicit dynamic.
- var /*@ type=C<dynamic>* */ c_dynamic = new C<dynamic>(42);
+ var /*@type=C<dynamic>*/ c_dynamic = new C<dynamic>(42);
}
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline.expect b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline.expect
index c2692ff..3a62151 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
@@ -6,4 +5,4 @@
C(this.t);
}
-main() {}
+test(dynamic y) {}
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline_modelled.expect
index 43f627a..e5c9fc4 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
@@ -6,4 +5,4 @@
T t;
}
-main() {}
+test(dynamic y) {}
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.expect b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.expect
index 908eca7..ea95652 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.expect
@@ -1,27 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic {
- self::C<core::int*>* x = new self::C::•<core::int*>(42);
- core::num* y;
- self::C<core::int*>* c_int = new self::C::•<core::int*>(y as{TypeError} core::int*);
- self::C<core::num*>* c_num = new self::C::•<core::num*>(123);
- self::C<dynamic>* c_dynamic = new self::C::•<dynamic>(42);
+static method test(dynamic y) → dynamic {
+ self::C<core::int> x = new self::C::•<core::int>(42);
+ self::C<core::int> c_int = new self::C::•<core::int>(y as{TypeError,ForDynamic,ForNonNullableByDefault} core::int);
+ self::C<core::num> c_num = new self::C::•<core::num>(123);
+ self::C<dynamic> c_dynamic = new self::C::•<dynamic>(42);
}
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.modular.expect b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.modular.expect
index 908eca7..ea95652 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.modular.expect
@@ -1,27 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic {
- self::C<core::int*>* x = new self::C::•<core::int*>(42);
- core::num* y;
- self::C<core::int*>* c_int = new self::C::•<core::int*>(y as{TypeError} core::int*);
- self::C<core::num*>* c_num = new self::C::•<core::num*>(123);
- self::C<dynamic>* c_dynamic = new self::C::•<dynamic>(42);
+static method test(dynamic y) → dynamic {
+ self::C<core::int> x = new self::C::•<core::int>(42);
+ self::C<core::int> c_int = new self::C::•<core::int>(y as{TypeError,ForDynamic,ForNonNullableByDefault} core::int);
+ self::C<core::num> c_num = new self::C::•<core::num>(123);
+ self::C<dynamic> c_dynamic = new self::C::•<dynamic>(42);
}
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.outline.expect b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.outline.expect
index 7285233..c7f47ca 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic
+static method test(dynamic y) → dynamic
;
diff --git a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.transformed.expect
index 908eca7..ea95652 100644
--- a/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/local_constructor_from_arguments.dart.weak.transformed.expect
@@ -1,27 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::C::T* t;
- constructor •(self::C::T* t) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::C::T% t;
+ constructor •(self::C::T% t) → self::C<self::C::T%>
: self::C::t = t, super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic {
- self::C<core::int*>* x = new self::C::•<core::int*>(42);
- core::num* y;
- self::C<core::int*>* c_int = new self::C::•<core::int*>(y as{TypeError} core::int*);
- self::C<core::num*>* c_num = new self::C::•<core::num*>(123);
- self::C<dynamic>* c_dynamic = new self::C::•<dynamic>(42);
+static method test(dynamic y) → dynamic {
+ self::C<core::int> x = new self::C::•<core::int>(42);
+ self::C<core::int> c_int = new self::C::•<core::int>(y as{TypeError,ForDynamic,ForNonNullableByDefault} core::int);
+ self::C<core::num> c_num = new self::C::•<core::num>(123);
+ self::C<dynamic> c_dynamic = new self::C::•<dynamic>(42);
}
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart
index d33b089..72e481f 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart
@@ -1,13 +1,12 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-main() {
- Future<int> futureInt = null;
- var /*@ type=Future<int*>* */ x = futureInt;
+test(Future<int> futureInt) {
+ var /*@type=Future<int>*/ x = futureInt;
}
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline.expect b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline.expect
index 71431e1..7ed45ae 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
import 'dart:async';
-main() {}
+test(Future<int> futureInt) {}
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline_modelled.expect
index 71431e1..7ed45ae 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
import 'dart:async';
-main() {}
+test(Future<int> futureInt) {}
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.expect b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.expect
index f941bdc..157fb1e 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.expect
@@ -1,11 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method main() → dynamic {
- has-declared-initializer asy::Future<core::int*>* futureInt = null;
- asy::Future<core::int*>* x = futureInt;
+static method test(asy::Future<core::int> futureInt) → dynamic {
+ asy::Future<core::int> x = futureInt;
}
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.modular.expect b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.modular.expect
index f941bdc..157fb1e 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.modular.expect
@@ -1,11 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method main() → dynamic {
- has-declared-initializer asy::Future<core::int*>* futureInt = null;
- asy::Future<core::int*>* x = futureInt;
+static method test(asy::Future<core::int> futureInt) → dynamic {
+ asy::Future<core::int> x = futureInt;
}
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.outline.expect b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.outline.expect
index 55e2ed1..c4def97 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.outline.expect
@@ -1,7 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:async" as asy;
+import "dart:core" as core;
import "dart:async";
-static method main() → dynamic
+static method test(asy::Future<core::int> futureInt) → dynamic
;
diff --git a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.transformed.expect
index f941bdc..157fb1e 100644
--- a/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/local_reference_upwards_local.dart.weak.transformed.expect
@@ -1,11 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:async" as asy;
import "dart:core" as core;
import "dart:async";
-static method main() → dynamic {
- has-declared-initializer asy::Future<core::int*>* futureInt = null;
- asy::Future<core::int*>* x = futureInt;
+static method test(asy::Future<core::int> futureInt) → dynamic {
+ asy::Future<core::int> x = futureInt;
}
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield.dart b/pkg/front_end/testcases/inference/local_return_and_yield.dart
index b722c06..624a8d3 100644
--- a/pkg/front_end/testcases/inference/local_return_and_yield.dart
+++ b/pkg/front_end/testcases/inference/local_return_and_yield.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +13,7 @@
main() {
IntToInt a() {
- return /*@ returnType=int* */ (/*@ type=int* */ x) => x;
+ return /*@returnType=int**/ (/*@type=int**/ x) => x;
}
Future<IntToInt> b() async {
@@ -20,23 +22,23 @@
}
Iterable<IntToInt> c() sync* {
- yield /*@ returnType=int* */ (/*@ type=int* */ x) => x;
+ yield /*@returnType=int**/ (/*@type=int**/ x) => x;
}
Iterable<IntToInt> d() sync* {
- yield* /*@ typeArgs=(int*) ->* int* */ [
- /*@ returnType=int* */ (/*@ type=int* */ x) => x
+ yield* /*@typeArgs=(int*) ->* int**/ [
+ /*@returnType=int**/ (/*@type=int**/ x) => x
];
}
Stream<IntToInt> e() async* {
- yield /*@ returnType=int* */ (/*@ type=int* */ x) => x;
+ yield /*@returnType=int**/ (/*@type=int**/ x) => x;
}
Stream<IntToInt> f() async* {
- yield* new /*@ typeArgs=(int*) ->* int* */ Stream.fromIterable(
- /*@ typeArgs=(int*) ->* int* */ [
- /*@ returnType=int* */ (/*@ type=int* */ x) => x
+ yield* new /*@typeArgs=(int*) ->* int**/ Stream.fromIterable(
+ /*@typeArgs=(int*) ->* int**/ [
+ /*@returnType=int**/ (/*@type=int**/ x) => x
]);
}
}
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.expect b/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.expect
index 67f213e..ba0eab8 100644
--- a/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/local_return_and_yield.dart:19:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+// pkg/front_end/testcases/inference/local_return_and_yield.dart:21:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
// - 'Future' is from 'dart:async'.
// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
// ^
@@ -19,7 +19,7 @@
return (core::int* x) → core::int* => x;
}
function b() → asy::Future<(core::int*) →* core::int*>* async /* futureValueType= (core::int*) →* core::int* */ {
- return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield.dart:19:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+ return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield.dart:21:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
- 'Future' is from 'dart:async'.
return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
^" in ((dynamic x) → dynamic => x) as{TypeError} FutureOr<(core::int*) →* core::int*>*;
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.modular.expect b/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.modular.expect
index 67f213e..ba0eab8 100644
--- a/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.modular.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/local_return_and_yield.dart:19:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+// pkg/front_end/testcases/inference/local_return_and_yield.dart:21:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
// - 'Future' is from 'dart:async'.
// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
// ^
@@ -19,7 +19,7 @@
return (core::int* x) → core::int* => x;
}
function b() → asy::Future<(core::int*) →* core::int*>* async /* futureValueType= (core::int*) →* core::int* */ {
- return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield.dart:19:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+ return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield.dart:21:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
- 'Future' is from 'dart:async'.
return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
^" in ((dynamic x) → dynamic => x) as{TypeError} FutureOr<(core::int*) →* core::int*>*;
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.transformed.expect
index 58cba14..a2f115b 100644
--- a/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/local_return_and_yield.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/local_return_and_yield.dart:19:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+// pkg/front_end/testcases/inference/local_return_and_yield.dart:21:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
// - 'Future' is from 'dart:async'.
// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
// ^
@@ -19,7 +19,7 @@
return (core::int* x) → core::int* => x;
}
function b() → asy::Future<(core::int*) →* core::int*>* async /* futureValueType= (core::int*) →* core::int* */ {
- return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield.dart:19:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+ return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield.dart:21:38: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
- 'Future' is from 'dart:async'.
return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
^" in ((dynamic x) → dynamic => x) as{TypeError} FutureOr<(core::int*) →* core::int*>*;
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart b/pkg/front_end/testcases/inference/local_return_and_yield2.dart
new file mode 100644
index 0000000..0bc3ef0
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart
@@ -0,0 +1,42 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+typedef int IntToInt(int i);
+
+main() {
+ IntToInt a() {
+ return /*@returnType=int*/ (/*@type=int*/ x) => x;
+ }
+
+ Future<IntToInt> b() async {
+ // TODO(paulberry): this is broken due to bug 29689.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ }
+
+ Iterable<IntToInt> c() sync* {
+ yield /*@returnType=int*/ (/*@type=int*/ x) => x;
+ }
+
+ Iterable<IntToInt> d() sync* {
+ yield* /*@typeArgs=(int) -> int*/ [
+ /*@returnType=int*/ (/*@type=int*/ x) => x
+ ];
+ }
+
+ Stream<IntToInt> e() async* {
+ yield /*@returnType=int*/ (/*@type=int*/ x) => x;
+ }
+
+ Stream<IntToInt> f() async* {
+ yield* new /*@typeArgs=(int) -> int*/ Stream
+ .fromIterable(/*@typeArgs=(int) -> int*/ [
+ /*@returnType=int*/ (/*@type=int*/ x) => x
+ ]);
+ }
+}
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.textual_outline.expect
new file mode 100644
index 0000000..7a5100f
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:async';
+
+typedef int IntToInt(int i);
+main() {}
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..ad856ae
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+library test;
+
+import 'dart:async';
+
+main() {}
+typedef int IntToInt(int i);
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.expect b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.expect
new file mode 100644
index 0000000..300d2569
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.expect
@@ -0,0 +1,39 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/local_return_and_yield2.dart:19:38: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+// - 'Future' is from 'dart:async'.
+// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method main() → dynamic {
+ function a() → (core::int) → core::int {
+ return (core::int x) → core::int => x;
+ }
+ function b() → asy::Future<(core::int) → core::int> async /* futureValueType= (core::int) → core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield2.dart:19:38: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+ - 'Future' is from 'dart:async'.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ ^" in ((dynamic x) → dynamic => x) as{TypeError,ForNonNullableByDefault} (core::int) → core::int;
+ }
+ function c() → core::Iterable<(core::int) → core::int> sync* {
+ yield(core::int x) → core::int => x;
+ }
+ function d() → core::Iterable<(core::int) → core::int> sync* {
+ yield*<(core::int) → core::int>[(core::int x) → core::int => x];
+ }
+ function e() → asy::Stream<(core::int) → core::int> async* {
+ yield(core::int x) → core::int => x;
+ }
+ function f() → asy::Stream<(core::int) → core::int> async* {
+ yield* asy::Stream::fromIterable<(core::int) → core::int>(<(core::int) → core::int>[(core::int x) → core::int => x]);
+ }
+}
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.modular.expect
new file mode 100644
index 0000000..300d2569
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.modular.expect
@@ -0,0 +1,39 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/local_return_and_yield2.dart:19:38: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+// - 'Future' is from 'dart:async'.
+// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method main() → dynamic {
+ function a() → (core::int) → core::int {
+ return (core::int x) → core::int => x;
+ }
+ function b() → asy::Future<(core::int) → core::int> async /* futureValueType= (core::int) → core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield2.dart:19:38: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+ - 'Future' is from 'dart:async'.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ ^" in ((dynamic x) → dynamic => x) as{TypeError,ForNonNullableByDefault} (core::int) → core::int;
+ }
+ function c() → core::Iterable<(core::int) → core::int> sync* {
+ yield(core::int x) → core::int => x;
+ }
+ function d() → core::Iterable<(core::int) → core::int> sync* {
+ yield*<(core::int) → core::int>[(core::int x) → core::int => x];
+ }
+ function e() → asy::Stream<(core::int) → core::int> async* {
+ yield(core::int x) → core::int => x;
+ }
+ function f() → asy::Stream<(core::int) → core::int> async* {
+ yield* asy::Stream::fromIterable<(core::int) → core::int>(<(core::int) → core::int>[(core::int x) → core::int => x]);
+ }
+}
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.outline.expect
new file mode 100644
index 0000000..9f77031
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.outline.expect
@@ -0,0 +1,9 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.transformed.expect
new file mode 100644
index 0000000..a5079da
--- /dev/null
+++ b/pkg/front_end/testcases/inference/local_return_and_yield2.dart.weak.transformed.expect
@@ -0,0 +1,39 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/local_return_and_yield2.dart:19:38: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+// - 'Future' is from 'dart:async'.
+// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method main() → dynamic {
+ function a() → (core::int) → core::int {
+ return (core::int x) → core::int => x;
+ }
+ function b() → asy::Future<(core::int) → core::int> async /* futureValueType= (core::int) → core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/local_return_and_yield2.dart:19:38: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+ - 'Future' is from 'dart:async'.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ ^" in ((dynamic x) → dynamic => x) as{TypeError,ForNonNullableByDefault} (core::int) → core::int;
+ }
+ function c() → core::Iterable<(core::int) → core::int> sync* {
+ yield(core::int x) → core::int => x;
+ }
+ function d() → core::Iterable<(core::int) → core::int> sync* {
+ yield* core::_GrowableList::_literal1<(core::int) → core::int>((core::int x) → core::int => x);
+ }
+ function e() → asy::Stream<(core::int) → core::int> async* {
+ yield(core::int x) → core::int => x;
+ }
+ function f() → asy::Stream<(core::int) → core::int> async* {
+ yield* asy::Stream::fromIterable<(core::int) → core::int>(core::_GrowableList::_literal1<(core::int) → core::int>((core::int x) → core::int => x));
+ }
+}
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart b/pkg/front_end/testcases/inference/logical_or_promotion.dart
index aa690e9..f9c63c4 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,12 +10,12 @@
abstract class B {}
class C {
- A a;
+ A a = throw '';
void f(Object o) {
if (o is A || o is B) {
if (o is A) {
- /*@target=C.a*/ a = /*@ promotedType=A* */ o;
+ /*@target=C.a*/ a = /*@promotedType=A*/ o;
}
}
}
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline.expect b/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline.expect
index 8754ed8..4363567 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {}
@@ -6,7 +5,7 @@
abstract class B {}
class C {
- A a;
+ A a = throw '';
void f(Object o) {}
}
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline_modelled.expect
index 8754ed8..4363567 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {}
@@ -6,7 +5,7 @@
abstract class B {}
class C {
- A a;
+ A a = throw '';
void f(Object o) {}
}
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.expect b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.expect
index 8b606cf..d9afd3d5 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* a = null;
- synthetic constructor •() → self::C*
+ field self::A a = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f(core::Object* o) → void {
- if(o is self::A* || o is self::B*) {
- if(o is self::A*) {
- this.{self::C::a} = o{self::A*};
+ method f(core::Object o) → void {
+ if(o is{ForNonNullableByDefault} self::A || o is{ForNonNullableByDefault} self::B) {
+ if(o is{ForNonNullableByDefault} self::A) {
+ this.{self::C::a} = o{self::A};
}
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.modular.expect b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.modular.expect
index 8b606cf..d9afd3d5 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.modular.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* a = null;
- synthetic constructor •() → self::C*
+ field self::A a = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f(core::Object* o) → void {
- if(o is self::A* || o is self::B*) {
- if(o is self::A*) {
- this.{self::C::a} = o{self::A*};
+ method f(core::Object o) → void {
+ if(o is{ForNonNullableByDefault} self::A || o is{ForNonNullableByDefault} self::B) {
+ if(o is{ForNonNullableByDefault} self::A) {
+ this.{self::C::a} = o{self::A};
}
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.outline.expect b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.outline.expect
index d449765..05ab1f1 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.outline.expect
@@ -1,51 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* a;
- synthetic constructor •() → self::C*
+ field self::A a;
+ synthetic constructor •() → self::C
;
- method f(core::Object* o) → void
+ method f(core::Object o) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.transformed.expect
index 8b606cf..d9afd3d5 100644
--- a/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/logical_or_promotion.dart.weak.transformed.expect
@@ -1,58 +1,28 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* a = null;
- synthetic constructor •() → self::C*
+ field self::A a = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f(core::Object* o) → void {
- if(o is self::A* || o is self::B*) {
- if(o is self::A*) {
- this.{self::C::a} = o{self::A*};
+ method f(core::Object o) → void {
+ if(o is{ForNonNullableByDefault} self::A || o is{ForNonNullableByDefault} self::B) {
+ if(o is{ForNonNullableByDefault} self::A) {
+ this.{self::C::a} = o{self::A};
}
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals.dart b/pkg/front_end/testcases/inference/map_literals.dart
index 4ca5367..874d0e5 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart
+++ b/pkg/front_end/testcases/inference/map_literals.dart
@@ -1,35 +1,31 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test1() {
- var /*@ type=Map<int*, String*>* */ x = /*@ typeArgs=int*, String* */ {1: 'x', 2: 'y'};
+ var /*@type=Map<int, String>*/ x = /*@typeArgs=int, String*/ {1: 'x', 2: 'y'};
x /*@target=Map.[]=*/ [3] = 'z';
- x /*@target=Map.[]=*/ [
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- x /*@target=Map.[]=*/ [
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
Map<num, String> y = x;
}
-test2() {
- var /*@ type=Map<num*, Pattern*>* */ x = /*@ typeArgs=num*, Pattern* */ {
+test2(Pattern p) {
+ var /*@type=Map<num, Pattern>*/ x = /*@typeArgs=num, Pattern*/ {
1: 'x',
2: 'y',
3.0: new RegExp('.')
};
x /*@target=Map.[]=*/ [3] = 'z';
- x /*@target=Map.[]=*/ [
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
x /*@target=Map.[]=*/ [4.0] = 'u';
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- Pattern p = null;
x /*@target=Map.[]=*/ [2] = p;
- Map<int, String> y = /*info:ASSIGNMENT_CAST*/ x;
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.textual_outline.expect b/pkg/front_end/testcases/inference/map_literals.dart.textual_outline.expect
index eee2ee4..2406752 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/map_literals.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
test1() {}
-test2() {}
+test2(Pattern p) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/map_literals.dart.textual_outline_modelled.expect
index 6c93634..cc0a74b 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/map_literals.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
main() {}
test1() {}
-test2() {}
+test2(Pattern p) {}
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.weak.expect b/pkg/front_end/testcases/inference/map_literals.dart.weak.expect
index 4ce37be..7ec99b2 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/map_literals.dart.weak.expect
@@ -1,58 +1,67 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/map_literals.dart:12:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:11:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:14:46: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:12:65: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:15:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/map_literals.dart:13:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:27:46: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:24:65: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:29:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
+// pkg/front_end/testcases/inference/map_literals.dart:26:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
// - 'Pattern' is from 'dart:core'.
// x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
+// pkg/front_end/testcases/inference/map_literals.dart:28:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// - 'Pattern' is from 'dart:core'.
+// Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<core::int*, core::String*>* x = <core::int*, core::String*>{1: "x", 2: "y"};
- x.{core::Map::[]=}(3, "z"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:12:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::int*, "w"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:14:46: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
- ^" in 4.0 as{TypeError} core::int*, "u"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:15:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<core::int, core::String> x = <core::int, core::String>{1: "x", 2: "y"};
+ x.{core::Map::[]=}(3, "z"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:11:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, "w"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:12:65: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int, "u"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:13:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
- core::Map<core::num*, core::String*>* y = x;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+ core::Map<core::num, core::String> y = x;
}
-static method test2() → dynamic {
- core::Map<core::num*, core::Pattern*>* x = <core::num*, core::Pattern*>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
- x.{core::Map::[]=}(3, "z"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:27:46: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::num*, "w"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(4.0, "u"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:29:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
+static method test2(core::Pattern p) → dynamic {
+ core::Map<core::num, core::Pattern> x = <core::num, core::Pattern>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
+ x.{core::Map::[]=}(3, "z"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:24:65: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num, "w"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(4.0, "u"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:26:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
- 'Pattern' is from 'dart:core'.
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::Pattern*){(core::num*, core::Pattern*) →* void};
- has-declared-initializer core::Pattern* p = null;
- x.{core::Map::[]=}(2, p){(core::num*, core::Pattern*) →* void};
- core::Map<core::int*, core::String*>* y = x as{TypeError} core::Map<core::int*, core::String*>*;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::Pattern){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(2, p){(core::num, core::Pattern) → void};
+ core::Map<core::int, core::String> y = invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:28:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ - 'Pattern' is from 'dart:core'.
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.weak.modular.expect b/pkg/front_end/testcases/inference/map_literals.dart.weak.modular.expect
index 4ce37be..7ec99b2 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/map_literals.dart.weak.modular.expect
@@ -1,58 +1,67 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/map_literals.dart:12:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:11:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:14:46: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:12:65: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:15:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/map_literals.dart:13:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:27:46: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:24:65: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:29:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
+// pkg/front_end/testcases/inference/map_literals.dart:26:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
// - 'Pattern' is from 'dart:core'.
// x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
+// pkg/front_end/testcases/inference/map_literals.dart:28:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// - 'Pattern' is from 'dart:core'.
+// Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<core::int*, core::String*>* x = <core::int*, core::String*>{1: "x", 2: "y"};
- x.{core::Map::[]=}(3, "z"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:12:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::int*, "w"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:14:46: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
- ^" in 4.0 as{TypeError} core::int*, "u"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:15:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<core::int, core::String> x = <core::int, core::String>{1: "x", 2: "y"};
+ x.{core::Map::[]=}(3, "z"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:11:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, "w"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:12:65: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int, "u"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:13:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
- core::Map<core::num*, core::String*>* y = x;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+ core::Map<core::num, core::String> y = x;
}
-static method test2() → dynamic {
- core::Map<core::num*, core::Pattern*>* x = <core::num*, core::Pattern*>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
- x.{core::Map::[]=}(3, "z"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:27:46: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::num*, "w"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(4.0, "u"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:29:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
+static method test2(core::Pattern p) → dynamic {
+ core::Map<core::num, core::Pattern> x = <core::num, core::Pattern>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
+ x.{core::Map::[]=}(3, "z"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:24:65: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num, "w"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(4.0, "u"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:26:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
- 'Pattern' is from 'dart:core'.
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::Pattern*){(core::num*, core::Pattern*) →* void};
- has-declared-initializer core::Pattern* p = null;
- x.{core::Map::[]=}(2, p){(core::num*, core::Pattern*) →* void};
- core::Map<core::int*, core::String*>* y = x as{TypeError} core::Map<core::int*, core::String*>*;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::Pattern){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(2, p){(core::num, core::Pattern) → void};
+ core::Map<core::int, core::String> y = invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:28:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ - 'Pattern' is from 'dart:core'.
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.weak.outline.expect b/pkg/front_end/testcases/inference/map_literals.dart.weak.outline.expect
index 893540e..9295137 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/map_literals.dart.weak.outline.expect
@@ -1,9 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
static method test1() → dynamic
;
-static method test2() → dynamic
+static method test2(core::Pattern p) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/map_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/map_literals.dart.weak.transformed.expect
index 4ce37be..7ec99b2 100644
--- a/pkg/front_end/testcases/inference/map_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/map_literals.dart.weak.transformed.expect
@@ -1,58 +1,67 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/map_literals.dart:12:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:11:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:14:46: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:12:65: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:15:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+// pkg/front_end/testcases/inference/map_literals.dart:13:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
// x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:27:46: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
-// /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
-// ^
+// pkg/front_end/testcases/inference/map_literals.dart:24:65: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+// x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+// ^
//
-// pkg/front_end/testcases/inference/map_literals.dart:29:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
+// pkg/front_end/testcases/inference/map_literals.dart:26:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
// - 'Pattern' is from 'dart:core'.
// x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
+// pkg/front_end/testcases/inference/map_literals.dart:28:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// - 'Pattern' is from 'dart:core'.
+// Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<core::int*, core::String*>* x = <core::int*, core::String*>{1: "x", 2: "y"};
- x.{core::Map::[]=}(3, "z"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:12:46: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::int*, "w"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:14:46: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
- ^" in 4.0 as{TypeError} core::int*, "u"){(core::int*, core::String*) →* void};
- x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:15:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
+ core::Map<core::int, core::String> x = <core::int, core::String>{1: "x", 2: "y"};
+ x.{core::Map::[]=}(3, "z"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:11:65: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, "w"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:12:65: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int, "u"){(core::int, core::String) → void};
+ x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:13:60: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
- core::Map<core::num*, core::String*>* y = x;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+ core::Map<core::num, core::String> y = x;
}
-static method test2() → dynamic {
- core::Map<core::num*, core::Pattern*>* x = <core::num*, core::Pattern*>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
- x.{core::Map::[]=}(3, "z"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:27:46: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
- /*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::num*, "w"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(4.0, "u"){(core::num*, core::Pattern*) →* void};
- x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:29:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
+static method test2(core::Pattern p) → dynamic {
+ core::Map<core::num, core::Pattern> x = <core::num, core::Pattern>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
+ x.{core::Map::[]=}(3, "z"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:24:65: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
+ x /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num, "w"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(4.0, "u"){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:26:60: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
- 'Pattern' is from 'dart:core'.
x /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::Pattern*){(core::num*, core::Pattern*) →* void};
- has-declared-initializer core::Pattern* p = null;
- x.{core::Map::[]=}(2, p){(core::num*, core::Pattern*) →* void};
- core::Map<core::int*, core::String*>* y = x as{TypeError} core::Map<core::int*, core::String*>*;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::Pattern){(core::num, core::Pattern) → void};
+ x.{core::Map::[]=}(2, p){(core::num, core::Pattern) → void};
+ core::Map<core::int, core::String> y = invalid-expression "pkg/front_end/testcases/inference/map_literals.dart:28:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ - 'Pattern' is from 'dart:core'.
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x;
+ ^" in x as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart
index 46e5430..fa526f8 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
test1() {
- var /*@ type=Map<Null, Null>* */ x = /*@ typeArgs=Null, Null */ {null: null};
+ var /*@type=Map<Null, Null>*/ x = /*@ typeArgs=Null, Null */ {null: null};
x /*@target=Map.[]=*/ [
/*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline.expect
index f75f219..a73b3f8 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
test1() {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline_modelled.expect
index b1f0123..128ffb9 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.expect
index b636b6c..5635d9c 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.expect
@@ -1,9 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:38: Error: A value of type 'int' can't be assigned to a variable of type 'Null'.
+// /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+// ^
+//
+// pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:74: Error: A value of type 'String' can't be assigned to a variable of type 'Null'.
+// /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<Null, Null>* x = <Null, Null>{null: null};
- x.{core::Map::[]=}(3 as{TypeError} Null, "z" as{TypeError} Null){(Null, Null) →* void};
+ core::Map<Null, Null> x = <Null, Null>{null: null};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:38: Error: A value of type 'int' can't be assigned to a variable of type 'Null'.
+ /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+ ^" in 3 as{TypeError,ForNonNullableByDefault} Null, invalid-expression "pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:74: Error: A value of type 'String' can't be assigned to a variable of type 'Null'.
+ /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+ ^" in "z" as{TypeError,ForNonNullableByDefault} Null){(Null, Null) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.modular.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.modular.expect
index b636b6c..5635d9c 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.modular.expect
@@ -1,9 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:38: Error: A value of type 'int' can't be assigned to a variable of type 'Null'.
+// /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+// ^
+//
+// pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:74: Error: A value of type 'String' can't be assigned to a variable of type 'Null'.
+// /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<Null, Null>* x = <Null, Null>{null: null};
- x.{core::Map::[]=}(3 as{TypeError} Null, "z" as{TypeError} Null){(Null, Null) →* void};
+ core::Map<Null, Null> x = <Null, Null>{null: null};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:38: Error: A value of type 'int' can't be assigned to a variable of type 'Null'.
+ /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+ ^" in 3 as{TypeError,ForNonNullableByDefault} Null, invalid-expression "pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:74: Error: A value of type 'String' can't be assigned to a variable of type 'Null'.
+ /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+ ^" in "z" as{TypeError,ForNonNullableByDefault} Null){(Null, Null) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.outline.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.outline.expect
index 3619892..c7a3436 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test1() → dynamic
diff --git a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.transformed.expect
index b636b6c..5635d9c 100644
--- a/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/map_literals_can_infer_null.dart.weak.transformed.expect
@@ -1,9 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:38: Error: A value of type 'int' can't be assigned to a variable of type 'Null'.
+// /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+// ^
+//
+// pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:74: Error: A value of type 'String' can't be assigned to a variable of type 'Null'.
+// /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+// ^
+//
import self as self;
import "dart:core" as core;
static method test1() → dynamic {
- core::Map<Null, Null>* x = <Null, Null>{null: null};
- x.{core::Map::[]=}(3 as{TypeError} Null, "z" as{TypeError} Null){(Null, Null) →* void};
+ core::Map<Null, Null> x = <Null, Null>{null: null};
+ x.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:38: Error: A value of type 'int' can't be assigned to a variable of type 'Null'.
+ /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+ ^" in 3 as{TypeError,ForNonNullableByDefault} Null, invalid-expression "pkg/front_end/testcases/inference/map_literals_can_infer_null.dart:11:74: Error: A value of type 'String' can't be assigned to a variable of type 'Null'.
+ /*error:INVALID_CAST_LITERAL*/ 3] = /*error:INVALID_CAST_LITERAL*/ 'z';
+ ^" in "z" as{TypeError,ForNonNullableByDefault} Null){(Null, Null) → void};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart b/pkg/front_end/testcases/inference/map_literals_top_level.dart
index be3ea61..2a4fea6 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-var x1 = /*@ typeArgs=int*, String* */ {1: 'x', 2: 'y'};
+var x1 = /*@typeArgs=int, String*/ {1: 'x', 2: 'y'};
test1() {
x1 /*@target=Map.[]=*/ [3] = 'z';
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
@@ -14,15 +14,14 @@
Map<num, String> y = x1;
}
-var x2 = /*@ typeArgs=num*, Pattern* */ {1: 'x', 2: 'y', 3.0: new RegExp('.')};
-test2() {
+var x2 = /*@typeArgs=num, Pattern*/ {1: 'x', 2: 'y', 3.0: new RegExp('.')};
+test2(Pattern p) {
x2 /*@target=Map.[]=*/ [3] = 'z';
x2 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
x2 /*@target=Map.[]=*/ [4.0] = 'u';
x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- Pattern p = null;
x2 /*@target=Map.[]=*/ [2] = p;
- Map<int, String> y = /*info:ASSIGNMENT_CAST*/ x2;
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline.expect
index f049413..ee5fe06 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
var x1 = {1: 'x', 2: 'y'};
test1() {}
var x2 = {1: 'x', 2: 'y', 3.0: new RegExp('.')};
-test2() {}
+test2(Pattern p) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline_modelled.expect
index 7b6becf..b36b4a5 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
main() {}
test1() {}
-test2() {}
+test2(Pattern p) {}
var x1 = {1: 'x', 2: 'y'};
var x2 = {1: 'x', 2: 'y', 3.0: new RegExp('.')};
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.expect
index e1e738a..36426b3 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -23,36 +23,45 @@
// x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
+// pkg/front_end/testcases/inference/map_literals_top_level.dart:24:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// - 'Pattern' is from 'dart:core'.
+// Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* x1 = <core::int*, core::String*>{1: "x", 2: "y"};
-static field core::Map<core::num*, core::Pattern*>* x2 = <core::num*, core::Pattern*>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
+static field core::Map<core::int, core::String> x1 = <core::int, core::String>{1: "x", 2: "y"};
+static field core::Map<core::num, core::Pattern> x2 = <core::num, core::Pattern>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
static method test1() → dynamic {
- self::x1.{core::Map::[]=}(3, "z"){(core::int*, core::String*) →* void};
+ self::x1.{core::Map::[]=}(3, "z"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:11:66: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::int*, "w"){(core::int*, core::String*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, "w"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:12:66: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
- ^" in 4.0 as{TypeError} core::int*, "u"){(core::int*, core::String*) →* void};
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int, "u"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:13:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
x1 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
- core::Map<core::num*, core::String*>* y = self::x1;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+ core::Map<core::num, core::String> y = self::x1;
}
-static method test2() → dynamic {
- self::x2.{core::Map::[]=}(3, "z"){(core::num*, core::Pattern*) →* void};
+static method test2(core::Pattern p) → dynamic {
+ self::x2.{core::Map::[]=}(3, "z"){(core::num, core::Pattern) → void};
self::x2.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:20:66: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
x2 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::num*, "w"){(core::num*, core::Pattern*) →* void};
- self::x2.{core::Map::[]=}(4.0, "u"){(core::num*, core::Pattern*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num, "w"){(core::num, core::Pattern) → void};
+ self::x2.{core::Map::[]=}(4.0, "u"){(core::num, core::Pattern) → void};
self::x2.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:22:61: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
- 'Pattern' is from 'dart:core'.
x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::Pattern*){(core::num*, core::Pattern*) →* void};
- has-declared-initializer core::Pattern* p = null;
- self::x2.{core::Map::[]=}(2, p){(core::num*, core::Pattern*) →* void};
- core::Map<core::int*, core::String*>* y = self::x2 as{TypeError} core::Map<core::int*, core::String*>*;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::Pattern){(core::num, core::Pattern) → void};
+ self::x2.{core::Map::[]=}(2, p){(core::num, core::Pattern) → void};
+ core::Map<core::int, core::String> y = invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:24:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ - 'Pattern' is from 'dart:core'.
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
+ ^" in self::x2 as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.modular.expect
index e1e738a..36426b3 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -23,36 +23,45 @@
// x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
+// pkg/front_end/testcases/inference/map_literals_top_level.dart:24:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// - 'Pattern' is from 'dart:core'.
+// Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* x1 = <core::int*, core::String*>{1: "x", 2: "y"};
-static field core::Map<core::num*, core::Pattern*>* x2 = <core::num*, core::Pattern*>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
+static field core::Map<core::int, core::String> x1 = <core::int, core::String>{1: "x", 2: "y"};
+static field core::Map<core::num, core::Pattern> x2 = <core::num, core::Pattern>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
static method test1() → dynamic {
- self::x1.{core::Map::[]=}(3, "z"){(core::int*, core::String*) →* void};
+ self::x1.{core::Map::[]=}(3, "z"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:11:66: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::int*, "w"){(core::int*, core::String*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, "w"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:12:66: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
- ^" in 4.0 as{TypeError} core::int*, "u"){(core::int*, core::String*) →* void};
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int, "u"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:13:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
x1 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
- core::Map<core::num*, core::String*>* y = self::x1;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+ core::Map<core::num, core::String> y = self::x1;
}
-static method test2() → dynamic {
- self::x2.{core::Map::[]=}(3, "z"){(core::num*, core::Pattern*) →* void};
+static method test2(core::Pattern p) → dynamic {
+ self::x2.{core::Map::[]=}(3, "z"){(core::num, core::Pattern) → void};
self::x2.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:20:66: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
x2 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::num*, "w"){(core::num*, core::Pattern*) →* void};
- self::x2.{core::Map::[]=}(4.0, "u"){(core::num*, core::Pattern*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num, "w"){(core::num, core::Pattern) → void};
+ self::x2.{core::Map::[]=}(4.0, "u"){(core::num, core::Pattern) → void};
self::x2.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:22:61: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
- 'Pattern' is from 'dart:core'.
x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::Pattern*){(core::num*, core::Pattern*) →* void};
- has-declared-initializer core::Pattern* p = null;
- self::x2.{core::Map::[]=}(2, p){(core::num*, core::Pattern*) →* void};
- core::Map<core::int*, core::String*>* y = self::x2 as{TypeError} core::Map<core::int*, core::String*>*;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::Pattern){(core::num, core::Pattern) → void};
+ self::x2.{core::Map::[]=}(2, p){(core::num, core::Pattern) → void};
+ core::Map<core::int, core::String> y = invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:24:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ - 'Pattern' is from 'dart:core'.
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
+ ^" in self::x2 as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.outline.expect
index f63db32..98007b0 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.outline.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* x1;
-static field core::Map<core::num*, core::Pattern*>* x2;
+static field core::Map<core::int, core::String> x1;
+static field core::Map<core::num, core::Pattern> x2;
static method test1() → dynamic
;
-static method test2() → dynamic
+static method test2(core::Pattern p) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.transformed.expect
index e1e738a..36426b3 100644
--- a/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/map_literals_top_level.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -23,36 +23,45 @@
// x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
// ^
//
+// pkg/front_end/testcases/inference/map_literals_top_level.dart:24:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+// - 'Map' is from 'dart:core'.
+// - 'Pattern' is from 'dart:core'.
+// Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field core::Map<core::int*, core::String*>* x1 = <core::int*, core::String*>{1: "x", 2: "y"};
-static field core::Map<core::num*, core::Pattern*>* x2 = <core::num*, core::Pattern*>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
+static field core::Map<core::int, core::String> x1 = <core::int, core::String>{1: "x", 2: "y"};
+static field core::Map<core::num, core::Pattern> x2 = <core::num, core::Pattern>{1: "x", 2: "y", 3.0: core::RegExp::•(".")};
static method test1() → dynamic {
- self::x1.{core::Map::[]=}(3, "z"){(core::int*, core::String*) →* void};
+ self::x1.{core::Map::[]=}(3, "z"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:11:66: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::int*, "w"){(core::int*, core::String*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int, "w"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:12:66: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
x1 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 4.0] = 'u';
- ^" in 4.0 as{TypeError} core::int*, "u"){(core::int*, core::String*) →* void};
+ ^" in 4.0 as{TypeError,ForNonNullableByDefault} core::int, "u"){(core::int, core::String) → void};
self::x1.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:13:61: Error: A value of type 'int' can't be assigned to a variable of type 'String'.
x1 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::String*){(core::int*, core::String*) →* void};
- core::Map<core::num*, core::String*>* y = self::x1;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::String){(core::int, core::String) → void};
+ core::Map<core::num, core::String> y = self::x1;
}
-static method test2() → dynamic {
- self::x2.{core::Map::[]=}(3, "z"){(core::num*, core::Pattern*) →* void};
+static method test2(core::Pattern p) → dynamic {
+ self::x2.{core::Map::[]=}(3, "z"){(core::num, core::Pattern) → void};
self::x2.{core::Map::[]=}(invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:20:66: Error: A value of type 'String' can't be assigned to a variable of type 'num'.
x2 /*@target=Map.[]=*/ [/*error:ARGUMENT_TYPE_NOT_ASSIGNABLE*/ 'hi'] = 'w';
- ^" in "hi" as{TypeError} core::num*, "w"){(core::num*, core::Pattern*) →* void};
- self::x2.{core::Map::[]=}(4.0, "u"){(core::num*, core::Pattern*) →* void};
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::num, "w"){(core::num, core::Pattern) → void};
+ self::x2.{core::Map::[]=}(4.0, "u"){(core::num, core::Pattern) → void};
self::x2.{core::Map::[]=}(3, invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:22:61: Error: A value of type 'int' can't be assigned to a variable of type 'Pattern'.
- 'Pattern' is from 'dart:core'.
x2 /*@target=Map.[]=*/ [3] = /*error:INVALID_ASSIGNMENT*/ 42;
- ^" in 42 as{TypeError} core::Pattern*){(core::num*, core::Pattern*) →* void};
- has-declared-initializer core::Pattern* p = null;
- self::x2.{core::Map::[]=}(2, p){(core::num*, core::Pattern*) →* void};
- core::Map<core::int*, core::String*>* y = self::x2 as{TypeError} core::Map<core::int*, core::String*>*;
+ ^" in 42 as{TypeError,ForNonNullableByDefault} core::Pattern){(core::num, core::Pattern) → void};
+ self::x2.{core::Map::[]=}(2, p){(core::num, core::Pattern) → void};
+ core::Map<core::int, core::String> y = invalid-expression "pkg/front_end/testcases/inference/map_literals_top_level.dart:24:53: Error: A value of type 'Map<num, Pattern>' can't be assigned to a variable of type 'Map<int, String>'.
+ - 'Map' is from 'dart:core'.
+ - 'Pattern' is from 'dart:core'.
+ Map<int, String> y = /*error:INVALID_ASSIGNMENT*/ x2;
+ ^" in self::x2 as{TypeError,ForNonNullableByDefault} core::Map<core::int, core::String>;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart
index e5d267b..dea009e 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- D<T> f<T>() => null;
+ D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline.expect
index f1f6c1f..a2d8b31 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- D<T> f<T>() => null;
+ D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline_modelled.expect
index c5f8528..9c9878f 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- D<T> f<T>() => null;
+ D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.expect
index 05bd044..0a34b46 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f = new self::C::•().{self::C::f}<core::int*>(){() →* self::D<core::int*>*};
+static field self::D<core::int> f = new self::C::•().{self::C::f}<core::int>(){() → self::D<core::int>};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.modular.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.modular.expect
index 05bd044..0a34b46 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f = new self::C::•().{self::C::f}<core::int*>(){() →* self::D<core::int*>*};
+static field self::D<core::int> f = new self::C::•().{self::C::f}<core::int>(){() → self::D<core::int>};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.outline.expect
index 7d2ddd0..b4d7b77 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f;
+static field self::D<core::int> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.transformed.expect
index 05bd044..0a34b46 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f = new self::C::•().{self::C::f}<core::int*>(){() →* self::D<core::int*>*};
+static field self::D<core::int> f = new self::C::•().{self::C::f}<core::int>(){() → self::D<core::int>};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart
index f83e2f3..42908bf 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- D<T> f<T>() => null;
+ D<T> f<T>() => throw '';
}
class D<T> {}
-C c;
+C c = throw '';
var f = c. /*@target=C.f*/ f<int>();
main() {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline.expect
index 4ce890c..d0553e8 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class C {
- D<T> f<T>() => null;
+ D<T> f<T>() => throw '';
}
class D<T> {}
-C c;
+C c = throw '';
var f = c.f<int>();
main() {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline_modelled.expect
index dac60c5..a19a6ec 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
-C c;
+C c = throw '';
class C {
- D<T> f<T>() => null;
+ D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.expect
index 28c5383..7207c5c 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field self::D<core::int*>* f = self::c.{self::C::f}<core::int*>(){() →* self::D<core::int*>*};
+static field self::C c = throw "";
+static field self::D<core::int> f = self::c.{self::C::f}<core::int>(){() → self::D<core::int>};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.modular.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.modular.expect
index 28c5383..7207c5c 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field self::D<core::int*>* f = self::c.{self::C::f}<core::int*>(){() →* self::D<core::int*>*};
+static field self::C c = throw "";
+static field self::D<core::int> f = self::c.{self::C::f}<core::int>(){() → self::D<core::int>};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.outline.expect
index 6125640..98d7621 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field self::D<core::int*>* f;
+static field self::C c;
+static field self::D<core::int> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.transformed.expect
index 28c5383..7207c5c 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_instance_method_identifier_sequence.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field self::D<core::int*>* f = self::c.{self::C::f}<core::int*>(){() →* self::D<core::int*>*};
+static field self::C c = throw "";
+static field self::D<core::int> f = self::c.{self::C::f}<core::int>(){() → self::D<core::int>};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart
index ac2d340..74edbdd 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- static D<T> f<T>() => null;
+ static D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline.expect
index 528d358..92e283b 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- static D<T> f<T>() => null;
+ static D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline_modelled.expect
index d6aaba5..e38feb9 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- static D<T> f<T>() => null;
+ static D<T> f<T>() => throw '';
}
class D<T> {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.expect
index b87237a..61542ae 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f = self::C::f<core::int*>();
+static field self::D<core::int> f = self::C::f<core::int>();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.modular.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.modular.expect
index b87237a..61542ae 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f = self::C::f<core::int*>();
+static field self::D<core::int> f = self::C::f<core::int>();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.outline.expect
index 78ddd05..ff73f7a 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- static method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
+ static method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f;
+static field self::D<core::int> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.transformed.expect
index b87237a..61542ae 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_static_method.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static method f<T extends core::Object* = dynamic>() → self::D<self::C::f::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method f<T extends core::Object? = dynamic>() → self::D<self::C::f::T%>
+ return throw "";
}
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* f = self::C::f<core::int*>();
+static field self::D<core::int> f = self::C::f<core::int>();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart
index 409f5c3..f077351 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-D<T> f<T>() => null;
+D<T> f<T>() => throw '';
class D<T> {}
var g = f<int>();
-main() {
+test() {
g;
}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline.expect
index 73214fd..371d917 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
-D<T> f<T>() => null;
+D<T> f<T>() => throw '';
class D<T> {}
var g = f<int>();
-main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline_modelled.expect
index be4c86e..a5d78b7 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
-D<T> f<T>() => null;
+D<T> f<T>() => throw '';
class D<T> {}
-main() {}
+test() {}
var g = f<int>();
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.expect
index a32a635..ec8d020 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* g = self::f<core::int*>();
-static method f<T extends core::Object* = dynamic>() → self::D<self::f::T*>*
- return null;
-static method main() → dynamic {
+static field self::D<core::int> g = self::f<core::int>();
+static method f<T extends core::Object? = dynamic>() → self::D<self::f::T%>
+ return throw "";
+static method test() → dynamic {
self::g;
}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.modular.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.modular.expect
index a32a635..ec8d020 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* g = self::f<core::int*>();
-static method f<T extends core::Object* = dynamic>() → self::D<self::f::T*>*
- return null;
-static method main() → dynamic {
+static field self::D<core::int> g = self::f<core::int>();
+static method f<T extends core::Object? = dynamic>() → self::D<self::f::T%>
+ return throw "";
+static method test() → dynamic {
self::g;
}
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.outline.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.outline.expect
index a1fc0bd..039db75 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* g;
-static method f<T extends core::Object* = dynamic>() → self::D<self::f::T*>*
+static field self::D<core::int> g;
+static method f<T extends core::Object? = dynamic>() → self::D<self::f::T%>
;
-static method main() → dynamic
+static method test() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.transformed.expect
index a32a635..ec8d020 100644
--- a/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/method_call_with_type_arguments_top_level_function.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<core::int*>* g = self::f<core::int*>();
-static method f<T extends core::Object* = dynamic>() → self::D<self::f::T*>*
- return null;
-static method main() → dynamic {
+static field self::D<core::int> g = self::f<core::int>();
+static method f<T extends core::Object? = dynamic>() → self::D<self::f::T%>
+ return throw "";
+static method test() → dynamic {
self::g;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart
index 6858497..2598699 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
mixin M0<X, Y extends String> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline.expect
index 7930d31..0451f7a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
mixin M0<X, Y extends String> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline_modelled.expect
index 9474532..53f09d4 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M1 with M0 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect
index 0d4a458..5e13db8 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::String> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::String*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::String> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.modular.expect
index 0d4a458..5e13db8 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.modular.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::String> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::String*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::String> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect
index e554562..0f54052 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.outline.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::String> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::String*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::String> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect
index aa3fb5c..5aa2ce7 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_1.dart.weak.transformed.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::String*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::String> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int*, core::String*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int, core::String> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart
index 6f236ea..bfade07 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
mixin M0<X, Y extends X> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline.expect
index 3cccb82..3466092 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
mixin M0<X, Y extends X> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline_modelled.expect
index 1f00d34..52236c2 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M1 with M0 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.expect
index 53f7336..b30213b 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends self::M0::X* = dynamic> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends self::M0::X% = dynamic> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.modular.expect
index 53f7336..b30213b 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.modular.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends self::M0::X* = dynamic> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends self::M0::X% = dynamic> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.outline.expect
index 858797c..25d4fcf 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.outline.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends self::M0::X* = dynamic> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends self::M0::X% = dynamic> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.transformed.expect
index 49e100e..106ab68 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_2.dart.weak.transformed.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends self::M0::X* = dynamic> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends self::M0::X% = dynamic> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int*, core::int*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int, core::int> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart
index b09deb8..d96bb30 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
mixin M0<X, Y extends Comparable<Y>> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline.expect
index 86c6e94..b5f2f00 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
mixin M0<X, Y extends Comparable<Y>> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline_modelled.expect
index 6462f6d..1b55e84 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M1 with M0 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.expect
index 819871c..1d3ae30 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,45 +14,25 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Comparable<self::M0::Y*>* = core::Comparable<dynamic>*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Comparable<self::M0::Y> = core::Comparable<dynamic>> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::Comparable<dynamic>*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::Comparable<dynamic>> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.modular.expect
index 819871c..1d3ae30 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,45 +14,25 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Comparable<self::M0::Y*>* = core::Comparable<dynamic>*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Comparable<self::M0::Y> = core::Comparable<dynamic>> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::Comparable<dynamic>*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::Comparable<dynamic>> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.outline.expect
index 9d065b1..61a404a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,43 +14,23 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Comparable<self::M0::Y*>* = core::Comparable<dynamic>*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Comparable<self::M0::Y> = core::Comparable<dynamic>> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, core::Comparable<dynamic>*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, core::Comparable<dynamic>> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.transformed.expect
index d3a2317..f4f276d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_3.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,45 +14,25 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Comparable<self::M0::Y*>* = core::Comparable<dynamic>*> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Comparable<self::M0::Y> = core::Comparable<dynamic>> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int*, core::Comparable<dynamic>*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int, core::Comparable<dynamic>> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart
index 09bcac5..0137aa08a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2020, 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.
-// @dart=2.9
+
class I<X> {}
mixin M0<X, Y extends void Function({String name})> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline.expect
index d90ab5a..2ccbf71 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
mixin M0<X, Y extends void Function({String name})> on I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline_modelled.expect
index b7f442c..85675ec 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M1 with M0 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect
index 21810ba..763d10d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends ({name: core::String}) → void> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, ({name: core::String*}) →* void> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, ({name: core::String}) → void> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.modular.expect
index 21810ba..763d10d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.modular.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends ({name: core::String}) → void> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, ({name: core::String*}) →* void> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, ({name: core::String}) → void> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect
index dd9cb86..6f9bc95 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.outline.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends ({name: core::String}) → void> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 = self::M1 with self::M0<core::int*, ({name: core::String*}) →* void> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 = self::M1 with self::M0<core::int, ({name: core::String}) → void> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect
index 35928d5..a4a0e43 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_instantiate_to_bounds_4.dart.weak.transformed.expect
@@ -1,46 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends ({name: core::String*}) →* void> extends self::I<self::M0::X*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends ({name: core::String}) → void> extends self::I<self::M0::X%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int*, ({name: core::String*}) →* void> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M1&M0*
+abstract class _A&M1&M0 extends self::M1 implements self::M0<core::int, ({name: core::String}) → void> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M1&M0
: super self::M1::•()
;
}
class A extends self::_A&M1&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M1&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart
index 7d46deb..e5f5448 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
class J<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline.expect
index 5a2f3a0..e636692 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
class J<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline_modelled.expect
index f60beeb..75f46ee 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M2 with M0 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.expect
index 42084e3d..9cf56f6 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.expect
@@ -1,81 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::X*>*
+class J<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _M0&I&J<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object implements self::I<self::_M0&I&J::X*>, self::J<self::_M0&I&J::Y*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X*, self::_M0&I&J::Y*>*
+abstract class _M0&I&J<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object implements self::I<self::_M0&I&J::X%>, self::J<self::_M0&I&J::Y%> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X%, self::_M0&I&J::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends self::_M0&I&J<self::M0::X*, self::M0::Y*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends self::_M0&I&J<self::M0::X%, self::M0::Y%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M2 extends self::M1 implements self::J<core::double*> {
- synthetic constructor •() → self::M2*
+class M2 extends self::M1 implements self::J<core::double> {
+ synthetic constructor •() → self::M2
: super self::M1::•()
;
}
-abstract class _A&M2&M0 = self::M2 with self::M0<core::int*, core::double*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+abstract class _A&M2&M0 = self::M2 with self::M0<core::int, core::double> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M2&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.modular.expect
index 42084e3d..9cf56f6 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.modular.expect
@@ -1,81 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::X*>*
+class J<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _M0&I&J<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object implements self::I<self::_M0&I&J::X*>, self::J<self::_M0&I&J::Y*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X*, self::_M0&I&J::Y*>*
+abstract class _M0&I&J<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object implements self::I<self::_M0&I&J::X%>, self::J<self::_M0&I&J::Y%> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X%, self::_M0&I&J::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends self::_M0&I&J<self::M0::X*, self::M0::Y*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends self::_M0&I&J<self::M0::X%, self::M0::Y%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M2 extends self::M1 implements self::J<core::double*> {
- synthetic constructor •() → self::M2*
+class M2 extends self::M1 implements self::J<core::double> {
+ synthetic constructor •() → self::M2
: super self::M1::•()
;
}
-abstract class _A&M2&M0 = self::M2 with self::M0<core::int*, core::double*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+abstract class _A&M2&M0 = self::M2 with self::M0<core::int, core::double> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M2&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.outline.expect
index 8b7ce31..58b3e8b 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.outline.expect
@@ -1,76 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class J<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::X*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-abstract class _M0&I&J<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object implements self::I<self::_M0&I&J::X*>, self::J<self::_M0&I&J::Y*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X*, self::_M0&I&J::Y*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends self::_M0&I&J<self::M0::X*, self::M0::Y*> /*isMixinDeclaration*/ {
-}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class M2 extends self::M1 implements self::J<core::double*> {
- synthetic constructor •() → self::M2*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
}
-abstract class _A&M2&M0 = self::M2 with self::M0<core::int*, core::double*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+class J<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::X%>
+ ;
+}
+abstract class _M0&I&J<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object implements self::I<self::_M0&I&J::X%>, self::J<self::_M0&I&J::Y%> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X%, self::_M0&I&J::Y%>
+ ;
+}
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends self::_M0&I&J<self::M0::X%, self::M0::Y%> /*isMixinDeclaration*/ {
+}
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
+ ;
+}
+class M2 extends self::M1 implements self::J<core::double> {
+ synthetic constructor •() → self::M2
+ ;
+}
+abstract class _A&M2&M0 = self::M2 with self::M0<core::int, core::double> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.transformed.expect
index 40101bf..17f9f38 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_multiple_constraints.dart.weak.transformed.expect
@@ -1,81 +1,41 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::X*>*
+class J<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _M0&I&J<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object implements self::I<self::_M0&I&J::X*>, self::J<self::_M0&I&J::Y*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X*, self::_M0&I&J::Y*>*
+abstract class _M0&I&J<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object implements self::I<self::_M0&I&J::X%>, self::J<self::_M0&I&J::Y%> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_M0&I&J<self::_M0&I&J::X%, self::_M0&I&J::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M0<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends self::_M0&I&J<self::M0::X*, self::M0::Y*> /*isMixinDeclaration*/ {
+abstract class M0<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends self::_M0&I&J<self::M0::X%, self::M0::Y%> /*isMixinDeclaration*/ {
}
-class M1 extends core::Object implements self::I<core::int*> {
- synthetic constructor •() → self::M1*
+class M1 extends core::Object implements self::I<core::int> {
+ synthetic constructor •() → self::M1
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M2 extends self::M1 implements self::J<core::double*> {
- synthetic constructor •() → self::M2*
+class M2 extends self::M1 implements self::J<core::double> {
+ synthetic constructor •() → self::M2
: super self::M1::•()
;
}
-abstract class _A&M2&M0 extends self::M2 implements self::M0<core::int*, core::double*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+abstract class _A&M2&M0 extends self::M2 implements self::M0<core::int, core::double> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M2&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart
index 1cecc14..04db533 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
class M0<T> extends I<List<T>> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect
index dab4e5f..dd6e38e 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
class M0<T> extends I<List<T>> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect
index 4aedd26d..5ca8e99 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M2<int> with M0 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect
index f6f01f3..a9334ea 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,43 +9,33 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-class M1<T extends core::Object* = dynamic> extends self::I<core::List<self::M1::T*>*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends self::I<core::List<self::M1::T%>> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super self::I::•()
;
}
-class M2<T extends core::Object* = dynamic> extends self::M1<core::Map<self::M2::T*, self::M2::T*>*> {
- synthetic constructor •() → self::M2<self::M2::T*>*
+class M2<T extends core::Object? = dynamic> extends self::M1<core::Map<self::M2::T%, self::M2::T%>> {
+ synthetic constructor •() → self::M2<self::M2::T%>
: super self::M1::•()
;
}
-abstract class _A&M2&M0 = self::M2<core::int*> with self::M0<core::Map<core::int*, core::int*>*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+abstract class _A&M2&M0 = self::M2<core::int> with self::M0<core::Map<core::int, core::int>> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M2&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect
index f6f01f3..a9334ea 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,43 +9,33 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-class M1<T extends core::Object* = dynamic> extends self::I<core::List<self::M1::T*>*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends self::I<core::List<self::M1::T%>> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super self::I::•()
;
}
-class M2<T extends core::Object* = dynamic> extends self::M1<core::Map<self::M2::T*, self::M2::T*>*> {
- synthetic constructor •() → self::M2<self::M2::T*>*
+class M2<T extends core::Object? = dynamic> extends self::M1<core::Map<self::M2::T%, self::M2::T%>> {
+ synthetic constructor •() → self::M2<self::M2::T%>
: super self::M1::•()
;
}
-abstract class _A&M2&M0 = self::M2<core::int*> with self::M0<core::Map<core::int*, core::int*>*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+abstract class _A&M2&M0 = self::M2<core::int> with self::M0<core::Map<core::int, core::int>> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M2&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect
index 14be2ee..ac7d6c9 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,39 +9,29 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class M0<T extends core::Object* = dynamic> extends self::I<core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
}
-class M1<T extends core::Object* = dynamic> extends self::I<core::List<self::M1::T*>*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
;
}
-class M2<T extends core::Object* = dynamic> extends self::M1<core::Map<self::M2::T*, self::M2::T*>*> {
- synthetic constructor •() → self::M2<self::M2::T*>*
+class M1<T extends core::Object? = dynamic> extends self::I<core::List<self::M1::T%>> {
+ synthetic constructor •() → self::M1<self::M1::T%>
;
}
-abstract class _A&M2&M0 = self::M2<core::int*> with self::M0<core::Map<core::int*, core::int*>*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+class M2<T extends core::Object? = dynamic> extends self::M1<core::Map<self::M2::T%, self::M2::T%>> {
+ synthetic constructor •() → self::M2<self::M2::T%>
+ ;
+}
+abstract class _A&M2&M0 = self::M2<core::int> with self::M0<core::Map<core::int, core::int>> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect
index 04ba48f..668323b 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_non_trivial_constraints.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,43 +9,33 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-class M1<T extends core::Object* = dynamic> extends self::I<core::List<self::M1::T*>*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends self::I<core::List<self::M1::T%>> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super self::I::•()
;
}
-class M2<T extends core::Object* = dynamic> extends self::M1<core::Map<self::M2::T*, self::M2::T*>*> {
- synthetic constructor •() → self::M2<self::M2::T*>*
+class M2<T extends core::Object? = dynamic> extends self::M1<core::Map<self::M2::T%, self::M2::T%>> {
+ synthetic constructor •() → self::M2<self::M2::T%>
: super self::M1::•()
;
}
-abstract class _A&M2&M0 extends self::M2<core::int*> implements self::M0<core::Map<core::int*, core::int*>*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M2&M0*
+abstract class _A&M2&M0 extends self::M2<core::int> implements self::M0<core::Map<core::int, core::int>> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M2&M0
: super self::M2::•()
;
}
class A extends self::_A&M2&M0 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M2&M0::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart
index a81facd..2361d30 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
class M0<T> extends I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline.expect
index bcb4e4e..ae524b7 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
class M0<T> extends I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline_modelled.expect
index 09a302b..80e75dc 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M0<int> with M1 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.expect
index 21fbce2..fcb14f9 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.expect
@@ -1,36 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 = self::M0<core::int*> with self::M1<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
class A extends self::_A&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.modular.expect
index 21fbce2..fcb14f9 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.modular.expect
@@ -1,36 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 = self::M0<core::int*> with self::M1<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
class A extends self::_A&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.outline.expect
index 77a51bc..772447a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.outline.expect
@@ -1,34 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
+ ;
}
-abstract class _A&M0&M1 = self::M0<core::int*> with self::M1<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
+}
+abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
class A extends self::_A&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.transformed.expect
index 6604f0b..281c0f6 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_1.dart.weak.transformed.expect
@@ -1,36 +1,26 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 extends self::M0<core::int*> implements self::M1<core::int*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class _A&M0&M1 extends self::M0<core::int> implements self::M1<core::int> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
class A extends self::_A&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart
index 7f1dff7..23edf99 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
class M0<T> extends I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline.expect
index 8035659..f4ded90 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
class M0<T> extends I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline_modelled.expect
index 99cac73..9afd4c1 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends M0<int> with M1, M2 {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.expect
index ac1a6239..04a03fe 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.expect
@@ -1,43 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class M2<T extends core::Object* = dynamic> extends self::I<self::M2::T*> /*isMixinDeclaration*/ {
+abstract class M2<T extends core::Object? = dynamic> extends self::I<self::M2::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 = self::M0<core::int*> with self::M1<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
-abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1&M2*
+abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1&M2
: super self::_A&M0&M1::•()
;
}
class A extends self::_A&M0&M1&M2 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M0&M1&M2::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.modular.expect
index ac1a6239..04a03fe 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.modular.expect
@@ -1,43 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class M2<T extends core::Object* = dynamic> extends self::I<self::M2::T*> /*isMixinDeclaration*/ {
+abstract class M2<T extends core::Object? = dynamic> extends self::I<self::M2::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 = self::M0<core::int*> with self::M1<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
-abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1&M2*
+abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1&M2
: super self::_A&M0&M1::•()
;
}
class A extends self::_A&M0&M1&M2 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M0&M1&M2::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.outline.expect
index 6f2e7df..06b3cb5 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.outline.expect
@@ -1,41 +1,31 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
+ ;
}
-abstract class M2<T extends core::Object* = dynamic> extends self::I<self::M2::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 = self::M0<core::int*> with self::M1<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class M2<T extends core::Object? = dynamic> extends self::I<self::M2::T%> /*isMixinDeclaration*/ {
+}
+abstract class _A&M0&M1 = self::M0<core::int> with self::M1<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
-abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int*> /*isAnonymousMixin*/ {
- synthetic constructor •() → self::_A&M0&M1&M2*
+abstract class _A&M0&M1&M2 = self::_A&M0&M1 with self::M2<core::int> /*isAnonymousMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1&M2
: super self::_A&M0&M1::•()
;
}
class A extends self::_A&M0&M1&M2 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.transformed.expect
index 9516020..fe282e2 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_2.dart.weak.transformed.expect
@@ -1,43 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super self::I::•()
;
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
-abstract class M2<T extends core::Object* = dynamic> extends self::I<self::M2::T*> /*isMixinDeclaration*/ {
+abstract class M2<T extends core::Object? = dynamic> extends self::I<self::M2::T%> /*isMixinDeclaration*/ {
}
-abstract class _A&M0&M1 extends self::M0<core::int*> implements self::M1<core::int*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M0&M1*
+abstract class _A&M0&M1 extends self::M0<core::int> implements self::M1<core::int> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1
: super self::M0::•()
;
}
-abstract class _A&M0&M1&M2 extends self::_A&M0&M1 implements self::M2<core::int*> /*isAnonymousMixin,isEliminatedMixin*/ {
- synthetic constructor •() → self::_A&M0&M1&M2*
+abstract class _A&M0&M1&M2 extends self::_A&M0&M1 implements self::M2<core::int> /*isAnonymousMixin,isEliminatedMixin*/ {
+ synthetic constructor •() → self::_A&M0&M1&M2
: super self::_A&M0&M1::•()
;
}
class A extends self::_A&M0&M1&M2 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&M0&M1&M2::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart
index 2caa544..0e8f9f2 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
class M0<T> extends Object implements I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect
index e13c203..f771fb9 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
class M0<T> extends Object implements I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect
index 9310f10..ec16fbb 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends Object with M0, M1<int> {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect
index d9fbc12..3052ecb 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.expect
@@ -6,7 +6,7 @@
// class A extends Object with M0, M1<int> {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -20,60 +20,30 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int*> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect
index d9fbc12..3052ecb 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.modular.expect
@@ -6,7 +6,7 @@
// class A extends Object with M0, M1<int> {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -20,60 +20,30 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int*> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect
index 58e02afcb..1bf6e32 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_3.dart.weak.outline.expect
@@ -6,7 +6,7 @@
// class A extends Object with M0, M1<int> {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -20,58 +20,28 @@
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int*> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<core::int> /*isAnonymousMixin,hasConstConstructor*/ {
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart
index f602be6..850e2ff 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X> {}
class M0<T> extends Object implements I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect
index d8111f8..d76d239 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X> {}
class M0<T> extends Object implements I<T> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect
index 158c0b7..38cc585 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends Object with M0, M1 implements I<int> {}
class I<X> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect
index 39d7387..adf375a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.expect
@@ -6,64 +6,34 @@
// class A extends Object with M0, M1 implements I<int> {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
-class A extends self::_A&Object&M0&M1 implements self::I<core::int*> {
- synthetic constructor •() → self::A*
+class A extends self::_A&Object&M0&M1 implements self::I<core::int> {
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect
index 39d7387..adf375a 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.modular.expect
@@ -6,64 +6,34 @@
// class A extends Object with M0, M1 implements I<int> {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
-class A extends self::_A&Object&M0&M1 implements self::I<core::int*> {
- synthetic constructor •() → self::A*
+class A extends self::_A&Object&M0&M1 implements self::I<core::int> {
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect
index af04810..ca26ae3 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_outwards_4.dart.weak.outline.expect
@@ -6,62 +6,32 @@
// class A extends Object with M0, M1 implements I<int> {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*>*
+class I<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%> {
+ synthetic constructor •() → self::M0<self::M0::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-abstract class M1<T extends core::Object* = dynamic> extends self::I<self::M1::T*> /*isMixinDeclaration*/ {
+abstract class M1<T extends core::Object? = dynamic> extends self::I<self::M1::T%> /*isMixinDeclaration*/ {
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
-class A extends self::_A&Object&M0&M1 implements self::I<core::int*> {
- synthetic constructor •() → self::A*
+class A extends self::_A&Object&M0&M1 implements self::I<core::int> {
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart
index 6e942bc..ed6e1be 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X, Y> {}
class M0<T> implements I<T, int> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect
index f6a48734..18ceb4d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X, Y> {}
class M0<T> implements I<T, int> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect
index ee2ae6f..e3a249c 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends Object with M0, M1 {}
class I<X, Y> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect
index 5907e7e..4516281 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.expect
@@ -6,77 +6,37 @@
// class A extends Object with M0, M1 {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*, self::I::Y*>*
+class I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%, self::I::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*, core::int*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%, core::int> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M1<T extends core::Object* = dynamic> extends core::Object implements self::I<core::String*, self::M1::T*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends core::Object implements self::I<core::String, self::M1::T%> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect
index 5907e7e..4516281 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.modular.expect
@@ -6,77 +6,37 @@
// class A extends Object with M0, M1 {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*, self::I::Y*>*
+class I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%, self::I::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*, core::int*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%, core::int> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M1<T extends core::Object* = dynamic> extends core::Object implements self::I<core::String*, self::M1::T*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends core::Object implements self::I<core::String, self::M1::T%> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect
index 3389df4..e7adb9d 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_1.dart.weak.outline.expect
@@ -6,74 +6,34 @@
// class A extends Object with M0, M1 {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*, self::I::Y*>*
+class I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%, self::I::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*, core::int*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%, core::int> {
+ synthetic constructor •() → self::M0<self::M0::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M1<T extends core::Object* = dynamic> extends core::Object implements self::I<core::String*, self::M1::T*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends core::Object implements self::I<core::String, self::M1::T%> {
+ synthetic constructor •() → self::M1<self::M1::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart
index 236c7a0..64d4550 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
class I<X, Y> {}
class M0<T> implements I<T, List<T>> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect
index f2a5b07..875a303 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class I<X, Y> {}
class M0<T> implements I<T, List<T>> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect
index f39edfd..e8a5311 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A extends Object with M0, M1 {}
class I<X, Y> {}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect
index 41a47e4..b555a74 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.expect
@@ -7,77 +7,37 @@
// class A extends Object with M0, M1 {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*, self::I::Y*>*
+class I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%, self::I::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*, core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%, core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M1<T extends core::Object* = dynamic> extends core::Object implements self::I<core::List<self::M1::T*>*, self::M1::T*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends core::Object implements self::I<core::List<self::M1::T%>, self::M1::T%> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect
index 41a47e4..b555a74 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.modular.expect
@@ -7,77 +7,37 @@
// class A extends Object with M0, M1 {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*, self::I::Y*>*
+class I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%, self::I::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*, core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%, core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M1<T extends core::Object* = dynamic> extends core::Object implements self::I<core::List<self::M1::T*>*, self::M1::T*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends core::Object implements self::I<core::List<self::M1::T%>, self::M1::T%> {
+ synthetic constructor •() → self::M1<self::M1::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super self::_A&Object&M0&M1::•()
;
}
diff --git a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect
index cad67ed..102a3df 100644
--- a/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/mixin_inference_unification_2.dart.weak.outline.expect
@@ -7,74 +7,34 @@
// class A extends Object with M0, M1 {}
// ^
//
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class I<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::I<self::I::X*, self::I::Y*>*
+class I<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::I<self::I::X%, self::I::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M0<T extends core::Object* = dynamic> extends core::Object implements self::I<self::M0::T*, core::List<self::M0::T*>*> {
- synthetic constructor •() → self::M0<self::M0::T*>*
+class M0<T extends core::Object? = dynamic> extends core::Object implements self::I<self::M0::T%, core::List<self::M0::T%>> {
+ synthetic constructor •() → self::M0<self::M0::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class M1<T extends core::Object* = dynamic> extends core::Object implements self::I<core::List<self::M1::T*>*, self::M1::T*> {
- synthetic constructor •() → self::M1<self::M1::T*>*
+class M1<T extends core::Object? = dynamic> extends core::Object implements self::I<core::List<self::M1::T%>, self::M1::T%> {
+ synthetic constructor •() → self::M1<self::M1::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0 = core::Object with self::M0<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0*
+ const synthetic constructor •() → self::_A&Object&M0
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class _A&Object&M0&M1 = self::_A&Object&M0 with self::M1<dynamic> /*isAnonymousMixin,hasConstConstructor*/ {
- const synthetic constructor •() → self::_A&Object&M0&M1*
+ const synthetic constructor •() → self::_A&Object&M0&M1
: super self::_A&Object&M0::•()
;
}
class A extends self::_A&Object&M0&M1 {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart b/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart
index ddfa0d6..bd4ff21 100644
--- a/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart
+++ b/pkg/front_end/testcases/inference/no_error_when_declared_type_is_num_and_assigned_null.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart b/pkg/front_end/testcases/inference/non_const_invocation.dart
index d374b76..67bbd09 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart
@@ -1,23 +1,23 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
typedef V F<U, V>(U u);
class Foo<T> {
- Bar<T> get v1 => new /*@ typeArgs=Foo::T* */ Bar();
- Bar<List<T>> get v2 => new /*@ typeArgs=List<Foo::T*>* */ Bar();
- Bar<F<T, T>> get v3 => new /*@ typeArgs=(Foo::T*) ->* Foo::T* */ Bar();
+ Bar<T> get v1 => new /*@typeArgs=Foo::T%*/ Bar();
+ Bar<List<T>> get v2 => new /*@typeArgs=List<Foo::T%>*/ Bar();
+ Bar<F<T, T>> get v3 => new /*@typeArgs=(Foo::T%) -> Foo::T%*/ Bar();
Bar<F<F<T, T>, T>> get v4 =>
- new /*@ typeArgs=((Foo::T*) ->* Foo::T*) ->* Foo::T* */ Bar();
- List<T> get v5 => /*@ typeArgs=Foo::T* */ [];
- List<F<T, T>> get v6 => /*@ typeArgs=(Foo::T*) ->* Foo::T* */ [];
- Map<T, T> get v7 => /*@ typeArgs=Foo::T*, Foo::T* */ {};
- Map<F<T, T>, T> get v8 => /*@ typeArgs=(Foo::T*) ->* Foo::T*, Foo::T* */ {};
- Map<T, F<T, T>> get v9 => /*@ typeArgs=Foo::T*, (Foo::T*) ->* Foo::T* */ {};
+ new /*@typeArgs=((Foo::T%) -> Foo::T%) -> Foo::T%*/ Bar();
+ List<T> get v5 => /*@typeArgs=Foo::T%*/ [];
+ List<F<T, T>> get v6 => /*@typeArgs=(Foo::T%) -> Foo::T%*/ [];
+ Map<T, T> get v7 => /*@typeArgs=Foo::T%, Foo::T%*/ {};
+ Map<F<T, T>, T> get v8 => /*@typeArgs=(Foo::T%) -> Foo::T%, Foo::T%*/ {};
+ Map<T, F<T, T>> get v9 => /*@typeArgs=Foo::T%, (Foo::T%) -> Foo::T%*/ {};
}
class Bar<T> {
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline.expect
index 41dbc19..a12a138 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef V F<U, V>(U u);
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline_modelled.expect
index 10f7f3a..6fb4bb9 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Bar<T> {
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.expect
index 5049806..8032820 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.expect
@@ -1,54 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- get v1() → self::Bar<self::Foo::T*>*
- return new self::Bar::•<self::Foo::T*>();
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
- return new self::Bar::•<core::List<self::Foo::T*>*>();
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
- return new self::Bar::•<(self::Foo::T*) →* self::Foo::T*>();
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
- return new self::Bar::•<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>();
- get v5() → core::List<self::Foo::T*>*
- return <self::Foo::T*>[];
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
- return <(self::Foo::T*) →* self::Foo::T*>[];
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
- return <self::Foo::T*, self::Foo::T*>{};
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
- return <(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>{};
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
- return <self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>{};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get v1() → self::Bar<self::Foo::T%>
+ return new self::Bar::•<self::Foo::T%>();
+ get v2() → self::Bar<core::List<self::Foo::T%>>
+ return new self::Bar::•<core::List<self::Foo::T%>>();
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
+ return new self::Bar::•<(self::Foo::T%) → self::Foo::T%>();
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
+ return new self::Bar::•<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>();
+ get v5() → core::List<self::Foo::T%>
+ return <self::Foo::T%>[];
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
+ return <(self::Foo::T%) → self::Foo::T%>[];
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
+ return <self::Foo::T%, self::Foo::T%>{};
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
+ return <(self::Foo::T%) → self::Foo::T%, self::Foo::T%>{};
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
+ return <self::Foo::T%, (self::Foo::T%) → self::Foo::T%>{};
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.modular.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.modular.expect
index 5049806..8032820 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.modular.expect
@@ -1,54 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- get v1() → self::Bar<self::Foo::T*>*
- return new self::Bar::•<self::Foo::T*>();
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
- return new self::Bar::•<core::List<self::Foo::T*>*>();
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
- return new self::Bar::•<(self::Foo::T*) →* self::Foo::T*>();
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
- return new self::Bar::•<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>();
- get v5() → core::List<self::Foo::T*>*
- return <self::Foo::T*>[];
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
- return <(self::Foo::T*) →* self::Foo::T*>[];
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
- return <self::Foo::T*, self::Foo::T*>{};
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
- return <(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>{};
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
- return <self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>{};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get v1() → self::Bar<self::Foo::T%>
+ return new self::Bar::•<self::Foo::T%>();
+ get v2() → self::Bar<core::List<self::Foo::T%>>
+ return new self::Bar::•<core::List<self::Foo::T%>>();
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
+ return new self::Bar::•<(self::Foo::T%) → self::Foo::T%>();
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
+ return new self::Bar::•<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>();
+ get v5() → core::List<self::Foo::T%>
+ return <self::Foo::T%>[];
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
+ return <(self::Foo::T%) → self::Foo::T%>[];
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
+ return <self::Foo::T%, self::Foo::T%>{};
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
+ return <(self::Foo::T%) → self::Foo::T%, self::Foo::T%>{};
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
+ return <self::Foo::T%, (self::Foo::T%) → self::Foo::T%>{};
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.outline.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.outline.expect
index c39f27b..9654182 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.outline.expect
@@ -1,54 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
;
- get v1() → self::Bar<self::Foo::T*>*
+ get v1() → self::Bar<self::Foo::T%>
;
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
+ get v2() → self::Bar<core::List<self::Foo::T%>>
;
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
;
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
;
- get v5() → core::List<self::Foo::T*>*
+ get v5() → core::List<self::Foo::T%>
;
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
;
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
;
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
;
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.transformed.expect
index 939a1a6..9bf894d 100644
--- a/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/non_const_invocation.dart.weak.transformed.expect
@@ -1,54 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- get v1() → self::Bar<self::Foo::T*>*
- return new self::Bar::•<self::Foo::T*>();
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
- return new self::Bar::•<core::List<self::Foo::T*>*>();
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
- return new self::Bar::•<(self::Foo::T*) →* self::Foo::T*>();
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
- return new self::Bar::•<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>();
- get v5() → core::List<self::Foo::T*>*
- return core::_GrowableList::•<self::Foo::T*>(0);
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
- return core::_GrowableList::•<(self::Foo::T*) →* self::Foo::T*>(0);
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
- return <self::Foo::T*, self::Foo::T*>{};
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
- return <(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>{};
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
- return <self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>{};
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get v1() → self::Bar<self::Foo::T%>
+ return new self::Bar::•<self::Foo::T%>();
+ get v2() → self::Bar<core::List<self::Foo::T%>>
+ return new self::Bar::•<core::List<self::Foo::T%>>();
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
+ return new self::Bar::•<(self::Foo::T%) → self::Foo::T%>();
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
+ return new self::Bar::•<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>();
+ get v5() → core::List<self::Foo::T%>
+ return core::_GrowableList::•<self::Foo::T%>(0);
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
+ return core::_GrowableList::•<(self::Foo::T%) → self::Foo::T%>(0);
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
+ return <self::Foo::T%, self::Foo::T%>{};
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
+ return <(self::Foo::T%) → self::Foo::T%, self::Foo::T%>{};
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
+ return <self::Foo::T%, (self::Foo::T%) → self::Foo::T%>{};
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart
index 3bbd78a..f8ac0dc 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline.expect
index 8bcaff0..d565888 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline_modelled.expect
index 8bcaff0..d565888 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.expect b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.expect
index 8a5e873..f4e1d92 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
get x() → dynamic
return null;
set x(dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.modular.expect
index 8a5e873..f4e1d92 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
get x() → dynamic
return null;
set x(dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.outline.expect
index 5170404..1fd30a8 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
get x() → dynamic
;
set x(dynamic value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.transformed.expect
index 8a5e873..f4e1d92 100644
--- a/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/non_inferrable_getter_setter.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
get x() → dynamic
return null;
set x(dynamic value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart
index 2d019d6..5f0590a 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart
@@ -1,17 +1,18 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- int f() => null;
+ int f() => throw '';
}
-g(C c) {
- var /*@ type=int* */ x = /*@ type=C* */ c?. /*@target=C.f*/ f();
- /*@ type=C* */ c?. /*@target=C.f*/ f();
+g(C? c) {
+ var /*@type=int?*/ x = /*@type=C?*/ /*@promotedType=C*/ c
+ ?. /*@target=C.f*/ f();
+ /*@type=C?*/ /*@promotedType=C*/ c?. /*@target=C.f*/ f();
}
main() {}
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline.expect b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline.expect
index 03e6dc9..c88912e 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
- int f() => null;
+ int f() => throw '';
}
-g(C c) {}
+g(C? c) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline_modelled.expect
index 03e6dc9..c88912e 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
- int f() => null;
+ int f() => throw '';
}
-g(C c) {}
+g(C? c) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.expect b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.expect
index cbf7329..a0d1fb2 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f() → core::int
+ return throw "";
}
-static method g(self::C* c) → dynamic {
- core::int* x = let final self::C* #t1 = c in #t1 == null ?{core::int*} null : #t1.{self::C::f}(){() →* core::int*};
- let final self::C* #t2 = c in #t2 == null ?{core::int*} null : #t2.{self::C::f}(){() →* core::int*};
+static method g(self::C? c) → dynamic {
+ core::int? x = let final self::C? #t1 = c in #t1 == null ?{core::int?} null : #t1{self::C}.{self::C::f}(){() → core::int};
+ let final self::C? #t2 = c in #t2 == null ?{core::int?} null : #t2{self::C}.{self::C::f}(){() → core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.modular.expect b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.modular.expect
index cbf7329..a0d1fb2 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f() → core::int
+ return throw "";
}
-static method g(self::C* c) → dynamic {
- core::int* x = let final self::C* #t1 = c in #t1 == null ?{core::int*} null : #t1.{self::C::f}(){() →* core::int*};
- let final self::C* #t2 = c in #t2 == null ?{core::int*} null : #t2.{self::C::f}(){() →* core::int*};
+static method g(self::C? c) → dynamic {
+ core::int? x = let final self::C? #t1 = c in #t1 == null ?{core::int?} null : #t1{self::C}.{self::C::f}(){() → core::int};
+ let final self::C? #t2 = c in #t2 == null ?{core::int?} null : #t2{self::C}.{self::C::f}(){() → core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.outline.expect b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.outline.expect
index 362ce50..0b0291f 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f() → core::int*
+ method f() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method g(self::C* c) → dynamic
+static method g(self::C? c) → dynamic
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.transformed.expect
index cbf7329..a0d1fb2 100644
--- a/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_aware_method_invocation.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f() → core::int
+ return throw "";
}
-static method g(self::C* c) → dynamic {
- core::int* x = let final self::C* #t1 = c in #t1 == null ?{core::int*} null : #t1.{self::C::f}(){() →* core::int*};
- let final self::C* #t2 = c in #t2 == null ?{core::int*} null : #t2.{self::C::f}(){() →* core::int*};
+static method g(self::C? c) → dynamic {
+ core::int? x = let final self::C? #t1 = c in #t1 == null ?{core::int?} null : #t1{self::C}.{self::C::f}(){() → core::int};
+ let final self::C? #t2 = c in #t2 == null ?{core::int?} null : #t2{self::C}.{self::C::f}(){() → core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart b/pkg/front_end/testcases/inference/null_aware_property_get.dart
index 3d2edef..79e1255 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- int x;
+ int x = 0;
}
-void f(C c) {
- var /*@ type=int* */ x = /*@ type=C* */ c?. /*@target=C.x*/ x;
- /*@ type=C* */ c?. /*@target=C.x*/ x;
+void f(C? c) {
+ var /*@type=int?*/ x = /*@type=C?*/ /*@promotedType=C*/ c?. /*@target=C.x*/ x;
+ /*@type=C?*/ /*@promotedType=C*/ c?. /*@target=C.x*/ x;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline.expect b/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline.expect
index 2571154..cb1438a 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
- int x;
+ int x = 0;
}
-void f(C c) {}
+void f(C? c) {}
main() {}
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline_modelled.expect
index c85f391..8864413 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
class C {
- int x;
+ int x = 0;
}
main() {}
-void f(C c) {}
+void f(C? c) {}
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.expect b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.expect
index b8c3acb..4fb550b 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int x = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::C* c) → void {
- core::int* x = let final self::C* #t1 = c in #t1 == null ?{core::int*} null : #t1.{self::C::x}{core::int*};
- let final self::C* #t2 = c in #t2 == null ?{core::int*} null : #t2.{self::C::x}{core::int*};
+static method f(self::C? c) → void {
+ core::int? x = let final self::C? #t1 = c in #t1 == null ?{core::int?} null : #t1{self::C}.{self::C::x}{core::int};
+ let final self::C? #t2 = c in #t2 == null ?{core::int?} null : #t2{self::C}.{self::C::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.modular.expect b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.modular.expect
index b8c3acb..4fb550b 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int x = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::C* c) → void {
- core::int* x = let final self::C* #t1 = c in #t1 == null ?{core::int*} null : #t1.{self::C::x}{core::int*};
- let final self::C* #t2 = c in #t2 == null ?{core::int*} null : #t2.{self::C::x}{core::int*};
+static method f(self::C? c) → void {
+ core::int? x = let final self::C? #t1 = c in #t1 == null ?{core::int?} null : #t1{self::C}.{self::C::x}{core::int};
+ let final self::C? #t2 = c in #t2 == null ?{core::int?} null : #t2{self::C}.{self::C::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.outline.expect b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.outline.expect
index cadee5c..5b3e2bc 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::C*
+ field core::int x;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::C* c) → void
+static method f(self::C? c) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.transformed.expect
index b8c3acb..4fb550b 100644
--- a/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_aware_property_get.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x = null;
- synthetic constructor •() → self::C*
+ field core::int x = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::C* c) → void {
- core::int* x = let final self::C* #t1 = c in #t1 == null ?{core::int*} null : #t1.{self::C::x}{core::int*};
- let final self::C* #t2 = c in #t2 == null ?{core::int*} null : #t2.{self::C::x}{core::int*};
+static method f(self::C? c) → void {
+ core::int? x = let final self::C? #t1 = c in #t1 == null ?{core::int?} null : #t1{self::C}.{self::C::x}{core::int};
+ let final self::C? #t2 = c in #t2 == null ?{core::int?} null : #t2{self::C}.{self::C::x}{core::int};
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart b/pkg/front_end/testcases/inference/null_coalescing_operator.dart
index 8ce2e52..d7698dd 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart
@@ -1,12 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-main() {
- List<int> x;
- var /*@ type=List<int*>* */ y = x ?? /*@ typeArgs=int* */ [];
+test(List<int>? x) {
+ var /*@type=List<int>*/ y = x ?? /*@typeArgs=int*/ [];
List<int> z = y;
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline.expect
index 4b71679..a183d6e 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
-main() {}
+test(List<int>? x) {}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline_modelled.expect
index 4b71679..a183d6e 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
-main() {}
+test(List<int>? x) {}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.expect
index 15f12a3..bd2bb55 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.expect
@@ -1,9 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method main() → dynamic {
- core::List<core::int*>* x;
- core::List<core::int*>* y = let final core::List<core::int*>* #t1 = x in #t1 == null ?{core::List<core::int*>*} <core::int*>[] : #t1;
- core::List<core::int*>* z = y;
+static method test(core::List<core::int>? x) → dynamic {
+ core::List<core::int> y = let final core::List<core::int>? #t1 = x in #t1 == null ?{core::List<core::int>} <core::int>[] : #t1{core::List<core::int>};
+ core::List<core::int> z = y;
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.modular.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.modular.expect
index 15f12a3..bd2bb55 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.modular.expect
@@ -1,9 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method main() → dynamic {
- core::List<core::int*>* x;
- core::List<core::int*>* y = let final core::List<core::int*>* #t1 = x in #t1 == null ?{core::List<core::int*>*} <core::int*>[] : #t1;
- core::List<core::int*>* z = y;
+static method test(core::List<core::int>? x) → dynamic {
+ core::List<core::int> y = let final core::List<core::int>? #t1 = x in #t1 == null ?{core::List<core::int>} <core::int>[] : #t1{core::List<core::int>};
+ core::List<core::int> z = y;
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.outline.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.outline.expect
index 09dc88c..1ca39e5 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.outline.expect
@@ -1,5 +1,6 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method main() → dynamic
+static method test(core::List<core::int>? x) → dynamic
;
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.transformed.expect
index 7a25cb4..a6e0582 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator.dart.weak.transformed.expect
@@ -1,9 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method main() → dynamic {
- core::List<core::int*>* x;
- core::List<core::int*>* y = let final core::List<core::int*>* #t1 = x in #t1 == null ?{core::List<core::int*>*} core::_GrowableList::•<core::int*>(0) : #t1;
- core::List<core::int*>* z = y;
+static method test(core::List<core::int>? x) → dynamic {
+ core::List<core::int> y = let final core::List<core::int>? #t1 = x in #t1 == null ?{core::List<core::int>} core::_GrowableList::•<core::int>(0) : #t1{core::List<core::int>};
+ core::List<core::int> z = y;
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart
index f84a4e4..2663107 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart
@@ -1,11 +1,10 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-main() {
- List<int> x;
- List<num> y = x ?? /*@ typeArgs=num* */ [];
+test(List<int>? x) {
+ List<num> y = x ?? /*@typeArgs=num*/ [];
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline.expect
index 4b71679..a183d6e 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
-main() {}
+test(List<int>? x) {}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline_modelled.expect
index 4b71679..a183d6e 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
-main() {}
+test(List<int>? x) {}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.expect
index 33d1268..ead8d88 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.expect
@@ -1,8 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method main() → dynamic {
- core::List<core::int*>* x;
- core::List<core::num*>* y = let final core::List<core::int*>* #t1 = x in #t1 == null ?{core::List<core::num*>*} <core::num*>[] : #t1;
+static method test(core::List<core::int>? x) → dynamic {
+ core::List<core::num> y = let final core::List<core::int>? #t1 = x in #t1 == null ?{core::List<core::num>} <core::num>[] : #t1{core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.modular.expect
index 33d1268..ead8d88 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.modular.expect
@@ -1,8 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method main() → dynamic {
- core::List<core::int*>* x;
- core::List<core::num*>* y = let final core::List<core::int*>* #t1 = x in #t1 == null ?{core::List<core::num*>*} <core::num*>[] : #t1;
+static method test(core::List<core::int>? x) → dynamic {
+ core::List<core::num> y = let final core::List<core::int>? #t1 = x in #t1 == null ?{core::List<core::num>} <core::num>[] : #t1{core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.outline.expect
index 09dc88c..1ca39e5 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.outline.expect
@@ -1,5 +1,6 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method main() → dynamic
+static method test(core::List<core::int>? x) → dynamic
;
diff --git a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.transformed.expect
index c2e2653..ef4d037 100644
--- a/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/null_coalescing_operator_2.dart.weak.transformed.expect
@@ -1,8 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method main() → dynamic {
- core::List<core::int*>* x;
- core::List<core::num*>* y = let final core::List<core::int*>* #t1 = x in #t1 == null ?{core::List<core::num*>*} core::_GrowableList::•<core::num*>(0) : #t1;
+static method test(core::List<core::int>? x) → dynamic {
+ core::List<core::num> y = let final core::List<core::int>? #t1 = x in #t1 == null ?{core::List<core::num>} core::_GrowableList::•<core::num>(0) : #t1{core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
index 82b6a3a..3235b7a 100644
--- a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,10 +11,10 @@
void foo(int f(Object _)) {}
test() {
- var /*@ type=(Object*) ->* Null */ f = /*@ returnType=Null */ (Object x) => null;
+ var /*@type=(Object*) ->* Null*/ f = /*@ returnType=Null */ (Object x) => null;
String y = /*info:DYNAMIC_CAST*/ f(42);
- f = /*@ returnType=Null */ (/*@ type=Object* */ x) => 'hello';
+ f = /*@ returnType=Null */ (/*@type=Object**/ x) => 'hello';
var /*@ type=dynamic */ g = null;
g = 'hello';
@@ -21,8 +23,8 @@
h = 'hello';
(/*info:DYNAMIC_INVOKE*/ h.foo());
- foo(/*@ returnType=Null */ (/*@ type=Object* */ x) => null);
- foo(/*@ returnType=Null */ (/*@ type=Object* */ x) =>
+ foo(/*@returnType=Null*/ (/*@type=Object**/ x) => null);
+ foo(/*@returnType=Null*/ (/*@type=Object**/ x) =>
throw "not implemented");
}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart
new file mode 100644
index 0000000..74c0961
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart
@@ -0,0 +1,28 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+var h = null;
+void foo(int f(Object _)) {}
+
+test() {
+ var /*@type=(Object) -> Null*/ f = /*@ returnType=Null */ (Object x) => null;
+ String? y = f(42);
+
+ f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+
+ var /*@ type=dynamic */ g = null;
+ g = 'hello';
+ (/*info:DYNAMIC_INVOKE*/ g.foo());
+
+ h = 'hello';
+ (/*info:DYNAMIC_INVOKE*/ h.foo());
+
+ foo(/*@returnType=int*/ (/*@type=Object*/ x) => 0);
+ foo(/*@returnType=Never*/ (/*@type=Object*/ x) => throw "not implemented");
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.textual_outline.expect
new file mode 100644
index 0000000..4a1f36a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.textual_outline.expect
@@ -0,0 +1,6 @@
+library test;
+
+var h = null;
+void foo(int f(Object _)) {}
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1183aa1
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.textual_outline_modelled.expect
@@ -0,0 +1,6 @@
+library test;
+
+main() {}
+test() {}
+var h = null;
+void foo(int f(Object _)) {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.expect
new file mode 100644
index 0000000..6ac9534
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.expect
@@ -0,0 +1,28 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart:15:54: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+// f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h = null;
+static method foo((core::Object) → core::int f) → void {}
+static method test() → dynamic {
+ (core::Object) → Null f = (core::Object x) → Null => null;
+ core::String? y = f(42){(core::Object) → Null};
+ f = (core::Object x) → Null => invalid-expression "pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart:15:54: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+ f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} Null;
+ has-declared-initializer dynamic g = null;
+ g = "hello";
+ g{dynamic}.foo();
+ self::h = "hello";
+ self::h{dynamic}.foo();
+ self::foo((core::Object x) → core::int => 0);
+ self::foo((core::Object x) → Never => throw "not implemented");
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.modular.expect
new file mode 100644
index 0000000..6ac9534
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.modular.expect
@@ -0,0 +1,28 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart:15:54: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+// f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h = null;
+static method foo((core::Object) → core::int f) → void {}
+static method test() → dynamic {
+ (core::Object) → Null f = (core::Object x) → Null => null;
+ core::String? y = f(42){(core::Object) → Null};
+ f = (core::Object x) → Null => invalid-expression "pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart:15:54: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+ f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} Null;
+ has-declared-initializer dynamic g = null;
+ g = "hello";
+ g{dynamic}.foo();
+ self::h = "hello";
+ self::h{dynamic}.foo();
+ self::foo((core::Object x) → core::int => 0);
+ self::foo((core::Object x) → Never => throw "not implemented");
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.outline.expect
new file mode 100644
index 0000000..ee8ca0a
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.outline.expect
@@ -0,0 +1,11 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h;
+static method foo((core::Object) → core::int f) → void
+ ;
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.transformed.expect
new file mode 100644
index 0000000..6ac9534
--- /dev/null
+++ b/pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart.weak.transformed.expect
@@ -0,0 +1,28 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart:15:54: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+// f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+// ^
+//
+import self as self;
+import "dart:core" as core;
+
+static field dynamic h = null;
+static method foo((core::Object) → core::int f) → void {}
+static method test() → dynamic {
+ (core::Object) → Null f = (core::Object x) → Null => null;
+ core::String? y = f(42){(core::Object) → Null};
+ f = (core::Object x) → Null => invalid-expression "pkg/front_end/testcases/inference/null_literal_should_not_infer_as_bottom2.dart:15:54: Error: A value of type 'String' can't be returned from a function with return type 'Null'.
+ f = /*@ returnType=Null */ (/*@type=Object*/ x) => 'hello';
+ ^" in "hello" as{TypeError,ForNonNullableByDefault} Null;
+ has-declared-initializer dynamic g = null;
+ g = "hello";
+ g{dynamic}.foo();
+ self::h = "hello";
+ self::h{dynamic}.foo();
+ self::foo((core::Object x) → core::int => 0);
+ self::foo((core::Object x) → Never => throw "not implemented");
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart b/pkg/front_end/testcases/inference/overloaded_int_operators.dart
index 2d40297..c61122c 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,56 +11,56 @@
double d = 1.0;
// (double, double) -> double
- var /*@ type=double* */ ddPlus = d /*@target=double.+*/ + d;
- var /*@ type=double* */ ddMinus = d /*@target=double.-*/ - d;
- var /*@ type=double* */ ddTimes = d /*@target=double.**/ * d;
- var /*@ type=double* */ ddMod = d /*@target=double.%*/ % d;
+ var /*@type=double*/ ddPlus = d /*@target=double.+*/ + d;
+ var /*@type=double*/ ddMinus = d /*@target=double.-*/ - d;
+ var /*@type=double*/ ddTimes = d /*@target=double.**/ * d;
+ var /*@type=double*/ ddMod = d /*@target=double.%*/ % d;
// (double, int) -> double
- var /*@ type=double* */ diPlus = d /*@target=double.+*/ + i;
- var /*@ type=double* */ diMinus = d /*@target=double.-*/ - i;
- var /*@ type=double* */ diTimes = d /*@target=double.**/ * i;
- var /*@ type=double* */ diMod = d /*@target=double.%*/ % i;
+ var /*@type=double*/ diPlus = d /*@target=double.+*/ + i;
+ var /*@type=double*/ diMinus = d /*@target=double.-*/ - i;
+ var /*@type=double*/ diTimes = d /*@target=double.**/ * i;
+ var /*@type=double*/ diMod = d /*@target=double.%*/ % i;
// (double, num) -> double
- var /*@ type=double* */ dnPlus = d /*@target=double.+*/ + n;
- var /*@ type=double* */ dnMinus = d /*@target=double.-*/ - n;
- var /*@ type=double* */ dnTimes = d /*@target=double.**/ * n;
- var /*@ type=double* */ dnMod = d /*@target=double.%*/ % n;
+ var /*@type=double*/ dnPlus = d /*@target=double.+*/ + n;
+ var /*@type=double*/ dnMinus = d /*@target=double.-*/ - n;
+ var /*@type=double*/ dnTimes = d /*@target=double.**/ * n;
+ var /*@type=double*/ dnMod = d /*@target=double.%*/ % n;
// (int, double) -> double
- var /*@ type=double* */ idPlus = i /*@target=num.+*/ + d;
- var /*@ type=double* */ idMinus = i /*@target=num.-*/ - d;
- var /*@ type=double* */ idTimes = i /*@target=num.**/ * d;
- var /*@ type=double* */ idMod = i /*@target=num.%*/ % d;
+ var /*@type=double*/ idPlus = i /*@target=num.+*/ + d;
+ var /*@type=double*/ idMinus = i /*@target=num.-*/ - d;
+ var /*@type=double*/ idTimes = i /*@target=num.**/ * d;
+ var /*@type=double*/ idMod = i /*@target=num.%*/ % d;
// (int, int) -> int
- var /*@ type=int* */ iiPlus = i /*@target=num.+*/ + i;
- var /*@ type=int* */ iiMinus = i /*@target=num.-*/ - i;
- var /*@ type=int* */ iiTimes = i /*@target=num.**/ * i;
- var /*@ type=int* */ iiMod = i /*@target=num.%*/ % i;
+ var /*@type=int*/ iiPlus = i /*@target=num.+*/ + i;
+ var /*@type=int*/ iiMinus = i /*@target=num.-*/ - i;
+ var /*@type=int*/ iiTimes = i /*@target=num.**/ * i;
+ var /*@type=int*/ iiMod = i /*@target=num.%*/ % i;
// (int, num) -> num
- var /*@ type=num* */ inPlus = i /*@target=num.+*/ + n;
- var /*@ type=num* */ inMinus = i /*@target=num.-*/ - n;
- var /*@ type=num* */ inTimes = i /*@target=num.**/ * n;
- var /*@ type=num* */ inMod = i /*@target=num.%*/ % n;
+ var /*@type=num*/ inPlus = i /*@target=num.+*/ + n;
+ var /*@type=num*/ inMinus = i /*@target=num.-*/ - n;
+ var /*@type=num*/ inTimes = i /*@target=num.**/ * n;
+ var /*@type=num*/ inMod = i /*@target=num.%*/ % n;
// (num, double) -> num
- var /*@ type=num* */ ndPlus = n /*@target=num.+*/ + d;
- var /*@ type=num* */ ndMinus = n /*@target=num.-*/ - d;
- var /*@ type=num* */ ndTimes = n /*@target=num.**/ * d;
- var /*@ type=num* */ ndMod = n /*@target=num.%*/ % d;
+ var /*@type=double*/ ndPlus = n /*@target=num.+*/ + d;
+ var /*@type=double*/ ndMinus = n /*@target=num.-*/ - d;
+ var /*@type=double*/ ndTimes = n /*@target=num.**/ * d;
+ var /*@type=double*/ ndMod = n /*@target=num.%*/ % d;
// (num, int) -> num
- var /*@ type=num* */ niPlus = n /*@target=num.+*/ + i;
- var /*@ type=num* */ niMinus = n /*@target=num.-*/ - i;
- var /*@ type=num* */ niTimes = n /*@target=num.**/ * i;
- var /*@ type=num* */ niMod = n /*@target=num.%*/ % i;
+ var /*@type=num*/ niPlus = n /*@target=num.+*/ + i;
+ var /*@type=num*/ niMinus = n /*@target=num.-*/ - i;
+ var /*@type=num*/ niTimes = n /*@target=num.**/ * i;
+ var /*@type=num*/ niMod = n /*@target=num.%*/ % i;
// (num, num) -> num
- var /*@ type=num* */ nnPlus = n /*@target=num.+*/ + n;
- var /*@ type=num* */ nnMinus = n /*@target=num.-*/ - n;
- var /*@ type=num* */ nnTimes = n /*@target=num.**/ * n;
- var /*@ type=num* */ nnMod = n /*@target=num.%*/ % n;
+ var /*@type=num*/ nnPlus = n /*@target=num.+*/ + n;
+ var /*@type=num*/ nnMinus = n /*@target=num.-*/ - n;
+ var /*@type=num*/ nnTimes = n /*@target=num.**/ * n;
+ var /*@type=num*/ nnMod = n /*@target=num.%*/ % n;
}
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline.expect b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.expect b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.expect
index 09b660d..a7da493 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.expect
@@ -1,45 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::num* n = 1;
- core::int* i = 1;
- core::double* d = 1.0;
- core::double* ddPlus = d.{core::double::+}(d){(core::num*) →* core::double*};
- core::double* ddMinus = d.{core::double::-}(d){(core::num*) →* core::double*};
- core::double* ddTimes = d.{core::double::*}(d){(core::num*) →* core::double*};
- core::double* ddMod = d.{core::double::%}(d){(core::num*) →* core::double*};
- core::double* diPlus = d.{core::double::+}(i){(core::num*) →* core::double*};
- core::double* diMinus = d.{core::double::-}(i){(core::num*) →* core::double*};
- core::double* diTimes = d.{core::double::*}(i){(core::num*) →* core::double*};
- core::double* diMod = d.{core::double::%}(i){(core::num*) →* core::double*};
- core::double* dnPlus = d.{core::double::+}(n){(core::num*) →* core::double*};
- core::double* dnMinus = d.{core::double::-}(n){(core::num*) →* core::double*};
- core::double* dnTimes = d.{core::double::*}(n){(core::num*) →* core::double*};
- core::double* dnMod = d.{core::double::%}(n){(core::num*) →* core::double*};
- core::double* idPlus = i.{core::num::+}(d){(core::num*) →* core::double*};
- core::double* idMinus = i.{core::num::-}(d){(core::num*) →* core::double*};
- core::double* idTimes = i.{core::num::*}(d){(core::num*) →* core::double*};
- core::double* idMod = i.{core::num::%}(d){(core::num*) →* core::double*};
- core::int* iiPlus = i.{core::num::+}(i){(core::num*) →* core::int*};
- core::int* iiMinus = i.{core::num::-}(i){(core::num*) →* core::int*};
- core::int* iiTimes = i.{core::num::*}(i){(core::num*) →* core::int*};
- core::int* iiMod = i.{core::num::%}(i){(core::num*) →* core::int*};
- core::num* inPlus = i.{core::num::+}(n){(core::num*) →* core::num*};
- core::num* inMinus = i.{core::num::-}(n){(core::num*) →* core::num*};
- core::num* inTimes = i.{core::num::*}(n){(core::num*) →* core::num*};
- core::num* inMod = i.{core::num::%}(n){(core::num*) →* core::num*};
- core::num* ndPlus = n.{core::num::+}(d){(core::num*) →* core::num*};
- core::num* ndMinus = n.{core::num::-}(d){(core::num*) →* core::num*};
- core::num* ndTimes = n.{core::num::*}(d){(core::num*) →* core::num*};
- core::num* ndMod = n.{core::num::%}(d){(core::num*) →* core::num*};
- core::num* niPlus = n.{core::num::+}(i){(core::num*) →* core::num*};
- core::num* niMinus = n.{core::num::-}(i){(core::num*) →* core::num*};
- core::num* niTimes = n.{core::num::*}(i){(core::num*) →* core::num*};
- core::num* niMod = n.{core::num::%}(i){(core::num*) →* core::num*};
- core::num* nnPlus = n.{core::num::+}(n){(core::num*) →* core::num*};
- core::num* nnMinus = n.{core::num::-}(n){(core::num*) →* core::num*};
- core::num* nnTimes = n.{core::num::*}(n){(core::num*) →* core::num*};
- core::num* nnMod = n.{core::num::%}(n){(core::num*) →* core::num*};
+ core::num n = 1;
+ core::int i = 1;
+ core::double d = 1.0;
+ core::double ddPlus = d.{core::double::+}(d){(core::num) → core::double};
+ core::double ddMinus = d.{core::double::-}(d){(core::num) → core::double};
+ core::double ddTimes = d.{core::double::*}(d){(core::num) → core::double};
+ core::double ddMod = d.{core::double::%}(d){(core::num) → core::double};
+ core::double diPlus = d.{core::double::+}(i){(core::num) → core::double};
+ core::double diMinus = d.{core::double::-}(i){(core::num) → core::double};
+ core::double diTimes = d.{core::double::*}(i){(core::num) → core::double};
+ core::double diMod = d.{core::double::%}(i){(core::num) → core::double};
+ core::double dnPlus = d.{core::double::+}(n){(core::num) → core::double};
+ core::double dnMinus = d.{core::double::-}(n){(core::num) → core::double};
+ core::double dnTimes = d.{core::double::*}(n){(core::num) → core::double};
+ core::double dnMod = d.{core::double::%}(n){(core::num) → core::double};
+ core::double idPlus = i.{core::num::+}(d){(core::num) → core::double};
+ core::double idMinus = i.{core::num::-}(d){(core::num) → core::double};
+ core::double idTimes = i.{core::num::*}(d){(core::num) → core::double};
+ core::double idMod = i.{core::num::%}(d){(core::num) → core::double};
+ core::int iiPlus = i.{core::num::+}(i){(core::num) → core::int};
+ core::int iiMinus = i.{core::num::-}(i){(core::num) → core::int};
+ core::int iiTimes = i.{core::num::*}(i){(core::num) → core::int};
+ core::int iiMod = i.{core::num::%}(i){(core::num) → core::int};
+ core::num inPlus = i.{core::num::+}(n){(core::num) → core::num};
+ core::num inMinus = i.{core::num::-}(n){(core::num) → core::num};
+ core::num inTimes = i.{core::num::*}(n){(core::num) → core::num};
+ core::num inMod = i.{core::num::%}(n){(core::num) → core::num};
+ core::double ndPlus = n.{core::num::+}(d){(core::num) → core::double};
+ core::double ndMinus = n.{core::num::-}(d){(core::num) → core::double};
+ core::double ndTimes = n.{core::num::*}(d){(core::num) → core::double};
+ core::double ndMod = n.{core::num::%}(d){(core::num) → core::double};
+ core::num niPlus = n.{core::num::+}(i){(core::num) → core::num};
+ core::num niMinus = n.{core::num::-}(i){(core::num) → core::num};
+ core::num niTimes = n.{core::num::*}(i){(core::num) → core::num};
+ core::num niMod = n.{core::num::%}(i){(core::num) → core::num};
+ core::num nnPlus = n.{core::num::+}(n){(core::num) → core::num};
+ core::num nnMinus = n.{core::num::-}(n){(core::num) → core::num};
+ core::num nnTimes = n.{core::num::*}(n){(core::num) → core::num};
+ core::num nnMod = n.{core::num::%}(n){(core::num) → core::num};
}
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.modular.expect b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.modular.expect
index 09b660d..a7da493 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.modular.expect
@@ -1,45 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::num* n = 1;
- core::int* i = 1;
- core::double* d = 1.0;
- core::double* ddPlus = d.{core::double::+}(d){(core::num*) →* core::double*};
- core::double* ddMinus = d.{core::double::-}(d){(core::num*) →* core::double*};
- core::double* ddTimes = d.{core::double::*}(d){(core::num*) →* core::double*};
- core::double* ddMod = d.{core::double::%}(d){(core::num*) →* core::double*};
- core::double* diPlus = d.{core::double::+}(i){(core::num*) →* core::double*};
- core::double* diMinus = d.{core::double::-}(i){(core::num*) →* core::double*};
- core::double* diTimes = d.{core::double::*}(i){(core::num*) →* core::double*};
- core::double* diMod = d.{core::double::%}(i){(core::num*) →* core::double*};
- core::double* dnPlus = d.{core::double::+}(n){(core::num*) →* core::double*};
- core::double* dnMinus = d.{core::double::-}(n){(core::num*) →* core::double*};
- core::double* dnTimes = d.{core::double::*}(n){(core::num*) →* core::double*};
- core::double* dnMod = d.{core::double::%}(n){(core::num*) →* core::double*};
- core::double* idPlus = i.{core::num::+}(d){(core::num*) →* core::double*};
- core::double* idMinus = i.{core::num::-}(d){(core::num*) →* core::double*};
- core::double* idTimes = i.{core::num::*}(d){(core::num*) →* core::double*};
- core::double* idMod = i.{core::num::%}(d){(core::num*) →* core::double*};
- core::int* iiPlus = i.{core::num::+}(i){(core::num*) →* core::int*};
- core::int* iiMinus = i.{core::num::-}(i){(core::num*) →* core::int*};
- core::int* iiTimes = i.{core::num::*}(i){(core::num*) →* core::int*};
- core::int* iiMod = i.{core::num::%}(i){(core::num*) →* core::int*};
- core::num* inPlus = i.{core::num::+}(n){(core::num*) →* core::num*};
- core::num* inMinus = i.{core::num::-}(n){(core::num*) →* core::num*};
- core::num* inTimes = i.{core::num::*}(n){(core::num*) →* core::num*};
- core::num* inMod = i.{core::num::%}(n){(core::num*) →* core::num*};
- core::num* ndPlus = n.{core::num::+}(d){(core::num*) →* core::num*};
- core::num* ndMinus = n.{core::num::-}(d){(core::num*) →* core::num*};
- core::num* ndTimes = n.{core::num::*}(d){(core::num*) →* core::num*};
- core::num* ndMod = n.{core::num::%}(d){(core::num*) →* core::num*};
- core::num* niPlus = n.{core::num::+}(i){(core::num*) →* core::num*};
- core::num* niMinus = n.{core::num::-}(i){(core::num*) →* core::num*};
- core::num* niTimes = n.{core::num::*}(i){(core::num*) →* core::num*};
- core::num* niMod = n.{core::num::%}(i){(core::num*) →* core::num*};
- core::num* nnPlus = n.{core::num::+}(n){(core::num*) →* core::num*};
- core::num* nnMinus = n.{core::num::-}(n){(core::num*) →* core::num*};
- core::num* nnTimes = n.{core::num::*}(n){(core::num*) →* core::num*};
- core::num* nnMod = n.{core::num::%}(n){(core::num*) →* core::num*};
+ core::num n = 1;
+ core::int i = 1;
+ core::double d = 1.0;
+ core::double ddPlus = d.{core::double::+}(d){(core::num) → core::double};
+ core::double ddMinus = d.{core::double::-}(d){(core::num) → core::double};
+ core::double ddTimes = d.{core::double::*}(d){(core::num) → core::double};
+ core::double ddMod = d.{core::double::%}(d){(core::num) → core::double};
+ core::double diPlus = d.{core::double::+}(i){(core::num) → core::double};
+ core::double diMinus = d.{core::double::-}(i){(core::num) → core::double};
+ core::double diTimes = d.{core::double::*}(i){(core::num) → core::double};
+ core::double diMod = d.{core::double::%}(i){(core::num) → core::double};
+ core::double dnPlus = d.{core::double::+}(n){(core::num) → core::double};
+ core::double dnMinus = d.{core::double::-}(n){(core::num) → core::double};
+ core::double dnTimes = d.{core::double::*}(n){(core::num) → core::double};
+ core::double dnMod = d.{core::double::%}(n){(core::num) → core::double};
+ core::double idPlus = i.{core::num::+}(d){(core::num) → core::double};
+ core::double idMinus = i.{core::num::-}(d){(core::num) → core::double};
+ core::double idTimes = i.{core::num::*}(d){(core::num) → core::double};
+ core::double idMod = i.{core::num::%}(d){(core::num) → core::double};
+ core::int iiPlus = i.{core::num::+}(i){(core::num) → core::int};
+ core::int iiMinus = i.{core::num::-}(i){(core::num) → core::int};
+ core::int iiTimes = i.{core::num::*}(i){(core::num) → core::int};
+ core::int iiMod = i.{core::num::%}(i){(core::num) → core::int};
+ core::num inPlus = i.{core::num::+}(n){(core::num) → core::num};
+ core::num inMinus = i.{core::num::-}(n){(core::num) → core::num};
+ core::num inTimes = i.{core::num::*}(n){(core::num) → core::num};
+ core::num inMod = i.{core::num::%}(n){(core::num) → core::num};
+ core::double ndPlus = n.{core::num::+}(d){(core::num) → core::double};
+ core::double ndMinus = n.{core::num::-}(d){(core::num) → core::double};
+ core::double ndTimes = n.{core::num::*}(d){(core::num) → core::double};
+ core::double ndMod = n.{core::num::%}(d){(core::num) → core::double};
+ core::num niPlus = n.{core::num::+}(i){(core::num) → core::num};
+ core::num niMinus = n.{core::num::-}(i){(core::num) → core::num};
+ core::num niTimes = n.{core::num::*}(i){(core::num) → core::num};
+ core::num niMod = n.{core::num::%}(i){(core::num) → core::num};
+ core::num nnPlus = n.{core::num::+}(n){(core::num) → core::num};
+ core::num nnMinus = n.{core::num::-}(n){(core::num) → core::num};
+ core::num nnTimes = n.{core::num::*}(n){(core::num) → core::num};
+ core::num nnMod = n.{core::num::%}(n){(core::num) → core::num};
}
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.outline.expect b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.transformed.expect
index 09b660d..a7da493 100644
--- a/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/overloaded_int_operators.dart.weak.transformed.expect
@@ -1,45 +1,45 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::num* n = 1;
- core::int* i = 1;
- core::double* d = 1.0;
- core::double* ddPlus = d.{core::double::+}(d){(core::num*) →* core::double*};
- core::double* ddMinus = d.{core::double::-}(d){(core::num*) →* core::double*};
- core::double* ddTimes = d.{core::double::*}(d){(core::num*) →* core::double*};
- core::double* ddMod = d.{core::double::%}(d){(core::num*) →* core::double*};
- core::double* diPlus = d.{core::double::+}(i){(core::num*) →* core::double*};
- core::double* diMinus = d.{core::double::-}(i){(core::num*) →* core::double*};
- core::double* diTimes = d.{core::double::*}(i){(core::num*) →* core::double*};
- core::double* diMod = d.{core::double::%}(i){(core::num*) →* core::double*};
- core::double* dnPlus = d.{core::double::+}(n){(core::num*) →* core::double*};
- core::double* dnMinus = d.{core::double::-}(n){(core::num*) →* core::double*};
- core::double* dnTimes = d.{core::double::*}(n){(core::num*) →* core::double*};
- core::double* dnMod = d.{core::double::%}(n){(core::num*) →* core::double*};
- core::double* idPlus = i.{core::num::+}(d){(core::num*) →* core::double*};
- core::double* idMinus = i.{core::num::-}(d){(core::num*) →* core::double*};
- core::double* idTimes = i.{core::num::*}(d){(core::num*) →* core::double*};
- core::double* idMod = i.{core::num::%}(d){(core::num*) →* core::double*};
- core::int* iiPlus = i.{core::num::+}(i){(core::num*) →* core::int*};
- core::int* iiMinus = i.{core::num::-}(i){(core::num*) →* core::int*};
- core::int* iiTimes = i.{core::num::*}(i){(core::num*) →* core::int*};
- core::int* iiMod = i.{core::num::%}(i){(core::num*) →* core::int*};
- core::num* inPlus = i.{core::num::+}(n){(core::num*) →* core::num*};
- core::num* inMinus = i.{core::num::-}(n){(core::num*) →* core::num*};
- core::num* inTimes = i.{core::num::*}(n){(core::num*) →* core::num*};
- core::num* inMod = i.{core::num::%}(n){(core::num*) →* core::num*};
- core::num* ndPlus = n.{core::num::+}(d){(core::num*) →* core::num*};
- core::num* ndMinus = n.{core::num::-}(d){(core::num*) →* core::num*};
- core::num* ndTimes = n.{core::num::*}(d){(core::num*) →* core::num*};
- core::num* ndMod = n.{core::num::%}(d){(core::num*) →* core::num*};
- core::num* niPlus = n.{core::num::+}(i){(core::num*) →* core::num*};
- core::num* niMinus = n.{core::num::-}(i){(core::num*) →* core::num*};
- core::num* niTimes = n.{core::num::*}(i){(core::num*) →* core::num*};
- core::num* niMod = n.{core::num::%}(i){(core::num*) →* core::num*};
- core::num* nnPlus = n.{core::num::+}(n){(core::num*) →* core::num*};
- core::num* nnMinus = n.{core::num::-}(n){(core::num*) →* core::num*};
- core::num* nnTimes = n.{core::num::*}(n){(core::num*) →* core::num*};
- core::num* nnMod = n.{core::num::%}(n){(core::num*) →* core::num*};
+ core::num n = 1;
+ core::int i = 1;
+ core::double d = 1.0;
+ core::double ddPlus = d.{core::double::+}(d){(core::num) → core::double};
+ core::double ddMinus = d.{core::double::-}(d){(core::num) → core::double};
+ core::double ddTimes = d.{core::double::*}(d){(core::num) → core::double};
+ core::double ddMod = d.{core::double::%}(d){(core::num) → core::double};
+ core::double diPlus = d.{core::double::+}(i){(core::num) → core::double};
+ core::double diMinus = d.{core::double::-}(i){(core::num) → core::double};
+ core::double diTimes = d.{core::double::*}(i){(core::num) → core::double};
+ core::double diMod = d.{core::double::%}(i){(core::num) → core::double};
+ core::double dnPlus = d.{core::double::+}(n){(core::num) → core::double};
+ core::double dnMinus = d.{core::double::-}(n){(core::num) → core::double};
+ core::double dnTimes = d.{core::double::*}(n){(core::num) → core::double};
+ core::double dnMod = d.{core::double::%}(n){(core::num) → core::double};
+ core::double idPlus = i.{core::num::+}(d){(core::num) → core::double};
+ core::double idMinus = i.{core::num::-}(d){(core::num) → core::double};
+ core::double idTimes = i.{core::num::*}(d){(core::num) → core::double};
+ core::double idMod = i.{core::num::%}(d){(core::num) → core::double};
+ core::int iiPlus = i.{core::num::+}(i){(core::num) → core::int};
+ core::int iiMinus = i.{core::num::-}(i){(core::num) → core::int};
+ core::int iiTimes = i.{core::num::*}(i){(core::num) → core::int};
+ core::int iiMod = i.{core::num::%}(i){(core::num) → core::int};
+ core::num inPlus = i.{core::num::+}(n){(core::num) → core::num};
+ core::num inMinus = i.{core::num::-}(n){(core::num) → core::num};
+ core::num inTimes = i.{core::num::*}(n){(core::num) → core::num};
+ core::num inMod = i.{core::num::%}(n){(core::num) → core::num};
+ core::double ndPlus = n.{core::num::+}(d){(core::num) → core::double};
+ core::double ndMinus = n.{core::num::-}(d){(core::num) → core::double};
+ core::double ndTimes = n.{core::num::*}(d){(core::num) → core::double};
+ core::double ndMod = n.{core::num::%}(d){(core::num) → core::double};
+ core::num niPlus = n.{core::num::+}(i){(core::num) → core::num};
+ core::num niMinus = n.{core::num::-}(i){(core::num) → core::num};
+ core::num niTimes = n.{core::num::*}(i){(core::num) → core::num};
+ core::num niMod = n.{core::num::%}(i){(core::num) → core::num};
+ core::num nnPlus = n.{core::num::+}(n){(core::num) → core::num};
+ core::num nnMinus = n.{core::num::-}(n){(core::num) → core::num};
+ core::num nnTimes = n.{core::num::*}(n){(core::num) → core::num};
+ core::num nnMod = n.{core::num::%}(n){(core::num) → core::num};
}
diff --git a/pkg/front_end/testcases/inference/override_equals.dart b/pkg/front_end/testcases/inference/override_equals.dart
index 527dbf9..25ffadf 100644
--- a/pkg/front_end/testcases/inference/override_equals.dart
+++ b/pkg/front_end/testcases/inference/override_equals.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2018, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,25 +14,25 @@
class SubNullEquality extends NullEquality {
void test() {
- var /*@ type=bool* */ super_equals_self =
+ var /*@type=bool**/ super_equals_self =
super /*@target=NullEquality.==*/ == this;
- var /*@ type=bool* */ super_equals_null =
+ var /*@type=bool**/ super_equals_null =
super /*@target=NullEquality.==*/ == null;
- var /*@ type=bool* */ super_not_equals_self =
+ var /*@type=bool**/ super_not_equals_self =
super /*@target=NullEquality.==*/ != this;
- var /*@ type=bool* */ super_not_equals_null =
+ var /*@type=bool**/ super_not_equals_null =
super /*@target=NullEquality.==*/ != null;
}
}
test() {
NullEquality n = new NullEquality();
- var /*@ type=bool* */ equals_self = n /*@target=NullEquality.==*/ == n;
- var /*@ type=bool* */ equals_null = n == null;
- var /*@ type=bool* */ null_equals = null == n;
- var /*@ type=bool* */ not_equals_self = n /*@target=NullEquality.==*/ != n;
- var /*@ type=bool* */ not_equals_null = n != null;
- var /*@ type=bool* */ null_not_equals = null != n;
+ var /*@type=bool**/ equals_self = n /*@target=NullEquality.==*/ == n;
+ var /*@type=bool**/ equals_null = n == null;
+ var /*@type=bool**/ null_equals = null == n;
+ var /*@type=bool**/ not_equals_self = n /*@target=NullEquality.==*/ != n;
+ var /*@type=bool**/ not_equals_null = n != null;
+ var /*@type=bool**/ null_not_equals = null != n;
}
main() {
diff --git a/pkg/front_end/testcases/inference/override_equals.dart.weak.outline.expect b/pkg/front_end/testcases/inference/override_equals.dart.weak.outline.expect
index cf84f5e..b0f6144 100644
--- a/pkg/front_end/testcases/inference/override_equals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/override_equals.dart.weak.outline.expect
@@ -31,5 +31,5 @@
Extra constant evaluation status:
-Evaluated: StaticGet @ org-dartlang-testcase:///override_equals.dart:9:4 -> InstanceConstant(const _Override{})
+Evaluated: StaticGet @ org-dartlang-testcase:///override_equals.dart:11:4 -> InstanceConstant(const _Override{})
Extra constant evaluation: evaluated: 1, effectively constant: 1
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart
index e62b139..ebc84b6 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2019, 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.
-// @dart=2.9
+
class A<X> {
final foo = "bar";
}
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline.expect
index 8f4f760..60962ed 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {
final foo = "bar";
}
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline_modelled.expect
index a3ccc03..dbeb61d 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {
final foo = "bar";
}
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.expect
index d9defc4..9f2b2f3 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- final field core::String* foo = "bar";
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ final field core::String foo = "bar";
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends core::Object* = dynamic> extends self::A<self::B::Y*> {
- final field core::String* foo;
- constructor •(core::String* foo) → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends self::A<self::B::Y%> {
+ final field core::String foo;
+ constructor •(core::String foo) → self::B<self::B::Y%>
: self::B::foo = foo, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.modular.expect
index d9defc4..9f2b2f3 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- final field core::String* foo = "bar";
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ final field core::String foo = "bar";
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends core::Object* = dynamic> extends self::A<self::B::Y*> {
- final field core::String* foo;
- constructor •(core::String* foo) → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends self::A<self::B::Y%> {
+ final field core::String foo;
+ constructor •(core::String foo) → self::B<self::B::Y%>
: self::B::foo = foo, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.outline.expect
index 82a92a6..7e1dddf 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- final field core::String* foo;
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ final field core::String foo;
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends core::Object* = dynamic> extends self::A<self::B::Y*> {
- final field core::String* foo;
- constructor •(core::String* foo) → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends self::A<self::B::Y%> {
+ final field core::String foo;
+ constructor •(core::String foo) → self::B<self::B::Y%>
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.transformed.expect
index d9defc4..9f2b2f3 100644
--- a/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/override_inference_depends_on_field_inference.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- final field core::String* foo = "bar";
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ final field core::String foo = "bar";
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends core::Object* = dynamic> extends self::A<self::B::Y*> {
- final field core::String* foo;
- constructor •(core::String* foo) → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends self::A<self::B::Y%> {
+ final field core::String foo;
+ constructor •(core::String foo) → self::B<self::B::Y%>
: self::B::foo = foo, super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart
index 8fb352d..bcc1a18 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart
@@ -1,9 +1,9 @@
// Copyright (c) 2019, 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.
-// @dart=2.9
+
abstract class A<X> {
- void foo({Iterable<X> x});
+ void foo({Iterable<X>? x});
}
class B<Y> implements A<Y> {
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline.expect b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline.expect
index 2d86f4e..241417f 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
abstract class A<X> {
- void foo({Iterable<X> x});
+ void foo({Iterable<X>? x});
}
class B<Y> implements A<Y> {
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline_modelled.expect
index 2d86f4e..241417f 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
abstract class A<X> {
- void foo({Iterable<X> x});
+ void foo({Iterable<X>? x});
}
class B<Y> implements A<Y> {
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.expect b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.expect
index 4e88a92..5dfaa36 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+abstract class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract method foo({covariant-by-class core::Iterable<self::A::X*>* x = #C1}) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo({covariant-by-class core::Iterable<self::A::X%>? x = #C1}) → void;
}
-class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
: super core::Object::•()
;
- method foo({covariant-by-class core::Iterable<self::B::Y*>* x = #C1}) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo({covariant-by-class core::Iterable<self::B::Y%>? x = #C1}) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.modular.expect b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.modular.expect
index 4e88a92..5dfaa36 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.modular.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+abstract class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract method foo({covariant-by-class core::Iterable<self::A::X*>* x = #C1}) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo({covariant-by-class core::Iterable<self::A::X%>? x = #C1}) → void;
}
-class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
: super core::Object::•()
;
- method foo({covariant-by-class core::Iterable<self::B::Y*>* x = #C1}) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo({covariant-by-class core::Iterable<self::B::Y%>? x = #C1}) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.outline.expect b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.outline.expect
index ad8cba6..c15335c 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.outline.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+abstract class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract method foo({covariant-by-class core::Iterable<self::A::X*>* x = null}) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo({covariant-by-class core::Iterable<self::A::X%>? x = null}) → void;
}
-class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
;
- method foo({covariant-by-class core::Iterable<self::B::Y*>* x = null}) → void
+ method foo({covariant-by-class core::Iterable<self::B::Y%>? x = null}) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.transformed.expect
index 4e88a92..5dfaa36 100644
--- a/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/override_inference_with_type_parameters.dart.weak.transformed.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-abstract class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+abstract class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract method foo({covariant-by-class core::Iterable<self::A::X*>* x = #C1}) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo({covariant-by-class core::Iterable<self::A::X%>? x = #C1}) → void;
}
-class B<Y extends core::Object* = dynamic> extends core::Object implements self::A<self::B::Y*> {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends core::Object? = dynamic> extends core::Object implements self::A<self::B::Y%> {
+ synthetic constructor •() → self::B<self::B::Y%>
: super core::Object::•()
;
- method foo({covariant-by-class core::Iterable<self::B::Y*>* x = #C1}) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo({covariant-by-class core::Iterable<self::B::Y%>? x = #C1}) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart
index 224947f..4d2f8c2 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart
@@ -1,19 +1,19 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-void optional_toplevel([List<int> x = /*@ typeArgs=int* */ const []]) {}
+void optional_toplevel([List<int> x = /*@typeArgs=int*/ const []]) {}
-void named_toplevel({List<int> x: /*@ typeArgs=int* */ const []}) {}
+void named_toplevel({List<int> x: /*@typeArgs=int*/ const []}) {}
main() {
- void optional_local([List<int> x = /*@ typeArgs=int* */ const []]) {}
- void named_local({List<int> x: /*@ typeArgs=int* */ const []}) {}
- var /*@ type=([List<int*>*]) ->* Null */ optional_closure = /*@ returnType=Null */ (
- [List<int> x = /*@ typeArgs=int* */ const []]) {};
- var /*@ type=({x: List<int*>*}) ->* Null */ name_closure = /*@ returnType=Null */ (
- {List<int> x: /*@ typeArgs=int* */ const []}) {};
+ void optional_local([List<int> x = /*@typeArgs=int*/ const []]) {}
+ void named_local({List<int> x: /*@typeArgs=int*/ const []}) {}
+ var /*@type=([List<int>]) -> Null*/ optional_closure = /*@ returnType=Null */ (
+ [List<int> x = /*@typeArgs=int*/ const []]) {};
+ var /*@type=({x: List<int>}) -> Null*/ name_closure = /*@ returnType=Null */ (
+ {List<int> x: /*@typeArgs=int*/ const []}) {};
}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline.expect
index 6ef32b7..0f15872d 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void optional_toplevel([List<int> x = const []]) {}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline_modelled.expect
index 8c19d42..88548f3 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.expect
index b20f8c7..5a7148b 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method optional_toplevel([core::List<core::int*>* x = #C1]) → void {}
-static method named_toplevel({core::List<core::int*>* x = #C1}) → void {}
+static method optional_toplevel([core::List<core::int> x = #C1]) → void {}
+static method named_toplevel({core::List<core::int> x = #C1}) → void {}
static method main() → dynamic {
- function optional_local([core::List<core::int*>* x = #C1]) → void {}
- function named_local({core::List<core::int*>* x = #C1}) → void {}
- ([core::List<core::int*>*]) →* Null optional_closure = ([core::List<core::int*>* x = #C1]) → Null {};
- ({x: core::List<core::int*>*}) →* Null name_closure = ({core::List<core::int*>* x = #C1}) → Null {};
+ function optional_local([core::List<core::int> x = #C1]) → void {}
+ function named_local({core::List<core::int> x = #C1}) → void {}
+ ([core::List<core::int>]) → Null optional_closure = ([core::List<core::int> x = #C1]) → Null {};
+ ({x: core::List<core::int>}) → Null name_closure = ({core::List<core::int> x = #C1}) → Null {};
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.modular.expect
index b20f8c7..5a7148b 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method optional_toplevel([core::List<core::int*>* x = #C1]) → void {}
-static method named_toplevel({core::List<core::int*>* x = #C1}) → void {}
+static method optional_toplevel([core::List<core::int> x = #C1]) → void {}
+static method named_toplevel({core::List<core::int> x = #C1}) → void {}
static method main() → dynamic {
- function optional_local([core::List<core::int*>* x = #C1]) → void {}
- function named_local({core::List<core::int*>* x = #C1}) → void {}
- ([core::List<core::int*>*]) →* Null optional_closure = ([core::List<core::int*>* x = #C1]) → Null {};
- ({x: core::List<core::int*>*}) →* Null name_closure = ({core::List<core::int*>* x = #C1}) → Null {};
+ function optional_local([core::List<core::int> x = #C1]) → void {}
+ function named_local({core::List<core::int> x = #C1}) → void {}
+ ([core::List<core::int>]) → Null optional_closure = ([core::List<core::int> x = #C1]) → Null {};
+ ({x: core::List<core::int>}) → Null name_closure = ({core::List<core::int> x = #C1}) → Null {};
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.outline.expect
index 719b6e3..5632814 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method optional_toplevel([has-declared-initializer core::List<core::int*>* x]) → void
+static method optional_toplevel([has-declared-initializer core::List<core::int> x]) → void
;
-static method named_toplevel({has-declared-initializer core::List<core::int*>* x}) → void
+static method named_toplevel({has-declared-initializer core::List<core::int> x}) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.transformed.expect
index b20f8c7..5a7148b 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_downwards.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method optional_toplevel([core::List<core::int*>* x = #C1]) → void {}
-static method named_toplevel({core::List<core::int*>* x = #C1}) → void {}
+static method optional_toplevel([core::List<core::int> x = #C1]) → void {}
+static method named_toplevel({core::List<core::int> x = #C1}) → void {}
static method main() → dynamic {
- function optional_local([core::List<core::int*>* x = #C1]) → void {}
- function named_local({core::List<core::int*>* x = #C1}) → void {}
- ([core::List<core::int*>*]) →* Null optional_closure = ([core::List<core::int*>* x = #C1]) → Null {};
- ({x: core::List<core::int*>*}) →* Null name_closure = ({core::List<core::int*>* x = #C1}) → Null {};
+ function optional_local([core::List<core::int> x = #C1]) → void {}
+ function named_local({core::List<core::int> x = #C1}) → void {}
+ ([core::List<core::int>]) → Null optional_closure = ([core::List<core::int> x = #C1]) → Null {};
+ ({x: core::List<core::int>}) → Null name_closure = ({core::List<core::int> x = #C1}) → Null {};
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart
index df73b5c..ee24659 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,25 +10,25 @@
C.named(void func({T x})) {}
}
-void optional_toplevel([x = /*@ typeArgs=int* */ const [0]]) {}
+void optional_toplevel([x = /*@typeArgs=int*/ const [0]]) {}
-void named_toplevel({x: /*@ typeArgs=int* */ const [0]}) {}
+void named_toplevel({x: /*@typeArgs=int*/ const [0]}) {}
main() {
- void optional_local([/*@ type=dynamic */ x = /*@ typeArgs=int* */ const [0]]) {}
- void named_local({/*@ type=dynamic */ x: /*@ typeArgs=int* */ const [0]}) {}
- var /*@ type=C<dynamic>* */ c_optional_toplevel =
+ void optional_local([/*@ type=dynamic */ x = /*@typeArgs=int*/ const [0]]) {}
+ void named_local({/*@ type=dynamic */ x: /*@typeArgs=int*/ const [0]}) {}
+ var /*@type=C<dynamic>*/ c_optional_toplevel =
new /*@ typeArgs=dynamic */ C.optional(optional_toplevel);
- var /*@ type=C<dynamic>* */ c_named_toplevel =
+ var /*@type=C<dynamic>*/ c_named_toplevel =
new /*@ typeArgs=dynamic */ C.named(named_toplevel);
- var /*@ type=C<dynamic>* */ c_optional_local =
+ var /*@type=C<dynamic>*/ c_optional_local =
new /*@ typeArgs=dynamic */ C.optional(optional_local);
- var /*@ type=C<dynamic>* */ c_named_local =
+ var /*@type=C<dynamic>*/ c_named_local =
new /*@ typeArgs=dynamic */ C.named(named_local);
- var /*@ type=C<dynamic>* */ c_optional_closure =
- new /*@ typeArgs=dynamic */ C.optional(/*@ returnType=Null */ (
- [/*@ type=dynamic */ x = /*@ typeArgs=int* */ const [0]]) {});
- var /*@ type=C<dynamic>* */ c_named_closure = new /*@ typeArgs=dynamic */ C.named(
- /*@ returnType=Null */ (
- {/*@ type=dynamic */ x: /*@ typeArgs=int* */ const [0]}) {});
+ var /*@type=C<Object?>*/ c_optional_closure =
+ new /*@typeArgs=Object?*/ C.optional(/*@returnType=void*/ (
+ [/*@type=Object?*/ x = /*@typeArgs=int*/ const [0]]) {});
+ var /*@type=C<Object?>*/ c_named_closure = new /*@typeArgs=Object?*/ C.named(
+ /*@returnType=void*/ (
+ {/*@type=Object?*/ x: /*@typeArgs=int*/ const [0]}) {});
}
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline.expect
index 1acd773..99ee48d 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline_modelled.expect
index 06acc3ee..b07f840 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.expect
index d6fb1da..97cc063 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor optional(([self::C::T*]) →* void func) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor optional(([self::C::T%]) → void func) → self::C<self::C::T%>
: super core::Object::•() {}
- constructor named(({x: self::C::T*}) →* void func) → self::C<self::C::T*>*
+ constructor named(({x: self::C::T%}) → void func) → self::C<self::C::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method optional_toplevel([dynamic x = #C2]) → void {}
static method named_toplevel({dynamic x = #C2}) → void {}
static method main() → dynamic {
function optional_local([dynamic x = #C2]) → void {}
function named_local({dynamic x = #C2}) → void {}
- self::C<dynamic>* c_optional_toplevel = new self::C::optional<dynamic>(#C3);
- self::C<dynamic>* c_named_toplevel = new self::C::named<dynamic>(#C4);
- self::C<dynamic>* c_optional_local = new self::C::optional<dynamic>(optional_local);
- self::C<dynamic>* c_named_local = new self::C::named<dynamic>(named_local);
- self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → Null {});
- self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → Null {});
+ self::C<dynamic> c_optional_toplevel = new self::C::optional<dynamic>(#C3);
+ self::C<dynamic> c_named_toplevel = new self::C::named<dynamic>(#C4);
+ self::C<dynamic> c_optional_local = new self::C::optional<dynamic>(optional_local);
+ self::C<dynamic> c_named_local = new self::C::named<dynamic>(named_local);
+ self::C<core::Object?> c_optional_closure = new self::C::optional<core::Object?>(([core::Object? x = #C2]) → void {});
+ self::C<core::Object?> c_named_closure = new self::C::named<core::Object?>(({core::Object? x = #C2}) → void {});
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.modular.expect
index d6fb1da..97cc063 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.modular.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor optional(([self::C::T*]) →* void func) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor optional(([self::C::T%]) → void func) → self::C<self::C::T%>
: super core::Object::•() {}
- constructor named(({x: self::C::T*}) →* void func) → self::C<self::C::T*>*
+ constructor named(({x: self::C::T%}) → void func) → self::C<self::C::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method optional_toplevel([dynamic x = #C2]) → void {}
static method named_toplevel({dynamic x = #C2}) → void {}
static method main() → dynamic {
function optional_local([dynamic x = #C2]) → void {}
function named_local({dynamic x = #C2}) → void {}
- self::C<dynamic>* c_optional_toplevel = new self::C::optional<dynamic>(#C3);
- self::C<dynamic>* c_named_toplevel = new self::C::named<dynamic>(#C4);
- self::C<dynamic>* c_optional_local = new self::C::optional<dynamic>(optional_local);
- self::C<dynamic>* c_named_local = new self::C::named<dynamic>(named_local);
- self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → Null {});
- self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → Null {});
+ self::C<dynamic> c_optional_toplevel = new self::C::optional<dynamic>(#C3);
+ self::C<dynamic> c_named_toplevel = new self::C::named<dynamic>(#C4);
+ self::C<dynamic> c_optional_local = new self::C::optional<dynamic>(optional_local);
+ self::C<dynamic> c_named_local = new self::C::named<dynamic>(named_local);
+ self::C<core::Object?> c_optional_closure = new self::C::optional<core::Object?>(([core::Object? x = #C2]) → void {});
+ self::C<core::Object?> c_named_closure = new self::C::named<core::Object?>(({core::Object? x = #C2}) → void {});
}
constants {
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.outline.expect
index 1a51e70..1171080 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor optional(([self::C::T*]) →* void func) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor optional(([self::C::T%]) → void func) → self::C<self::C::T%>
;
- constructor named(({x: self::C::T*}) →* void func) → self::C<self::C::T*>*
+ constructor named(({x: self::C::T%}) → void func) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method optional_toplevel([has-declared-initializer dynamic x]) → void
;
diff --git a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.transformed.expect
index d6fb1da..97cc063 100644
--- a/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/parameter_defaults_upwards.dart.weak.transformed.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor optional(([self::C::T*]) →* void func) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor optional(([self::C::T%]) → void func) → self::C<self::C::T%>
: super core::Object::•() {}
- constructor named(({x: self::C::T*}) →* void func) → self::C<self::C::T*>*
+ constructor named(({x: self::C::T%}) → void func) → self::C<self::C::T%>
: super core::Object::•() {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method optional_toplevel([dynamic x = #C2]) → void {}
static method named_toplevel({dynamic x = #C2}) → void {}
static method main() → dynamic {
function optional_local([dynamic x = #C2]) → void {}
function named_local({dynamic x = #C2}) → void {}
- self::C<dynamic>* c_optional_toplevel = new self::C::optional<dynamic>(#C3);
- self::C<dynamic>* c_named_toplevel = new self::C::named<dynamic>(#C4);
- self::C<dynamic>* c_optional_local = new self::C::optional<dynamic>(optional_local);
- self::C<dynamic>* c_named_local = new self::C::named<dynamic>(named_local);
- self::C<dynamic>* c_optional_closure = new self::C::optional<dynamic>(([dynamic x = #C2]) → Null {});
- self::C<dynamic>* c_named_closure = new self::C::named<dynamic>(({dynamic x = #C2}) → Null {});
+ self::C<dynamic> c_optional_toplevel = new self::C::optional<dynamic>(#C3);
+ self::C<dynamic> c_named_toplevel = new self::C::named<dynamic>(#C4);
+ self::C<dynamic> c_optional_local = new self::C::optional<dynamic>(optional_local);
+ self::C<dynamic> c_named_local = new self::C::named<dynamic>(named_local);
+ self::C<core::Object?> c_optional_closure = new self::C::optional<core::Object?>(([core::Object? x = #C2]) → void {});
+ self::C<core::Object?> c_named_closure = new self::C::named<core::Object?>(({core::Object? x = #C2}) → void {});
}
constants {
diff --git a/pkg/front_end/testcases/inference/promote_bounds.dart b/pkg/front_end/testcases/inference/promote_bounds.dart
index ebf30d4..4974ce1 100644
--- a/pkg/front_end/testcases/inference/promote_bounds.dart
+++ b/pkg/front_end/testcases/inference/promote_bounds.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -20,7 +22,7 @@
}
if (a is C) {
// Promoted; we can now call bar.
- /*@ promotedType=f::T* & C* */ a. /*@target=C.bar*/ bar();
+ /*@promotedType=f::T* & C**/ a. /*@target=C.bar*/ bar();
}
}
diff --git a/pkg/front_end/testcases/inference/promote_from_logical_rhs.dart b/pkg/front_end/testcases/inference/promote_from_logical_rhs.dart
index 542e1fd..37ececd 100644
--- a/pkg/front_end/testcases/inference/promote_from_logical_rhs.dart
+++ b/pkg/front_end/testcases/inference/promote_from_logical_rhs.dart
@@ -1,13 +1,15 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test(Object a, bool b) {
if (b && a is int) {
- print(/*@ promotedType=int* */ a);
+ print(/*@promotedType=int**/ a);
}
}
diff --git a/pkg/front_end/testcases/inference/promotion_subtype_check.dart b/pkg/front_end/testcases/inference/promotion_subtype_check.dart
index c4283c0..3702cbd 100644
--- a/pkg/front_end/testcases/inference/promotion_subtype_check.dart
+++ b/pkg/front_end/testcases/inference/promotion_subtype_check.dart
@@ -1,15 +1,17 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void f(Object x) {
if (x is int) {
- if (/*@ promotedType=int* */ x is String) {
+ if (/*@promotedType=int**/ x is String) {
// Promotion blocked; String is not a subtype of int.
- var /*@ type=int* */ y = /*@ promotedType=int* */ x;
+ var /*@type=int**/ y = /*@promotedType=int**/ x;
}
}
}
@@ -17,7 +19,7 @@
void g(int x) {
if (x is String) {
// Promotion blocked; String is not a subtype of int.
- var /*@ type=int* */ y = x;
+ var /*@type=int**/ y = x;
}
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart
index 82df1a3..830f5f2 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
main() {
- var /*@ type=A* */ a = new A();
+ var /*@type=A*/ a = new A();
A b = a; // doesn't require down cast
print(a. /*@target=A.x*/ x); // doesn't require dynamic invoke
print(a. /*@target=A.x*/ x /*@target=num.+*/ +
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline.expect
index 36cb1e5..99e1514 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline_modelled.expect
index 36cb1e5..99e1514 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.expect
index 3e27040..0009f97 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A* a = new self::A::•();
- self::A* b = a;
- core::print(a.{self::A::x}{core::int*});
- core::print(a.{self::A::x}{core::int*}.{core::num::+}(2){(core::num*) →* core::int*});
+ self::A a = new self::A::•();
+ self::A b = a;
+ core::print(a.{self::A::x}{core::int});
+ core::print(a.{self::A::x}{core::int}.{core::num::+}(2){(core::num) → core::int});
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.modular.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.modular.expect
index 3e27040..0009f97 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A* a = new self::A::•();
- self::A* b = a;
- core::print(a.{self::A::x}{core::int*});
- core::print(a.{self::A::x}{core::int*}.{core::num::+}(2){(core::num*) →* core::int*});
+ self::A a = new self::A::•();
+ self::A b = a;
+ core::print(a.{self::A::x}{core::int});
+ core::print(a.{self::A::x}{core::int}.{core::num::+}(2){(core::num) → core::int});
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.outline.expect
index affd7cd..4d0ddba 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.transformed.expect
index 3e27040..0009f97 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A* a = new self::A::•();
- self::A* b = a;
- core::print(a.{self::A::x}{core::int*});
- core::print(a.{self::A::x}{core::int*}.{core::num::+}(2){(core::num*) →* core::int*});
+ self::A a = new self::A::•();
+ self::A b = a;
+ core::print(a.{self::A::x}{core::int});
+ core::print(a.{self::A::x}{core::int}.{core::num::+}(2){(core::num) → core::int});
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart
index fd2c5ab..e9e527f 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline.expect
index 36cb1e5..99e1514 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline_modelled.expect
index 36cb1e5..99e1514 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.expect
index 06148db..037b1ea 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
dynamic a = new self::A::•();
- self::A* b = a as{TypeError,ForDynamic} self::A*;
+ self::A b = a as{TypeError,ForDynamic,ForNonNullableByDefault} self::A;
core::print(a{dynamic}.x);
core::print(a{dynamic}.x{dynamic}.+(2));
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.modular.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.modular.expect
index 06148db..037b1ea 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
dynamic a = new self::A::•();
- self::A* b = a as{TypeError,ForDynamic} self::A*;
+ self::A b = a as{TypeError,ForDynamic,ForNonNullableByDefault} self::A;
core::print(a{dynamic}.x);
core::print(a{dynamic}.x{dynamic}.+(2));
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.outline.expect
index affd7cd..4d0ddba 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.transformed.expect
index 06148db..037b1ea 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_to_field_in_class_dynamic_warnings.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
dynamic a = new self::A::•();
- self::A* b = a as{TypeError,ForDynamic} self::A*;
+ self::A b = a as{TypeError,ForDynamic,ForNonNullableByDefault} self::A;
core::print(a{dynamic}.x);
core::print(a{dynamic}.x{dynamic}.+(2));
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart
index e87e17e..46acb1c 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
test5() {
- var /*@ type=A* */ a1 = new A();
+ var /*@type=A*/ a1 = new A();
a1. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ "hi";
A a2 = new A();
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline.expect
index ebcd777..40b29e6 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline_modelled.expect
index 98064a4..6ee5c2f 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.expect
index 81035d4..ede0e3d 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,29 +14,19 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test5() → dynamic {
- self::A* a1 = new self::A::•();
+ self::A a1 = new self::A::•();
a1.{self::A::x} = invalid-expression "pkg/front_end/testcases/inference/propagate_inference_transitively.dart:14:56: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a1. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
- self::A* a2 = new self::A::•();
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
+ self::A a2 = new self::A::•();
a2.{self::A::x} = invalid-expression "pkg/front_end/testcases/inference/propagate_inference_transitively.dart:17:56: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a2. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.modular.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.modular.expect
index 81035d4..ede0e3d 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,29 +14,19 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test5() → dynamic {
- self::A* a1 = new self::A::•();
+ self::A a1 = new self::A::•();
a1.{self::A::x} = invalid-expression "pkg/front_end/testcases/inference/propagate_inference_transitively.dart:14:56: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a1. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
- self::A* a2 = new self::A::•();
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
+ self::A a2 = new self::A::•();
a2.{self::A::x} = invalid-expression "pkg/front_end/testcases/inference/propagate_inference_transitively.dart:17:56: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a2. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.outline.expect
index d580646..076f1a5 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test5() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.transformed.expect
index 81035d4..ede0e3d 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -14,29 +14,19 @@
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 2;
- synthetic constructor •() → self::A*
+ field core::int x = 2;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method test5() → dynamic {
- self::A* a1 = new self::A::•();
+ self::A a1 = new self::A::•();
a1.{self::A::x} = invalid-expression "pkg/front_end/testcases/inference/propagate_inference_transitively.dart:14:56: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a1. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
- self::A* a2 = new self::A::•();
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
+ self::A a2 = new self::A::•();
a2.{self::A::x} = invalid-expression "pkg/front_end/testcases/inference/propagate_inference_transitively.dart:17:56: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
a2. /*@target=A.x*/ x = /*error:INVALID_ASSIGNMENT*/ \"hi\";
- ^" in "hi" as{TypeError} core::int*;
+ ^" in "hi" as{TypeError,ForNonNullableByDefault} core::int;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart
index c0b3b7a..761256f 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -22,7 +22,7 @@
}
void main() {
- var /*@ type=D* */ d1 = new D();
+ var /*@type=D*/ d1 = new D();
print(d1. /*@target=D.c*/ c. /*@target=C.b*/ b. /*@target=B.a*/ a
. /*@target=A.x*/ x);
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline.expect
index 34c4748..774ec6d 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline_modelled.expect
index 34c4748..774ec6d 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.expect
index 91157a6..89b8b38 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.expect
@@ -1,74 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 42;
- synthetic constructor •() → self::A*
+ field core::int x = 42;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a = new self::A::•();
- synthetic constructor •() → self::B*
+ field self::A a = new self::A::•();
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::B* b = new self::B::•();
- synthetic constructor •() → self::C*
+ field self::B b = new self::B::•();
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::C* c = new self::C::•();
- synthetic constructor •() → self::D*
+ field self::C c = new self::C::•();
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::D* d1 = new self::D::•();
- core::print(d1.{self::D::c}{self::C*}.{self::C::b}{self::B*}.{self::B::a}{self::A*}.{self::A::x}{core::int*});
- self::D* d2 = new self::D::•();
- core::print(d2.{self::D::c}{self::C*}.{self::C::b}{self::B*}.{self::B::a}{self::A*}.{self::A::x}{core::int*});
+ self::D d1 = new self::D::•();
+ core::print(d1.{self::D::c}{self::C}.{self::C::b}{self::B}.{self::B::a}{self::A}.{self::A::x}{core::int});
+ self::D d2 = new self::D::•();
+ core::print(d2.{self::D::c}{self::C}.{self::C::b}{self::B}.{self::B::a}{self::A}.{self::A::x}{core::int});
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.modular.expect
index 91157a6..89b8b38 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.modular.expect
@@ -1,74 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 42;
- synthetic constructor •() → self::A*
+ field core::int x = 42;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a = new self::A::•();
- synthetic constructor •() → self::B*
+ field self::A a = new self::A::•();
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::B* b = new self::B::•();
- synthetic constructor •() → self::C*
+ field self::B b = new self::B::•();
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::C* c = new self::C::•();
- synthetic constructor •() → self::D*
+ field self::C c = new self::C::•();
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::D* d1 = new self::D::•();
- core::print(d1.{self::D::c}{self::C*}.{self::C::b}{self::B*}.{self::B::a}{self::A*}.{self::A::x}{core::int*});
- self::D* d2 = new self::D::•();
- core::print(d2.{self::D::c}{self::C*}.{self::C::b}{self::B*}.{self::B::a}{self::A*}.{self::A::x}{core::int*});
+ self::D d1 = new self::D::•();
+ core::print(d1.{self::D::c}{self::C}.{self::C::b}{self::B}.{self::B::a}{self::A}.{self::A::x}{core::int});
+ self::D d2 = new self::D::•();
+ core::print(d2.{self::D::c}{self::C}.{self::C::b}{self::B}.{self::B::a}{self::A}.{self::A::x}{core::int});
}
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.outline.expect
index 26547fa..b1bd458 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.outline.expect
@@ -1,66 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::A*
+ field core::int x;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a;
- synthetic constructor •() → self::B*
+ field self::A a;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::B* b;
- synthetic constructor •() → self::C*
+ field self::B b;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::C* c;
- synthetic constructor •() → self::D*
+ field self::C c;
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void
;
diff --git a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.transformed.expect
index 91157a6..89b8b38 100644
--- a/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/propagate_inference_transitively2.dart.weak.transformed.expect
@@ -1,74 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* x = 42;
- synthetic constructor •() → self::A*
+ field core::int x = 42;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a = new self::A::•();
- synthetic constructor •() → self::B*
+ field self::A a = new self::A::•();
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::B* b = new self::B::•();
- synthetic constructor •() → self::C*
+ field self::B b = new self::B::•();
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- field self::C* c = new self::C::•();
- synthetic constructor •() → self::D*
+ field self::C c = new self::C::•();
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → void {
- self::D* d1 = new self::D::•();
- core::print(d1.{self::D::c}{self::C*}.{self::C::b}{self::B*}.{self::B::a}{self::A*}.{self::A::x}{core::int*});
- self::D* d2 = new self::D::•();
- core::print(d2.{self::D::c}{self::C*}.{self::C::b}{self::B*}.{self::B::a}{self::A*}.{self::A::x}{core::int*});
+ self::D d1 = new self::D::•();
+ core::print(d1.{self::D::c}{self::C}.{self::C::b}{self::B}.{self::B::a}{self::A}.{self::A::x}{core::int});
+ self::D d2 = new self::D::•();
+ core::print(d2.{self::D::c}{self::C}.{self::C::b}{self::B}.{self::B::a}{self::A}.{self::A::x}{core::int});
}
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart b/pkg/front_end/testcases/inference/propagate_variable_get.dart
index 4f0c207..6765072 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=int* */ a = 0;
- var /*@ type=int* */ b = a;
+ var /*@type=int*/ a = 0;
+ var /*@type=int*/ b = a;
}
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline.expect b/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.expect b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.expect
index ba60f97..10ed85d 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::int* a = 0;
- core::int* b = a;
+ core::int a = 0;
+ core::int b = a;
}
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.modular.expect b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.modular.expect
index ba60f97..10ed85d 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::int* a = 0;
- core::int* b = a;
+ core::int a = 0;
+ core::int b = a;
}
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.outline.expect b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.transformed.expect
index ba60f97..10ed85d 100644
--- a/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/propagate_variable_get.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::int* a = 0;
- core::int* b = a;
+ core::int a = 0;
+ core::int b = a;
}
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart b/pkg/front_end/testcases/inference/property_get_toplevel.dart
index f2dcbfd..7a41275 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,7 +13,7 @@
C c = new C();
var function_ref = c. /*@target=C.function*/ function;
-var function_ref_list = /*@ typeArgs=() ->* int* */ [
+var function_ref_list = /*@typeArgs=() -> int*/ [
c. /*@target=C.function*/ function
];
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline.expect
index 8b55787..46d302a 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline_modelled.expect
index 26ae364..cb636c41 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
C c = new C();
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.expect
index 4c93980..a22dc68 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field = 0;
- synthetic constructor •() → self::C*
+ field core::int field = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get getter() → core::int*
+ get getter() → core::int
return 0;
- method function() → core::int*
+ method function() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field () →* core::int* function_ref = self::c.{self::C::function}{() →* core::int*};
-static field core::List<() →* core::int*>* function_ref_list = <() →* core::int*>[self::c.{self::C::function}{() →* core::int*}];
+static field self::C c = new self::C::•();
+static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
+static field core::List<() → core::int> function_ref_list = <() → core::int>[self::c.{self::C::function}{() → core::int}];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.modular.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.modular.expect
index 4c93980..a22dc68 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.modular.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field = 0;
- synthetic constructor •() → self::C*
+ field core::int field = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get getter() → core::int*
+ get getter() → core::int
return 0;
- method function() → core::int*
+ method function() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field () →* core::int* function_ref = self::c.{self::C::function}{() →* core::int*};
-static field core::List<() →* core::int*>* function_ref_list = <() →* core::int*>[self::c.{self::C::function}{() →* core::int*}];
+static field self::C c = new self::C::•();
+static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
+static field core::List<() → core::int> function_ref_list = <() → core::int>[self::c.{self::C::function}{() → core::int}];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.outline.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.outline.expect
index e6e57bd..c8dd1db 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field;
- synthetic constructor •() → self::C*
+ field core::int field;
+ synthetic constructor •() → self::C
;
- get getter() → core::int*
+ get getter() → core::int
;
- method function() → core::int*
+ method function() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field () →* core::int* function_ref;
-static field core::List<() →* core::int*>* function_ref_list;
+static field self::C c;
+static field () → core::int function_ref;
+static field core::List<() → core::int> function_ref_list;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.transformed.expect
index eab5b2e..c1d7fe4 100644
--- a/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/property_get_toplevel.dart.weak.transformed.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field = 0;
- synthetic constructor •() → self::C*
+ field core::int field = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get getter() → core::int*
+ get getter() → core::int
return 0;
- method function() → core::int*
+ method function() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field () →* core::int* function_ref = self::c.{self::C::function}{() →* core::int*};
-static field core::List<() →* core::int*>* function_ref_list = core::_GrowableList::_literal1<() →* core::int*>(self::c.{self::C::function}{() →* core::int*});
+static field self::C c = new self::C::•();
+static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
+static field core::List<() → core::int> function_ref_list = core::_GrowableList::_literal1<() → core::int>(self::c.{self::C::function}{() → core::int});
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set.dart b/pkg/front_end/testcases/inference/property_set.dart
index d8af34b..4ce5880 100644
--- a/pkg/front_end/testcases/inference/property_set.dart
+++ b/pkg/front_end/testcases/inference/property_set.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -14,34 +16,34 @@
A<int> a_int = new A<int>();
A<Object> a_object = new A<Object>();
A<dynamic> a_dynamic = new A<dynamic>();
- var /*@ type=List<int*>* */ x_int =
- a_int. /*@target=A.x*/ x = /*@ typeArgs=int* */ [0];
- var /*@ type=List<int*>* */ y_int =
- a_int. /*@target=A.y*/ y = /*@ typeArgs=int* */ [0];
- var /*@ type=List<Object*>* */ x_object =
- a_object. /*@target=A.x*/ x = /*@ typeArgs=Object* */ [0];
- var /*@ type=List<Object*>* */ y_object =
- a_object. /*@target=A.y*/ y = /*@ typeArgs=Object* */ [0];
- var /*@ type=List<dynamic>* */ x_dynamic =
+ var /*@type=List<int*>**/ x_int =
+ a_int. /*@target=A.x*/ x = /*@typeArgs=int**/ [0];
+ var /*@type=List<int*>**/ y_int =
+ a_int. /*@target=A.y*/ y = /*@typeArgs=int**/ [0];
+ var /*@type=List<Object*>**/ x_object =
+ a_object. /*@target=A.x*/ x = /*@typeArgs=Object**/ [0];
+ var /*@type=List<Object*>**/ y_object =
+ a_object. /*@target=A.y*/ y = /*@typeArgs=Object**/ [0];
+ var /*@type=List<dynamic>**/ x_dynamic =
a_dynamic. /*@target=A.x*/ x = /*@ typeArgs=dynamic */ [0];
- var /*@ type=List<dynamic>* */ y_dynamic =
+ var /*@type=List<dynamic>**/ y_dynamic =
a_dynamic. /*@target=A.y*/ y = /*@ typeArgs=dynamic */ [0];
- var /*@ type=List<int*>* */ x_int_explicit = a_int. /*@target=A.x*/ x = <int>[0];
- var /*@ type=List<int*>* */ y_int_explicit = a_int. /*@target=A.y*/ y = <int>[0];
- var /*@ type=List<int*>* */ x_object_explicit =
+ var /*@type=List<int*>**/ x_int_explicit = a_int. /*@target=A.x*/ x = <int>[0];
+ var /*@type=List<int*>**/ y_int_explicit = a_int. /*@target=A.y*/ y = <int>[0];
+ var /*@type=List<int*>**/ x_object_explicit =
a_object. /*@target=A.x*/ x = <int>[0];
- var /*@ type=List<int*>* */ y_object_explicit =
+ var /*@type=List<int*>**/ y_object_explicit =
a_object. /*@target=A.y*/ y = <int>[0];
- var /*@ type=List<int*>* */ x_dynamic_explicit =
+ var /*@type=List<int*>**/ x_dynamic_explicit =
a_dynamic. /*@target=A.x*/ x = <int>[0];
- var /*@ type=List<int*>* */ y_dynamic_explicit =
+ var /*@type=List<int*>**/ y_dynamic_explicit =
a_dynamic. /*@target=A.y*/ y = <int>[0];
- List<int> x_int_downward = a_int. /*@target=A.x*/ x = /*@ typeArgs=int* */ [0];
- List<int> y_int_downward = a_int. /*@target=A.y*/ y = /*@ typeArgs=int* */ [0];
+ List<int> x_int_downward = a_int. /*@target=A.x*/ x = /*@typeArgs=int**/ [0];
+ List<int> y_int_downward = a_int. /*@target=A.y*/ y = /*@typeArgs=int**/ [0];
List<int> x_object_downward =
- a_object. /*@target=A.x*/ x = /*@ typeArgs=Object* */ [0];
+ a_object. /*@target=A.x*/ x = /*@typeArgs=Object**/ [0];
List<int> y_object_downward =
- a_object. /*@target=A.y*/ y = /*@ typeArgs=Object* */ [0];
+ a_object. /*@target=A.y*/ y = /*@typeArgs=Object**/ [0];
List<int> x_dynamic_downward =
a_dynamic. /*@target=A.x*/ x = /*@ typeArgs=dynamic */ [0];
List<int> y_dynamic_downward =
diff --git a/pkg/front_end/testcases/inference/property_set2.dart b/pkg/front_end/testcases/inference/property_set2.dart
new file mode 100644
index 0000000..6a065da
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart
@@ -0,0 +1,43 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A<T> {
+ List<T> x = throw '';
+ void set y(List<T> value) {}
+}
+
+test() {
+ A<int> a_int = new A<int>();
+ A<Object> a_object = new A<Object>();
+ A<dynamic> a_dynamic = new A<dynamic>();
+ var /*@type=List<int>*/ x_int =
+ a_int. /*@target=A.x*/ x = /*@typeArgs=int*/ [0];
+ var /*@type=List<int>*/ y_int =
+ a_int. /*@target=A.y*/ y = /*@typeArgs=int*/ [0];
+ var /*@type=List<Object>*/ x_object =
+ a_object. /*@target=A.x*/ x = /*@typeArgs=Object*/ [0];
+ var /*@type=List<Object>*/ y_object =
+ a_object. /*@target=A.y*/ y = /*@typeArgs=Object*/ [0];
+ var /*@type=List<dynamic>*/ x_dynamic =
+ a_dynamic. /*@target=A.x*/ x = /*@ typeArgs=dynamic */ [0];
+ var /*@type=List<dynamic>*/ y_dynamic =
+ a_dynamic. /*@target=A.y*/ y = /*@ typeArgs=dynamic */ [0];
+ var /*@type=List<int>*/ x_int_explicit = a_int. /*@target=A.x*/ x = <int>[0];
+ var /*@type=List<int>*/ y_int_explicit = a_int. /*@target=A.y*/ y = <int>[0];
+ var /*@type=List<int>*/ x_object_explicit =
+ a_object. /*@target=A.x*/ x = <int>[0];
+ var /*@type=List<int>*/ y_object_explicit =
+ a_object. /*@target=A.y*/ y = <int>[0];
+ var /*@type=List<int>*/ x_dynamic_explicit =
+ a_dynamic. /*@target=A.x*/ x = <int>[0];
+ var /*@type=List<int>*/ y_dynamic_explicit =
+ a_dynamic. /*@target=A.y*/ y = <int>[0];
+ List<int> x_int_downward = a_int. /*@target=A.x*/ x = /*@typeArgs=int*/ [0];
+ List<int> y_int_downward = a_int. /*@target=A.y*/ y = /*@typeArgs=int*/ [0];
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/property_set2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/property_set2.dart.textual_outline.expect
new file mode 100644
index 0000000..dbde52b
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+library test;
+
+class A<T> {
+ List<T> x = throw '';
+ void set y(List<T> value) {}
+}
+
+test() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/property_set2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/property_set2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..bc34eb3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+library test;
+
+class A<T> {
+ List<T> x = throw '';
+ void set y(List<T> value) {}
+}
+
+main() {}
+test() {}
diff --git a/pkg/front_end/testcases/inference/property_set2.dart.weak.expect b/pkg/front_end/testcases/inference/property_set2.dart.weak.expect
new file mode 100644
index 0000000..660c23e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart.weak.expect
@@ -0,0 +1,31 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%> x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
+ : super core::Object::•()
+ ;
+ set y(covariant-by-class core::List<self::A::T%> value) → void {}
+}
+static method test() → dynamic {
+ self::A<core::int> a_int = new self::A::•<core::int>();
+ self::A<core::Object> a_object = new self::A::•<core::Object>();
+ self::A<dynamic> a_dynamic = new self::A::•<dynamic>();
+ core::List<core::int> x_int = a_int.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_int = a_int.{self::A::y} = <core::int>[0];
+ core::List<core::Object> x_object = a_object.{self::A::x} = <core::Object>[0];
+ core::List<core::Object> y_object = a_object.{self::A::y} = <core::Object>[0];
+ core::List<dynamic> x_dynamic = a_dynamic.{self::A::x} = <dynamic>[0];
+ core::List<dynamic> y_dynamic = a_dynamic.{self::A::y} = <dynamic>[0];
+ core::List<core::int> x_int_explicit = a_int.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_int_explicit = a_int.{self::A::y} = <core::int>[0];
+ core::List<core::int> x_object_explicit = a_object.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_object_explicit = a_object.{self::A::y} = <core::int>[0];
+ core::List<core::int> x_dynamic_explicit = a_dynamic.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_dynamic_explicit = a_dynamic.{self::A::y} = <core::int>[0];
+ core::List<core::int> x_int_downward = a_int.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_int_downward = a_int.{self::A::y} = <core::int>[0];
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/property_set2.dart.weak.modular.expect
new file mode 100644
index 0000000..660c23e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart.weak.modular.expect
@@ -0,0 +1,31 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%> x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
+ : super core::Object::•()
+ ;
+ set y(covariant-by-class core::List<self::A::T%> value) → void {}
+}
+static method test() → dynamic {
+ self::A<core::int> a_int = new self::A::•<core::int>();
+ self::A<core::Object> a_object = new self::A::•<core::Object>();
+ self::A<dynamic> a_dynamic = new self::A::•<dynamic>();
+ core::List<core::int> x_int = a_int.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_int = a_int.{self::A::y} = <core::int>[0];
+ core::List<core::Object> x_object = a_object.{self::A::x} = <core::Object>[0];
+ core::List<core::Object> y_object = a_object.{self::A::y} = <core::Object>[0];
+ core::List<dynamic> x_dynamic = a_dynamic.{self::A::x} = <dynamic>[0];
+ core::List<dynamic> y_dynamic = a_dynamic.{self::A::y} = <dynamic>[0];
+ core::List<core::int> x_int_explicit = a_int.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_int_explicit = a_int.{self::A::y} = <core::int>[0];
+ core::List<core::int> x_object_explicit = a_object.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_object_explicit = a_object.{self::A::y} = <core::int>[0];
+ core::List<core::int> x_dynamic_explicit = a_dynamic.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_dynamic_explicit = a_dynamic.{self::A::y} = <core::int>[0];
+ core::List<core::int> x_int_downward = a_int.{self::A::x} = <core::int>[0];
+ core::List<core::int> y_int_downward = a_int.{self::A::y} = <core::int>[0];
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/property_set2.dart.weak.outline.expect
new file mode 100644
index 0000000..8c0595d
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart.weak.outline.expect
@@ -0,0 +1,15 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%> x;
+ synthetic constructor •() → self::A<self::A::T%>
+ ;
+ set y(covariant-by-class core::List<self::A::T%> value) → void
+ ;
+}
+static method test() → dynamic
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/property_set2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/property_set2.dart.weak.transformed.expect
new file mode 100644
index 0000000..512d3b5
--- /dev/null
+++ b/pkg/front_end/testcases/inference/property_set2.dart.weak.transformed.expect
@@ -0,0 +1,31 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field core::List<self::A::T%> x = throw "";
+ synthetic constructor •() → self::A<self::A::T%>
+ : super core::Object::•()
+ ;
+ set y(covariant-by-class core::List<self::A::T%> value) → void {}
+}
+static method test() → dynamic {
+ self::A<core::int> a_int = new self::A::•<core::int>();
+ self::A<core::Object> a_object = new self::A::•<core::Object>();
+ self::A<dynamic> a_dynamic = new self::A::•<dynamic>();
+ core::List<core::int> x_int = a_int.{self::A::x} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> y_int = a_int.{self::A::y} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::Object> x_object = a_object.{self::A::x} = core::_GrowableList::_literal1<core::Object>(0);
+ core::List<core::Object> y_object = a_object.{self::A::y} = core::_GrowableList::_literal1<core::Object>(0);
+ core::List<dynamic> x_dynamic = a_dynamic.{self::A::x} = core::_GrowableList::_literal1<dynamic>(0);
+ core::List<dynamic> y_dynamic = a_dynamic.{self::A::y} = core::_GrowableList::_literal1<dynamic>(0);
+ core::List<core::int> x_int_explicit = a_int.{self::A::x} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> y_int_explicit = a_int.{self::A::y} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> x_object_explicit = a_object.{self::A::x} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> y_object_explicit = a_object.{self::A::y} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> x_dynamic_explicit = a_dynamic.{self::A::x} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> y_dynamic_explicit = a_dynamic.{self::A::y} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> x_int_downward = a_int.{self::A::x} = core::_GrowableList::_literal1<core::int>(0);
+ core::List<core::int> y_int_downward = a_int.{self::A::y} = core::_GrowableList::_literal1<core::int>(0);
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart b/pkg/front_end/testcases/inference/property_set_bad_setter.dart
index 3075b83..22eb876 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +10,7 @@
}
void f(A a) {
- var /*@ type=int* */ x = a. /*@target=A.x*/ x = 0;
+ var /*@type=int*/ x = a. /*@target=A.x*/ x = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline.expect
index cf3ef2f..6eadbb2 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline_modelled.expect
index 29a7b77..3df6a19 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.expect b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.expect
index 3e05504..515ee5b 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,7 +10,7 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
set x(dynamic #synthetic) → void {
@@ -19,18 +19,8 @@
^";
{}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::A* a) → void {
- core::int* x = a.{self::A::x} = 0;
+static method f(self::A a) → void {
+ core::int x = a.{self::A::x} = 0;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.modular.expect
index 3e05504..515ee5b 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,7 +10,7 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
set x(dynamic #synthetic) → void {
@@ -19,18 +19,8 @@
^";
{}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::A* a) → void {
- core::int* x = a.{self::A::x} = 0;
+static method f(self::A a) → void {
+ core::int x = a.{self::A::x} = 0;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.outline.expect
index 9e79f00..4826b8e 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
set x(dynamic #synthetic) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::A* a) → void
+static method f(self::A a) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.transformed.expect
index 3e05504..515ee5b 100644
--- a/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/property_set_bad_setter.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,7 +10,7 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
set x(dynamic #synthetic) → void {
@@ -19,18 +19,8 @@
^";
{}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f(self::A* a) → void {
- core::int* x = a.{self::A::x} = 0;
+static method f(self::A a) → void {
+ core::int x = a.{self::A::x} = 0;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart b/pkg/front_end/testcases/inference/recursive_generic_function.dart
index 7d21559..141df10 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void _mergeSort<T>(
T Function(T) list, int compare(T a, T b), T Function(T) target) {
- /*@ typeArgs=_mergeSort::T* */ _mergeSort(list, compare, target);
- /*@ typeArgs=_mergeSort::T* */ _mergeSort(list, compare, list);
- /*@ typeArgs=_mergeSort::T* */ _mergeSort(target, compare, target);
- /*@ typeArgs=_mergeSort::T* */ _mergeSort(target, compare, list);
+ /*@typeArgs=_mergeSort::T%*/ _mergeSort(list, compare, target);
+ /*@typeArgs=_mergeSort::T%*/ _mergeSort(list, compare, list);
+ /*@typeArgs=_mergeSort::T%*/ _mergeSort(target, compare, target);
+ /*@typeArgs=_mergeSort::T%*/ _mergeSort(target, compare, list);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline.expect b/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline.expect
index 8fcc501..f07684b 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void _mergeSort<T>(
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline_modelled.expect
index 0d9a760..0f5ec10 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.expect b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.expect
index d617cd4..fbf4644 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method _mergeSort<T extends core::Object* = dynamic>((self::_mergeSort::T*) →* self::_mergeSort::T* list, (self::_mergeSort::T*, self::_mergeSort::T*) →* core::int* compare, (self::_mergeSort::T*) →* self::_mergeSort::T* target) → void {
- self::_mergeSort<self::_mergeSort::T*>(list, compare, target);
- self::_mergeSort<self::_mergeSort::T*>(list, compare, list);
- self::_mergeSort<self::_mergeSort::T*>(target, compare, target);
- self::_mergeSort<self::_mergeSort::T*>(target, compare, list);
+static method _mergeSort<T extends core::Object? = dynamic>((self::_mergeSort::T%) → self::_mergeSort::T% list, (self::_mergeSort::T%, self::_mergeSort::T%) → core::int compare, (self::_mergeSort::T%) → self::_mergeSort::T% target) → void {
+ self::_mergeSort<self::_mergeSort::T%>(list, compare, target);
+ self::_mergeSort<self::_mergeSort::T%>(list, compare, list);
+ self::_mergeSort<self::_mergeSort::T%>(target, compare, target);
+ self::_mergeSort<self::_mergeSort::T%>(target, compare, list);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.modular.expect b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.modular.expect
index d617cd4..fbf4644 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method _mergeSort<T extends core::Object* = dynamic>((self::_mergeSort::T*) →* self::_mergeSort::T* list, (self::_mergeSort::T*, self::_mergeSort::T*) →* core::int* compare, (self::_mergeSort::T*) →* self::_mergeSort::T* target) → void {
- self::_mergeSort<self::_mergeSort::T*>(list, compare, target);
- self::_mergeSort<self::_mergeSort::T*>(list, compare, list);
- self::_mergeSort<self::_mergeSort::T*>(target, compare, target);
- self::_mergeSort<self::_mergeSort::T*>(target, compare, list);
+static method _mergeSort<T extends core::Object? = dynamic>((self::_mergeSort::T%) → self::_mergeSort::T% list, (self::_mergeSort::T%, self::_mergeSort::T%) → core::int compare, (self::_mergeSort::T%) → self::_mergeSort::T% target) → void {
+ self::_mergeSort<self::_mergeSort::T%>(list, compare, target);
+ self::_mergeSort<self::_mergeSort::T%>(list, compare, list);
+ self::_mergeSort<self::_mergeSort::T%>(target, compare, target);
+ self::_mergeSort<self::_mergeSort::T%>(target, compare, list);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.outline.expect b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.outline.expect
index 57132d9..a3720ab 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method _mergeSort<T extends core::Object* = dynamic>((self::_mergeSort::T*) →* self::_mergeSort::T* list, (self::_mergeSort::T*, self::_mergeSort::T*) →* core::int* compare, (self::_mergeSort::T*) →* self::_mergeSort::T* target) → void
+static method _mergeSort<T extends core::Object? = dynamic>((self::_mergeSort::T%) → self::_mergeSort::T% list, (self::_mergeSort::T%, self::_mergeSort::T%) → core::int compare, (self::_mergeSort::T%) → self::_mergeSort::T% target) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.transformed.expect
index d617cd4..fbf4644 100644
--- a/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/recursive_generic_function.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method _mergeSort<T extends core::Object* = dynamic>((self::_mergeSort::T*) →* self::_mergeSort::T* list, (self::_mergeSort::T*, self::_mergeSort::T*) →* core::int* compare, (self::_mergeSort::T*) →* self::_mergeSort::T* target) → void {
- self::_mergeSort<self::_mergeSort::T*>(list, compare, target);
- self::_mergeSort<self::_mergeSort::T*>(list, compare, list);
- self::_mergeSort<self::_mergeSort::T*>(target, compare, target);
- self::_mergeSort<self::_mergeSort::T*>(target, compare, list);
+static method _mergeSort<T extends core::Object? = dynamic>((self::_mergeSort::T%) → self::_mergeSort::T% list, (self::_mergeSort::T%, self::_mergeSort::T%) → core::int compare, (self::_mergeSort::T%) → self::_mergeSort::T% target) → void {
+ self::_mergeSort<self::_mergeSort::T%>(list, compare, target);
+ self::_mergeSort<self::_mergeSort::T%>(list, compare, list);
+ self::_mergeSort<self::_mergeSort::T%>(target, compare, target);
+ self::_mergeSort<self::_mergeSort::T%>(target, compare, list);
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart b/pkg/front_end/testcases/inference/reference_to_typedef.dart
index a7f5bce..59ec3b8 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline.expect
index cd84e0a..1868d7f 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef void F();
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline_modelled.expect
index e5cc853..808266d 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
final x = F;
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.expect
index 1c7e0ba..fafacad 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Type* x = #C1;
+typedef F = () → void;
+static final field core::Type x = #C1;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.modular.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.modular.expect
index 1c7e0ba..fafacad 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Type* x = #C1;
+typedef F = () → void;
+static final field core::Type x = #C1;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.outline.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.outline.expect
index a1ba81e..84bd88c 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Type* x;
+typedef F = () → void;
+static final field core::Type x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.transformed.expect
index 1c7e0ba..fafacad 100644
--- a/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/reference_to_typedef.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* void;
-static final field core::Type* x = #C1;
+typedef F = () → void;
+static final field core::Type x = #C1;
static method main() → dynamic {}
constants {
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart
index 7f43a40..5d5d77a 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T extends num> {
- T a;
+ T a = throw '';
void op(double b) {
double r1 = /*@target=C.a*/ a /*@target=num.+*/ + b;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline.expect
index 971cc80..370c31a 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C<T extends num> {
- T a;
+ T a = throw '';
void op(double b) {}
}
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline_modelled.expect
index 971cc80..370c31a 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C<T extends num> {
- T a;
+ T a = throw '';
void op(double b) {}
}
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect
index a3cae75..60f1a5a 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- covariant-by-class field self::C::T* a = null;
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ covariant-by-class field self::C::T a = throw "";
+ synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
- method op(core::double* b) → void {
- core::double* r1 = this.{self::C::a}{self::C::T*}.{core::num::+}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r2 = this.{self::C::a}{self::C::T*}.{core::num::-}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r3 = this.{self::C::a}{self::C::T*}.{core::num::*}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r4 = this.{self::C::a}{self::C::T*}.{core::num::/}(b){(core::num*) →* core::double*};
+ method op(core::double b) → void {
+ core::double r1 = this.{self::C::a}{self::C::T}.{core::num::+}(b){(core::num) → core::double};
+ core::double r2 = this.{self::C::a}{self::C::T}.{core::num::-}(b){(core::num) → core::double};
+ core::double r3 = this.{self::C::a}{self::C::T}.{core::num::*}(b){(core::num) → core::double};
+ core::double r4 = this.{self::C::a}{self::C::T}.{core::num::/}(b){(core::num) → core::double};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.modular.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.modular.expect
index a3cae75..60f1a5a 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- covariant-by-class field self::C::T* a = null;
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ covariant-by-class field self::C::T a = throw "";
+ synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
- method op(core::double* b) → void {
- core::double* r1 = this.{self::C::a}{self::C::T*}.{core::num::+}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r2 = this.{self::C::a}{self::C::T*}.{core::num::-}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r3 = this.{self::C::a}{self::C::T*}.{core::num::*}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r4 = this.{self::C::a}{self::C::T*}.{core::num::/}(b){(core::num*) →* core::double*};
+ method op(core::double b) → void {
+ core::double r1 = this.{self::C::a}{self::C::T}.{core::num::+}(b){(core::num) → core::double};
+ core::double r2 = this.{self::C::a}{self::C::T}.{core::num::-}(b){(core::num) → core::double};
+ core::double r3 = this.{self::C::a}{self::C::T}.{core::num::*}(b){(core::num) → core::double};
+ core::double r4 = this.{self::C::a}{self::C::T}.{core::num::/}(b){(core::num) → core::double};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect
index da27d89..6a812b9 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- covariant-by-class field self::C::T* a;
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ covariant-by-class field self::C::T a;
+ synthetic constructor •() → self::C<self::C::T>
;
- method op(core::double* b) → void
+ method op(core::double b) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect
index a3cae75..60f1a5a 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_double.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::num*> extends core::Object {
- covariant-by-class field self::C::T* a = null;
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::num> extends core::Object {
+ covariant-by-class field self::C::T a = throw "";
+ synthetic constructor •() → self::C<self::C::T>
: super core::Object::•()
;
- method op(core::double* b) → void {
- core::double* r1 = this.{self::C::a}{self::C::T*}.{core::num::+}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r2 = this.{self::C::a}{self::C::T*}.{core::num::-}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r3 = this.{self::C::a}{self::C::T*}.{core::num::*}(b){(core::num*) →* core::num*} as{TypeError} core::double*;
- core::double* r4 = this.{self::C::a}{self::C::T*}.{core::num::/}(b){(core::num*) →* core::double*};
+ method op(core::double b) → void {
+ core::double r1 = this.{self::C::a}{self::C::T}.{core::num::+}(b){(core::num) → core::double};
+ core::double r2 = this.{self::C::a}{self::C::T}.{core::num::-}(b){(core::num) → core::double};
+ core::double r3 = this.{self::C::a}{self::C::T}.{core::num::*}(b){(core::num) → core::double};
+ core::double r4 = this.{self::C::a}{self::C::T}.{core::num::/}(b){(core::num) → core::double};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart
index 1aed2a5..b96cac2 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_int.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart
index 1254252..ad69ed2 100644
--- a/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart
+++ b/pkg/front_end/testcases/inference/refine_binary_expression_type_type_parameter_t_t.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart b/pkg/front_end/testcases/inference/setter_return_type.dart
index dc08ca3..62c1657 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline.expect
index 595a9b1..9143a0a 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline_modelled.expect
index 1ef3897dc..3f4534d 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class I {
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.expect
index b816e0d..4073f45 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- set x(core::int* value) → void {}
+ set x(core::int value) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.modular.expect
index b816e0d..4073f45 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.modular.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- set x(core::int* value) → void {}
+ set x(core::int value) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.outline.expect
index a846937..dac680d 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- set x(core::int* value) → void
+ set x(core::int value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
;
- set x(core::int* value) → void
+ set x(core::int value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- set x(core::int* value) → void
+ set x(core::int value) → void
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.transformed.expect
index b816e0d..4073f45 100644
--- a/pkg/front_end/testcases/inference/setter_return_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/setter_return_type.dart.weak.transformed.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
abstract class I extends core::Object {
- synthetic constructor •() → self::I*
+ synthetic constructor •() → self::I
: super core::Object::•()
;
- set x(core::int* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set x(core::int value) → void {}
}
class D extends self::C implements self::I {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- set x(core::int* value) → void {}
+ set x(core::int value) → void {}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart b/pkg/front_end/testcases/inference/simple_literal_bool.dart
index 9f2adf0..d1f1a07 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
var a = true;
main() {
- var /*@ type=bool* */ b = false;
+ var /*@type=bool*/ b = false;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline.expect
index 26a8389..452bced 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = true;
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline_modelled.expect
index 1983f24..c7a57ef 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.expect
index da6bc88..3142326 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a = true;
+static field core::bool a = true;
static method main() → dynamic {
- core::bool* b = false;
+ core::bool b = false;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.modular.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.modular.expect
index da6bc88..3142326 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a = true;
+static field core::bool a = true;
static method main() → dynamic {
- core::bool* b = false;
+ core::bool b = false;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.outline.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.outline.expect
index 7cc78f5..e19ef3e 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a;
+static field core::bool a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.transformed.expect
index da6bc88..3142326 100644
--- a/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_bool.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* a = true;
+static field core::bool a = true;
static method main() → dynamic {
- core::bool* b = false;
+ core::bool b = false;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart b/pkg/front_end/testcases/inference/simple_literal_double.dart
index 0bd3218..c595708 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
var a = 1.2;
main() {
- var /*@ type=double* */ b = 3.4;
+ var /*@type=double*/ b = 3.4;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline.expect
index 861c194..04971e0 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = 1.2;
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline_modelled.expect
index 81cac4a..cb4b7ad 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.expect
index ce86f42..2d4ba73 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::double* a = 1.2;
+static field core::double a = 1.2;
static method main() → dynamic {
- core::double* b = 3.4;
+ core::double b = 3.4;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.modular.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.modular.expect
index ce86f42..2d4ba73 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::double* a = 1.2;
+static field core::double a = 1.2;
static method main() → dynamic {
- core::double* b = 3.4;
+ core::double b = 3.4;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.outline.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.outline.expect
index ce3f6d5..74caa82 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::double* a;
+static field core::double a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.transformed.expect
index ce86f42..2d4ba73 100644
--- a/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_double.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::double* a = 1.2;
+static field core::double a = 1.2;
static method main() → dynamic {
- core::double* b = 3.4;
+ core::double b = 3.4;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart b/pkg/front_end/testcases/inference/simple_literal_int.dart
index 0152502..c01ba89 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
var a = 1;
main() {
- var /*@ type=int* */ b = 2;
+ var /*@type=int*/ b = 2;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline.expect
index 6c10111..83e091a 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = 1;
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline_modelled.expect
index ab8010e..60b453a 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.expect
index 02faaca..87185b7 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* a = 1;
+static field core::int a = 1;
static method main() → dynamic {
- core::int* b = 2;
+ core::int b = 2;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.modular.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.modular.expect
index 02faaca..87185b7 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* a = 1;
+static field core::int a = 1;
static method main() → dynamic {
- core::int* b = 2;
+ core::int b = 2;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.outline.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.outline.expect
index 0596698..df51585 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* a;
+static field core::int a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.transformed.expect
index 02faaca..87185b7 100644
--- a/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_int.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* a = 1;
+static field core::int a = 1;
static method main() → dynamic {
- core::int* b = 2;
+ core::int b = 2;
}
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart b/pkg/front_end/testcases/inference/simple_literal_null.dart
index 426f43b..6ca0f65 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline.expect b/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline.expect
index 8612b00..5ca6d2a 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var a = null;
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline_modelled.expect
index e43735f..931bd7b 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.expect b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.expect
index 0368614..d4be84a 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic a = null;
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.modular.expect b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.modular.expect
index 0368614..d4be84a 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic a = null;
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.outline.expect b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.outline.expect
index 7e1ab76..86abf76 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic a;
diff --git a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.transformed.expect
index 0368614..d4be84a 100644
--- a/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/simple_literal_null.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static field dynamic a = null;
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart b/pkg/front_end/testcases/inference/static_method_tear_off.dart
index 69de61c..e5f1b45 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
const v = C.f;
class C {
- static int f(String s) => null;
+ static int f(String s) => throw '';
}
main() {
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline.expect
index 656d9fb..6a6de4e 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
const v = C.f;
class C {
- static int f(String s) => null;
+ static int f(String s) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline_modelled.expect
index b234f45..d3ea8a9 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class C {
- static int f(String s) => null;
+ static int f(String s) => throw '';
}
const v = C.f;
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.expect
index b89fa7d..5e5928a 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static method f(core::String* s) → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method f(core::String s) → core::int
+ return throw "";
}
-static const field (core::String*) →* core::int* v = #C1;
+static const field (core::String) → core::int v = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.modular.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.modular.expect
index b89fa7d..5e5928a 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static method f(core::String* s) → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method f(core::String s) → core::int
+ return throw "";
}
-static const field (core::String*) →* core::int* v = #C1;
+static const field (core::String) → core::int v = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.outline.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.outline.expect
index b2c575b..76e4573 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- static method f(core::String* s) → core::int*
+ static method f(core::String s) → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static const field (core::String*) →* core::int* v = self::C::f;
+static const field (core::String) → core::int v = self::C::f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.transformed.expect
index b89fa7d..5e5928a 100644
--- a/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/static_method_tear_off.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- static method f(core::String* s) → core::int*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ static method f(core::String s) → core::int
+ return throw "";
}
-static const field (core::String*) →* core::int* v = #C1;
+static const field (core::String) → core::int v = #C1;
static method main() → dynamic {
#C1;
}
diff --git a/pkg/front_end/testcases/inference/string_literal.dart b/pkg/front_end/testcases/inference/string_literal.dart
index d58188d..6eb5292 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart
+++ b/pkg/front_end/testcases/inference/string_literal.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,8 +11,8 @@
var c = 'c ${x} cc' 'ccc';
main() {
- var /*@ type=int* */ x = 1;
- var /*@ type=String* */ a = 'aaa';
- var /*@ type=String* */ b = 'b ${x} bb';
- var /*@ type=String* */ c = 'c ${x} cc' 'ccc';
+ var /*@type=int*/ x = 1;
+ var /*@type=String*/ a = 'aaa';
+ var /*@type=String*/ b = 'b ${x} bb';
+ var /*@type=String*/ c = 'c ${x} cc' 'ccc';
}
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.textual_outline.expect b/pkg/front_end/testcases/inference/string_literal.dart.textual_outline.expect
index cb60ad8..40f25d4 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/string_literal.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = 1;
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/string_literal.dart.textual_outline_modelled.expect
index 64d1894..8bb8a7d 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/string_literal.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.weak.expect b/pkg/front_end/testcases/inference/string_literal.dart.weak.expect
index c59623a..cf36cdb 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/string_literal.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x = 1;
-static field core::String* a = "aaa";
-static field core::String* b = "b ${self::x} bb";
-static field core::String* c = "c ${self::x} ccccc";
+static field core::int x = 1;
+static field core::String a = "aaa";
+static field core::String b = "b ${self::x} bb";
+static field core::String c = "c ${self::x} ccccc";
static method main() → dynamic {
- core::int* x = 1;
- core::String* a = "aaa";
- core::String* b = "b ${x} bb";
- core::String* c = "c ${x} ccccc";
+ core::int x = 1;
+ core::String a = "aaa";
+ core::String b = "b ${x} bb";
+ core::String c = "c ${x} ccccc";
}
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.weak.modular.expect b/pkg/front_end/testcases/inference/string_literal.dart.weak.modular.expect
index c59623a..cf36cdb 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/string_literal.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x = 1;
-static field core::String* a = "aaa";
-static field core::String* b = "b ${self::x} bb";
-static field core::String* c = "c ${self::x} ccccc";
+static field core::int x = 1;
+static field core::String a = "aaa";
+static field core::String b = "b ${self::x} bb";
+static field core::String c = "c ${self::x} ccccc";
static method main() → dynamic {
- core::int* x = 1;
- core::String* a = "aaa";
- core::String* b = "b ${x} bb";
- core::String* c = "c ${x} ccccc";
+ core::int x = 1;
+ core::String a = "aaa";
+ core::String b = "b ${x} bb";
+ core::String c = "c ${x} ccccc";
}
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.weak.outline.expect b/pkg/front_end/testcases/inference/string_literal.dart.weak.outline.expect
index 506fd95..a73a704 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/string_literal.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x;
-static field core::String* a;
-static field core::String* b;
-static field core::String* c;
+static field core::int x;
+static field core::String a;
+static field core::String b;
+static field core::String c;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/string_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/string_literal.dart.weak.transformed.expect
index c59623a..cf36cdb 100644
--- a/pkg/front_end/testcases/inference/string_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/string_literal.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* x = 1;
-static field core::String* a = "aaa";
-static field core::String* b = "b ${self::x} bb";
-static field core::String* c = "c ${self::x} ccccc";
+static field core::int x = 1;
+static field core::String a = "aaa";
+static field core::String b = "b ${self::x} bb";
+static field core::String c = "c ${self::x} ccccc";
static method main() → dynamic {
- core::int* x = 1;
- core::String* a = "aaa";
- core::String* b = "b ${x} bb";
- core::String* c = "c ${x} ccccc";
+ core::int x = 1;
+ core::String a = "aaa";
+ core::String b = "b ${x} bb";
+ core::String c = "c ${x} ccccc";
}
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart
index 708acd6..38ba514 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- List<num> x = /*@ typeArgs=num* */ [0];
+ List<num> x = /*@typeArgs=num*/ [0];
}
-List<num> y = /*@ typeArgs=num* */ [0];
+List<num> y = /*@typeArgs=num*/ [0];
main() {}
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline.expect
index ac7ed69..46a9d5d9 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline_modelled.expect
index bb4438d..fa8bd40 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<num> y = [0];
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.expect
index d1ef879..0415cc5 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::List<core::num*>* x = <core::num*>[0];
- synthetic constructor •() → self::C*
+ field core::List<core::num> x = <core::num>[0];
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<core::num*>* y = <core::num*>[0];
+static field core::List<core::num> y = <core::num>[0];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.modular.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.modular.expect
index d1ef879..0415cc5 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::List<core::num*>* x = <core::num*>[0];
- synthetic constructor •() → self::C*
+ field core::List<core::num> x = <core::num>[0];
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<core::num*>* y = <core::num*>[0];
+static field core::List<core::num> y = <core::num>[0];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.outline.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.outline.expect
index 8ced609..51db08a 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::List<core::num*>* x;
- synthetic constructor •() → self::C*
+ field core::List<core::num> x;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<core::num*>* y;
+static field core::List<core::num> y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.transformed.expect
index b689fb3..2402ae6 100644
--- a/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/subexpressions_of_explicitly_typed_fields.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::List<core::num*>* x = core::_GrowableList::_literal1<core::num*>(0);
- synthetic constructor •() → self::C*
+ field core::List<core::num> x = core::_GrowableList::_literal1<core::num>(0);
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<core::num*>* y = core::_GrowableList::_literal1<core::num*>(0);
+static field core::List<core::num> y = core::_GrowableList::_literal1<core::num>(0);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart b/pkg/front_end/testcases/inference/super_index_set.dart
index e549a00..7ab32d9 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart
+++ b/pkg/front_end/testcases/inference/super_index_set.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B {
void operator []=(int x, String y) {}
@@ -16,8 +16,7 @@
class C extends B {
void operator []=(Object x, Object y) {}
void h() {
- super /*@target=B.[]=*/ [
- /*@ typeArgs=int* */ f()] = /*@ typeArgs=String* */ f();
+ super /*@target=B.[]=*/ [/*@typeArgs=int*/ f()] = /*@typeArgs=String*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline.expect
index 909d41f..9c38a60 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B {
void operator []=(int x, String y) {}
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline_modelled.expect
index 2dd9e86..cf88a37 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_index_set.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B {
void operator []=(int x, String y) {}
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart.weak.expect b/pkg/front_end/testcases/inference/super_index_set.dart.weak.expect
index 8b870ab..4ff0059 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_index_set.dart.weak.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator []=(core::int* x, core::String* y) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int x, core::String y) → void {}
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
- operator []=(core::Object* x, core::Object* y) → void {}
+ operator []=(core::Object x, core::Object y) → void {}
method h() → void {
- super.{self::B::[]=}(self::f<core::int*>(), self::f<core::String*>());
+ super.{self::B::[]=}(self::f<core::int>(), self::f<core::String>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_index_set.dart.weak.modular.expect
index 8b870ab..4ff0059 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_index_set.dart.weak.modular.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator []=(core::int* x, core::String* y) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int x, core::String y) → void {}
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
- operator []=(core::Object* x, core::Object* y) → void {}
+ operator []=(core::Object x, core::Object y) → void {}
method h() → void {
- super.{self::B::[]=}(self::f<core::int*>(), self::f<core::String*>());
+ super.{self::B::[]=}(self::f<core::int>(), self::f<core::String>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_index_set.dart.weak.outline.expect
index 5f49e59..9682c96 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_index_set.dart.weak.outline.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator []=(core::int* x, core::String* y) → void
+ operator []=(core::int x, core::String y) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- operator []=(core::Object* x, core::Object* y) → void
+ operator []=(core::Object x, core::Object y) → void
;
method h() → void
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/super_index_set.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_index_set.dart.weak.transformed.expect
index 8b870ab..4ff0059 100644
--- a/pkg/front_end/testcases/inference/super_index_set.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_index_set.dart.weak.transformed.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator []=(core::int* x, core::String* y) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(core::int x, core::String y) → void {}
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
- operator []=(core::Object* x, core::Object* y) → void {}
+ operator []=(core::Object x, core::Object y) → void {}
method h() → void {
- super.{self::B::[]=}(self::f<core::int*>(), self::f<core::String*>());
+ super.{self::B::[]=}(self::f<core::int>(), self::f<core::String>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart b/pkg/front_end/testcases/inference/super_index_set_substitution.dart
index 2787d8a..7a60a4a 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
void operator []=(Map<int, T> x, List<T> y) {}
@@ -17,8 +17,8 @@
void operator []=(Object x, Object y) {}
void h() {
super /*@target=B.[]=*/ [
- /*@ typeArgs=Map<int*, Future<C::U*>*>* */ f()] =
- /*@ typeArgs=List<Future<C::U*>*>* */ f();
+ /*@typeArgs=Map<int, Future<C::U%>>*/ f()] =
+ /*@typeArgs=List<Future<C::U%>>*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline.expect
index b1af21d..d865785 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
void operator []=(Map<int, T> x, List<T> y) {}
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline_modelled.expect
index 8b2dd86..583939d 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
void operator []=(Map<int, T> x, List<T> y) {}
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.expect
index e59a920..ed2a1fb 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- operator []=(covariant-by-class core::Map<core::int*, self::B::T*>* x, covariant-by-class core::List<self::B::T*>* y) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(covariant-by-class core::Map<core::int, self::B::T%> x, covariant-by-class core::List<self::B::T%> y) → void {}
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- operator []=(covariant-by-class core::Object* x, covariant-by-class core::Object* y) → void {}
+ operator []=(covariant-by-class core::Object x, covariant-by-class core::Object y) → void {}
method h() → void {
- super.{self::B::[]=}(self::f<core::Map<core::int*, asy::Future<self::C::U*>*>*>(), self::f<core::List<asy::Future<self::C::U*>*>*>());
+ super.{self::B::[]=}(self::f<core::Map<core::int, asy::Future<self::C::U%>>>(), self::f<core::List<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.modular.expect
index e59a920..ed2a1fb 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.modular.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- operator []=(covariant-by-class core::Map<core::int*, self::B::T*>* x, covariant-by-class core::List<self::B::T*>* y) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(covariant-by-class core::Map<core::int, self::B::T%> x, covariant-by-class core::List<self::B::T%> y) → void {}
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- operator []=(covariant-by-class core::Object* x, covariant-by-class core::Object* y) → void {}
+ operator []=(covariant-by-class core::Object x, covariant-by-class core::Object y) → void {}
method h() → void {
- super.{self::B::[]=}(self::f<core::Map<core::int*, asy::Future<self::C::U*>*>*>(), self::f<core::List<asy::Future<self::C::U*>*>*>());
+ super.{self::B::[]=}(self::f<core::Map<core::int, asy::Future<self::C::U%>>>(), self::f<core::List<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.outline.expect
index 0dcfd55..6334ce2 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.outline.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
;
- operator []=(covariant-by-class core::Map<core::int*, self::B::T*>* x, covariant-by-class core::List<self::B::T*>* y) → void
+ operator []=(covariant-by-class core::Map<core::int, self::B::T%> x, covariant-by-class core::List<self::B::T%> y) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
;
- operator []=(covariant-by-class core::Object* x, covariant-by-class core::Object* y) → void
+ operator []=(covariant-by-class core::Object x, covariant-by-class core::Object y) → void
;
method h() → void
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.transformed.expect
index e59a920..ed2a1fb 100644
--- a/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_index_set_substitution.dart.weak.transformed.expect
@@ -1,35 +1,25 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- operator []=(covariant-by-class core::Map<core::int*, self::B::T*>* x, covariant-by-class core::List<self::B::T*>* y) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator []=(covariant-by-class core::Map<core::int, self::B::T%> x, covariant-by-class core::List<self::B::T%> y) → void {}
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- operator []=(covariant-by-class core::Object* x, covariant-by-class core::Object* y) → void {}
+ operator []=(covariant-by-class core::Object x, covariant-by-class core::Object y) → void {}
method h() → void {
- super.{self::B::[]=}(self::f<core::Map<core::int*, asy::Future<self::C::U*>*>*>(), self::f<core::List<asy::Future<self::C::U*>*>*>());
+ super.{self::B::[]=}(self::f<core::Map<core::int, asy::Future<self::C::U%>>>(), self::f<core::List<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart b/pkg/front_end/testcases/inference/super_initializer.dart
index 5dfdd57..4607f58 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart
+++ b/pkg/front_end/testcases/inference/super_initializer.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C extends B {
- C() : super(/*@ typeArgs=int* */ f());
+ C() : super(/*@typeArgs=int*/ f());
}
class B {
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline.expect
index f2f1a1a..d843dbd 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C extends B {
C() : super(f());
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline_modelled.expect
index 9f2e248..f04a4dc 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_initializer.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class B {
B(int x);
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart.weak.expect b/pkg/front_end/testcases/inference/super_initializer.dart.weak.expect
index 8e244eb..9dce3cd 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_initializer.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::B {
- constructor •() → self::C*
- : super self::B::•(self::f<core::int*>())
+ constructor •() → self::C
+ : super self::B::•(self::f<core::int>())
;
}
class B extends core::Object {
- constructor •(core::int* x) → self::B*
+ constructor •(core::int x) → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_initializer.dart.weak.modular.expect
index 8e244eb..9dce3cd 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_initializer.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::B {
- constructor •() → self::C*
- : super self::B::•(self::f<core::int*>())
+ constructor •() → self::C
+ : super self::B::•(self::f<core::int>())
;
}
class B extends core::Object {
- constructor •(core::int* x) → self::B*
+ constructor •(core::int x) → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_initializer.dart.weak.outline.expect
index e88cb35..6605727 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_initializer.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::B {
- constructor •() → self::C*
+ constructor •() → self::C
;
}
class B extends core::Object {
- constructor •(core::int* x) → self::B*
+ constructor •(core::int x) → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/super_initializer.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_initializer.dart.weak.transformed.expect
index 8e244eb..9dce3cd 100644
--- a/pkg/front_end/testcases/inference/super_initializer.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_initializer.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends self::B {
- constructor •() → self::C*
- : super self::B::•(self::f<core::int*>())
+ constructor •() → self::C
+ : super self::B::•(self::f<core::int>())
;
}
class B extends core::Object {
- constructor •(core::int* x) → self::B*
+ constructor •(core::int x) → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart b/pkg/front_end/testcases/inference/super_initializer_substitution.dart
index ad63740..aae6dd0 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart
@@ -1,18 +1,18 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
B(T t);
}
class C<U> extends B<List<U>> {
- C() : super(/*@ typeArgs=List<C::U*>* */ f());
+ C() : super(/*@typeArgs=List<C::U%>*/ f());
}
main() {}
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline.expect
index 9d56fff..0db52fa 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
B(T t);
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline_modelled.expect
index 9d56fff..0db52fa 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
B(T t);
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.expect b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.expect
index 1d91491..bb6439c 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* t) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% t) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<core::List<self::C::U*>*> {
- constructor •() → self::C<self::C::U*>*
- : super self::B::•(self::f<core::List<self::C::U*>*>())
+class C<U extends core::Object? = dynamic> extends self::B<core::List<self::C::U%>> {
+ constructor •() → self::C<self::C::U%>
+ : super self::B::•(self::f<core::List<self::C::U%>>())
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.modular.expect
index 1d91491..bb6439c 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* t) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% t) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<core::List<self::C::U*>*> {
- constructor •() → self::C<self::C::U*>*
- : super self::B::•(self::f<core::List<self::C::U*>*>())
+class C<U extends core::Object? = dynamic> extends self::B<core::List<self::C::U%>> {
+ constructor •() → self::C<self::C::U%>
+ : super self::B::•(self::f<core::List<self::C::U%>>())
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.outline.expect
index 0df9ae4..eaa8d7c 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.outline.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* t) → self::B<self::B::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class C<U extends core::Object* = dynamic> extends self::B<core::List<self::C::U*>*> {
- constructor •() → self::C<self::C::U*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% t) → self::B<self::B::T%>
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+class C<U extends core::Object? = dynamic> extends self::B<core::List<self::C::U%>> {
+ constructor •() → self::C<self::C::U%>
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.transformed.expect
index 1d91491..bb6439c 100644
--- a/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_initializer_substitution.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* t) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% t) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<core::List<self::C::U*>*> {
- constructor •() → self::C<self::C::U*>*
- : super self::B::•(self::f<core::List<self::C::U*>*>())
+class C<U extends core::Object? = dynamic> extends self::B<core::List<self::C::U%>> {
+ constructor •() → self::C<self::C::U%>
+ : super self::B::•(self::f<core::List<self::C::U%>>())
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart b/pkg/front_end/testcases/inference/super_method_invocation.dart
index 39ee9b8..fc3500f 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +11,7 @@
class D extends C {
void g() {
- var /*@ type=int* */ x = super. /*@target=C.f*/ f();
+ var /*@type=int*/ x = super. /*@target=C.f*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline.expect
index 29cd1d8..705378f 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline_modelled.expect
index 29cd1d8..705378f 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.expect b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.expect
index f51320a..e106e60 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
+ method f() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* x = super.{self::C::f}();
+ core::int x = super.{self::C::f}();
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.modular.expect
index f51320a..e106e60 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
+ method f() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* x = super.{self::C::f}();
+ core::int x = super.{self::C::f}();
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.outline.expect
index 27ee2c0..7fa8ea0 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f() → core::int*
+ method f() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method g() → void
;
diff --git a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.transformed.expect
index f51320a..e106e60 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
+ method f() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* x = super.{self::C::f}();
+ core::int x = super.{self::C::f}();
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart
index 4f06f3a..57dc709 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart
@@ -1,27 +1,27 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class D<T> {}
class E<T> extends D<T> {}
class B<T> {
- D<T> g(E<T> x) => null;
+ D<T> g(E<T> x) => throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> g(Object x) => null;
+ E<Future<U>> g(Object x) => throw '';
void h() {
- var /*@ type=D<Future<C::U*>*>* */ x =
- super. /*@target=B.g*/ g(/*@ typeArgs=E<Future<C::U*>*>* */ f());
+ var /*@type=D<Future<C::U%>>*/ x =
+ super. /*@target=B.g*/ g(/*@typeArgs=E<Future<C::U%>>*/ f());
}
}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline.expect
index 39ee085..002896d 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class D<T> {}
class E<T> extends D<T> {}
class B<T> {
- D<T> g(E<T> x) => null;
+ D<T> g(E<T> x) => throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> g(Object x) => null;
+ E<Future<U>> g(Object x) => throw '';
void h() {}
}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline_modelled.expect
index 24b0f1f..4aacb07 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
- D<T> g(E<T> x) => null;
+ D<T> g(E<T> x) => throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> g(Object x) => null;
+ E<Future<U>> g(Object x) => throw '';
void h() {}
}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.expect
index 940c20e..bae0ca9 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- method g(covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method g(covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ return throw "";
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- method g(covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
- return null;
+ method g(covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
+ return throw "";
method h() → void {
- self::D<asy::Future<self::C::U*>*>* x = super.{self::B::g}(self::f<self::E<asy::Future<self::C::U*>*>*>());
+ self::D<asy::Future<self::C::U%>> x = super.{self::B::g}(self::f<self::E<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.modular.expect
index 940c20e..bae0ca9 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.modular.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- method g(covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method g(covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ return throw "";
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- method g(covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
- return null;
+ method g(covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
+ return throw "";
method h() → void {
- self::D<asy::Future<self::C::U*>*>* x = super.{self::B::g}(self::f<self::E<asy::Future<self::C::U*>*>*>());
+ self::D<asy::Future<self::C::U%>> x = super.{self::B::g}(self::f<self::E<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.outline.expect
index d0fbc6d..9a0ecd6 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.outline.expect
@@ -1,53 +1,33 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
;
- method g(covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
;
- method g(covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
+ method g(covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ ;
+}
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
+ ;
+ method g(covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
;
method h() → void
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.transformed.expect
index 940c20e..bae0ca9 100644
--- a/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_method_invocation_substitution.dart.weak.transformed.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- method g(covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method g(covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ return throw "";
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- method g(covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
- return null;
+ method g(covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
+ return throw "";
method h() → void {
- self::D<asy::Future<self::C::U*>*>* x = super.{self::B::g}(self::f<self::E<asy::Future<self::C::U*>*>*>());
+ self::D<asy::Future<self::C::U%>> x = super.{self::B::g}(self::f<self::E<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart b/pkg/front_end/testcases/inference/super_property_get.dart
index e49d278..ddbb7d8 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart
+++ b/pkg/front_end/testcases/inference/super_property_get.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +11,7 @@
class D extends C {
void g() {
- var /*@ type=int* */ y = super. /*@target=C.x*/ x;
+ var /*@type=int*/ y = super. /*@target=C.x*/ x;
}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline.expect
index e7b5570..e878396 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline_modelled.expect
index e7b5570..e878396 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_property_get.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.weak.expect b/pkg/front_end/testcases/inference/super_property_get.dart.weak.expect
index c9a8df8..317cfe9 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_property_get.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::C*
+ field core::int x = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::x};
+ core::int y = super.{self::C::x};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_property_get.dart.weak.modular.expect
index c9a8df8..317cfe9 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_property_get.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::C*
+ field core::int x = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::x};
+ core::int y = super.{self::C::x};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_property_get.dart.weak.outline.expect
index e568011..83d87a5 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x;
- synthetic constructor •() → self::C*
+ field core::int x;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method g() → void
;
diff --git a/pkg/front_end/testcases/inference/super_property_get.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_property_get.dart.weak.transformed.expect
index c9a8df8..317cfe9 100644
--- a/pkg/front_end/testcases/inference/super_property_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_get.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* x = 0;
- synthetic constructor •() → self::C*
+ field core::int x = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::x};
+ core::int y = super.{self::C::x};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart
index ea4f783..1a92fd8 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C {
- var f = /*@ returnType=int* */ () => 0;
+ var f = /*@returnType=int*/ () => 0;
}
class D extends C {
void g() {
- var /*@ type=int* */ y = super. /*@target=C.f*/ f();
+ var /*@type=int*/ y = super. /*@target=C.f*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline.expect
index 368ca1c..7d71a90 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline_modelled.expect
index 368ca1c..7d71a90 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.expect
index 23c68ac..d4dbf44 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field () →* core::int* f = () → core::int* => 0;
- synthetic constructor •() → self::C*
+ field () → core::int f = () → core::int => 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::f}(){() →* core::int*};
+ core::int y = super.{self::C::f}(){() → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.modular.expect
index 23c68ac..d4dbf44 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field () →* core::int* f = () → core::int* => 0;
- synthetic constructor •() → self::C*
+ field () → core::int f = () → core::int => 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::f}(){() →* core::int*};
+ core::int y = super.{self::C::f}(){() → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.outline.expect
index 51a9277..291ae49 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field () →* core::int* f;
- synthetic constructor •() → self::C*
+ field () → core::int f;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method g() → void
;
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.transformed.expect
index 23c68ac..d4dbf44 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_function_typed.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field () →* core::int* f = () → core::int* => 0;
- synthetic constructor •() → self::C*
+ field () → core::int f = () → core::int => 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::f}(){() →* core::int*};
+ core::int y = super.{self::C::f}(){() → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart
index 8ba71ce..f45edc6 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,7 +15,7 @@
class D extends C {
void g() {
- var /*@ type=int* */ y =
+ var /*@type=int*/ y =
super. /*@target=C.f*/ f /*@target=CallableClass.call*/ ();
}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline.expect
index 272f197..f9b1f9f 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class CallableClass {
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline_modelled.expect
index 6788ddb..4764b64 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.expect
index f32675f..2f27930 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.expect
@@ -1,46 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class CallableClass extends core::Object {
- synthetic constructor •() → self::CallableClass*
+ synthetic constructor •() → self::CallableClass
: super core::Object::•()
;
- method call() → core::int*
+ method call() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::CallableClass* f = new self::CallableClass::•();
- synthetic constructor •() → self::C*
+ field self::CallableClass f = new self::CallableClass::•();
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::f}.{self::CallableClass::call}(){() →* core::int*};
+ core::int y = super.{self::C::f}.{self::CallableClass::call}(){() → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.modular.expect
index f32675f..2f27930 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.modular.expect
@@ -1,46 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class CallableClass extends core::Object {
- synthetic constructor •() → self::CallableClass*
+ synthetic constructor •() → self::CallableClass
: super core::Object::•()
;
- method call() → core::int*
+ method call() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::CallableClass* f = new self::CallableClass::•();
- synthetic constructor •() → self::C*
+ field self::CallableClass f = new self::CallableClass::•();
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::f}.{self::CallableClass::call}(){() →* core::int*};
+ core::int y = super.{self::C::f}.{self::CallableClass::call}(){() → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.outline.expect
index ada3854..d69e58c 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.outline.expect
@@ -1,40 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class CallableClass extends core::Object {
- synthetic constructor •() → self::CallableClass*
+ synthetic constructor •() → self::CallableClass
;
- method call() → core::int*
+ method call() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::CallableClass* f;
- synthetic constructor •() → self::C*
+ field self::CallableClass f;
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method g() → void
;
diff --git a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.transformed.expect
index f32675f..2f27930 100644
--- a/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_invoke_implicit_call.dart.weak.transformed.expect
@@ -1,46 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class CallableClass extends core::Object {
- synthetic constructor •() → self::CallableClass*
+ synthetic constructor •() → self::CallableClass
: super core::Object::•()
;
- method call() → core::int*
+ method call() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::CallableClass* f = new self::CallableClass::•();
- synthetic constructor •() → self::C*
+ field self::CallableClass f = new self::CallableClass::•();
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- core::int* y = super.{self::C::f}.{self::CallableClass::call}(){() →* core::int*};
+ core::int y = super.{self::C::f}.{self::CallableClass::call}(){() → core::int};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart b/pkg/front_end/testcases/inference/super_property_get_substitution.dart
index 820d642..21ff586 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,14 +12,14 @@
class E<T> extends D<T> {}
class B<T> {
- D<T> x;
+ D<T> x = throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> get x => null;
+ E<Future<U>> get x => throw '';
void set x(Object x) {}
void g() {
- var /*@ type=D<Future<C::U*>*>* */ y = super. /*@target=B.x*/ x;
+ var /*@type=D<Future<C::U%>>*/ y = super. /*@target=B.x*/ x;
}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline.expect
index 7ba44c9..0a867ef 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
import 'dart:async';
@@ -8,11 +7,11 @@
class E<T> extends D<T> {}
class B<T> {
- D<T> x;
+ D<T> x = throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> get x => null;
+ E<Future<U>> get x => throw '';
void set x(Object x) {}
void g() {}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline_modelled.expect
index 21b91de..8c62019 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.textual_outline_modelled.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
library test;
import 'dart:async';
class B<T> {
- D<T> x;
+ D<T> x = throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> get x => null;
+ E<Future<U>> get x => throw '';
void g() {}
void set x(Object x) {}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.expect
index 752cdaf..352bab1 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.expect
@@ -1,55 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x = null;
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x = throw "";
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- get x() → self::E<asy::Future<self::C::U*>*>*
- return null;
- set x(covariant-by-class core::Object* x) → void {}
+ get x() → self::E<asy::Future<self::C::U%>>
+ return throw "";
+ set x(covariant-by-class core::Object x) → void {}
method g() → void {
- self::D<asy::Future<self::C::U*>*>* y = super.{self::B::x};
+ self::D<asy::Future<self::C::U%>> y = super.{self::B::x};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.modular.expect
index 752cdaf..352bab1 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.modular.expect
@@ -1,55 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x = null;
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x = throw "";
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- get x() → self::E<asy::Future<self::C::U*>*>*
- return null;
- set x(covariant-by-class core::Object* x) → void {}
+ get x() → self::E<asy::Future<self::C::U%>>
+ return throw "";
+ set x(covariant-by-class core::Object x) → void {}
method g() → void {
- self::D<asy::Future<self::C::U*>*>* y = super.{self::B::x};
+ self::D<asy::Future<self::C::U%>> y = super.{self::B::x};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.outline.expect
index 94018b3..9536c32 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.outline.expect
@@ -1,49 +1,29 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x;
- synthetic constructor •() → self::B<self::B::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x;
+ synthetic constructor •() → self::B<self::B::T%>
;
- get x() → self::E<asy::Future<self::C::U*>*>*
+}
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
;
- set x(covariant-by-class core::Object* x) → void
+ get x() → self::E<asy::Future<self::C::U%>>
+ ;
+ set x(covariant-by-class core::Object x) → void
;
method g() → void
;
diff --git a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.transformed.expect
index 752cdaf..352bab1 100644
--- a/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_substitution.dart.weak.transformed.expect
@@ -1,55 +1,35 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x = null;
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x = throw "";
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- get x() → self::E<asy::Future<self::C::U*>*>*
- return null;
- set x(covariant-by-class core::Object* x) → void {}
+ get x() → self::E<asy::Future<self::C::U%>>
+ return throw "";
+ set x(covariant-by-class core::Object x) → void {}
method g() → void {
- self::D<asy::Future<self::C::U*>*>* y = super.{self::B::x};
+ self::D<asy::Future<self::C::U%>> y = super.{self::B::x};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart
index 1a62bf6..373e419 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,7 +11,7 @@
class D extends C {
void g() {
- var /*@ type=() ->* int* */ y = super. /*@target=C.f*/ f;
+ var /*@type=() -> int*/ y = super. /*@target=C.f*/ f;
}
}
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline.expect
index 29cd1d8..705378f 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline_modelled.expect
index 29cd1d8..705378f 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.expect b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.expect
index 5f7255e..fddaf84 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
+ method f() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- () →* core::int* y = super.{self::C::f};
+ () → core::int y = super.{self::C::f};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.modular.expect
index 5f7255e..fddaf84 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
+ method f() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- () →* core::int* y = super.{self::C::f};
+ () → core::int y = super.{self::C::f};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.outline.expect
index 27ee2c0..7fa8ea0 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f() → core::int*
+ method f() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
method g() → void
;
diff --git a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.transformed.expect
index 5f7255e..fddaf84 100644
--- a/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_get_tearoff.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f() → core::int*
+ method f() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
method g() → void {
- () →* core::int* y = super.{self::C::f};
+ () → core::int y = super.{self::C::f};
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart b/pkg/front_end/testcases/inference/super_property_set_substitution.dart
index 32fb252..6cd4a53 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart
@@ -1,27 +1,27 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class D<T> {}
class E<T> extends D<T> {}
class B<T> {
- D<T> x;
+ D<T> x = throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> get x => null;
+ E<Future<U>> get x => throw '';
void set x(Object x) {}
void g() {
- super.x = /*@ typeArgs=D<Future<C::U*>*>* */ f();
+ super.x = /*@typeArgs=D<Future<C::U%>>*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline.expect
index 2dccd93..3ec323d 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class D<T> {}
class E<T> extends D<T> {}
class B<T> {
- D<T> x;
+ D<T> x = throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> get x => null;
+ E<Future<U>> get x => throw '';
void set x(Object x) {}
void g() {}
}
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline_modelled.expect
index a6e272f..cc04643 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
- D<T> x;
+ D<T> x = throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> get x => null;
+ E<Future<U>> get x => throw '';
void g() {}
void set x(Object x) {}
}
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.expect
index 2b490e3..559bc71 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x = null;
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x = throw "";
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- get x() → self::E<asy::Future<self::C::U*>*>*
- return null;
- set x(covariant-by-class core::Object* x) → void {}
+ get x() → self::E<asy::Future<self::C::U%>>
+ return throw "";
+ set x(covariant-by-class core::Object x) → void {}
method g() → void {
- super.{self::B::x} = self::f<self::D<asy::Future<self::C::U*>*>*>();
+ super.{self::B::x} = self::f<self::D<asy::Future<self::C::U%>>>();
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.modular.expect
index 2b490e3..559bc71 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.modular.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x = null;
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x = throw "";
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- get x() → self::E<asy::Future<self::C::U*>*>*
- return null;
- set x(covariant-by-class core::Object* x) → void {}
+ get x() → self::E<asy::Future<self::C::U%>>
+ return throw "";
+ set x(covariant-by-class core::Object x) → void {}
method g() → void {
- super.{self::B::x} = self::f<self::D<asy::Future<self::C::U*>*>*>();
+ super.{self::B::x} = self::f<self::D<asy::Future<self::C::U%>>>();
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.outline.expect
index b8d091c..63a8313 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.outline.expect
@@ -1,54 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x;
- synthetic constructor •() → self::B<self::B::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x;
+ synthetic constructor •() → self::B<self::B::T%>
;
- get x() → self::E<asy::Future<self::C::U*>*>*
+}
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
;
- set x(covariant-by-class core::Object* x) → void
+ get x() → self::E<asy::Future<self::C::U%>>
+ ;
+ set x(covariant-by-class core::Object x) → void
;
method g() → void
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.transformed.expect
index 2b490e3..559bc71 100644
--- a/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/super_property_set_substitution.dart.weak.transformed.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- covariant-by-class field self::D<self::B::T*>* x = null;
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ covariant-by-class field self::D<self::B::T%> x = throw "";
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- get x() → self::E<asy::Future<self::C::U*>*>*
- return null;
- set x(covariant-by-class core::Object* x) → void {}
+ get x() → self::E<asy::Future<self::C::U%>>
+ return throw "";
+ set x(covariant-by-class core::Object x) → void {}
method g() → void {
- super.{self::B::x} = self::f<self::D<asy::Future<self::C::U*>*>*>();
+ super.{self::B::x} = self::f<self::D<asy::Future<self::C::U%>>>();
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart b/pkg/front_end/testcases/inference/switch_continue.dart
index 30f84bc..2ee10f6 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart
+++ b/pkg/front_end/testcases/inference/switch_continue.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline.expect b/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline.expect
index 05c56c1..de6340a 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test(int x, void f()) {}
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline_modelled.expect
index 570eb3d..3712403 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/switch_continue.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart.weak.expect b/pkg/front_end/testcases/inference/switch_continue.dart.weak.expect
index 64406d0..aa4038a 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/switch_continue.dart.weak.expect
@@ -1,20 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(core::int* x, () →* void f) → void {
+static method test(core::int x, () → void f) → void {
#L1:
switch(x) {
#L2:
case #C1:
{
- f(){() →* void};
+ f(){() → void};
continue #L3;
}
#L3:
case #C2:
{
- f(){() →* void};
+ f(){() → void};
break #L1;
}
}
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart.weak.modular.expect b/pkg/front_end/testcases/inference/switch_continue.dart.weak.modular.expect
index 64406d0..aa4038a 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/switch_continue.dart.weak.modular.expect
@@ -1,20 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(core::int* x, () →* void f) → void {
+static method test(core::int x, () → void f) → void {
#L1:
switch(x) {
#L2:
case #C1:
{
- f(){() →* void};
+ f(){() → void};
continue #L3;
}
#L3:
case #C2:
{
- f(){() →* void};
+ f(){() → void};
break #L1;
}
}
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart.weak.outline.expect b/pkg/front_end/testcases/inference/switch_continue.dart.weak.outline.expect
index 972d948..4f84e4e 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/switch_continue.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(core::int* x, () →* void f) → void
+static method test(core::int x, () → void f) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/switch_continue.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/switch_continue.dart.weak.transformed.expect
index 64406d0..aa4038a 100644
--- a/pkg/front_end/testcases/inference/switch_continue.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/switch_continue.dart.weak.transformed.expect
@@ -1,20 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(core::int* x, () →* void f) → void {
+static method test(core::int x, () → void f) → void {
#L1:
switch(x) {
#L2:
case #C1:
{
- f(){() →* void};
+ f(){() → void};
continue #L3;
}
#L3:
case #C2:
{
- f(){() →* void};
+ f(){() → void};
break #L1;
}
}
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart b/pkg/front_end/testcases/inference/symbol_literal.dart
index f5a5d24..7aeae82 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test() {
- var /*@ type=Symbol* */ x = #foo;
+ var /*@type=Symbol*/ x = #foo;
}
main() {}
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline.expect b/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline.expect
index dfdb7cb..a6bcf94 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test() {}
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline_modelled.expect
index 7d0b674..72a3ba0 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.expect b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.expect
index 1a4d6a8..b5bafd8 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::Symbol* x = #C1;
+ core::Symbol x = #C1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.modular.expect b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.modular.expect
index 1a4d6a8..b5bafd8 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::Symbol* x = #C1;
+ core::Symbol x = #C1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.outline.expect b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.outline.expect
index c74ce2b..01b7bf5 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method test() → void
diff --git a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.transformed.expect
index 1a4d6a8..b5bafd8 100644
--- a/pkg/front_end/testcases/inference/symbol_literal.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/symbol_literal.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method test() → void {
- core::Symbol* x = #C1;
+ core::Symbol x = #C1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/this_reference.dart b/pkg/front_end/testcases/inference/this_reference.dart
index 1d6bc7e..dc6c99c 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart
+++ b/pkg/front_end/testcases/inference/this_reference.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class C<T> {
void f() {
- var /*@ type=C<C::T*>* */ x = this;
+ var /*@type=C<C::T%>*/ x = this;
}
}
diff --git a/pkg/front_end/testcases/inference/this_reference.dart.textual_outline.expect b/pkg/front_end/testcases/inference/this_reference.dart.textual_outline.expect
index 131af67..c213951 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/this_reference.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/this_reference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/this_reference.dart.textual_outline_modelled.expect
index 131af67..c213951 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/this_reference.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/this_reference.dart.weak.expect b/pkg/front_end/testcases/inference/this_reference.dart.weak.expect
index 06fb537..7bb3d24 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/this_reference.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
method f() → void {
- self::C<self::C::T*>* x = this;
+ self::C<self::C::T%> x = this;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/this_reference.dart.weak.modular.expect b/pkg/front_end/testcases/inference/this_reference.dart.weak.modular.expect
index 06fb537..7bb3d24 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/this_reference.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
method f() → void {
- self::C<self::C::T*>* x = this;
+ self::C<self::C::T%> x = this;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/this_reference.dart.weak.outline.expect b/pkg/front_end/testcases/inference/this_reference.dart.weak.outline.expect
index 393bcdd..2a9d1dd 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/this_reference.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
;
method f() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/this_reference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/this_reference.dart.weak.transformed.expect
index 06fb537..7bb3d24 100644
--- a/pkg/front_end/testcases/inference/this_reference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/this_reference.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
method f() → void {
- self::C<self::C::T*>* x = this;
+ self::C<self::C::T%> x = this;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart
index e6392ab..1e4e6bc 100644
--- a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,7 +12,7 @@
typedef int IntToInt(int i);
IntToInt a() {
- return /*@ returnType=int* */ (/*@ type=int* */ x) => x;
+ return /*@returnType=int**/ (/*@type=int**/ x) => x;
}
Future<IntToInt> b() async {
@@ -19,22 +21,22 @@
}
Iterable<IntToInt> c() sync* {
- yield /*@ returnType=int* */ (/*@ type=int* */ x) => x;
+ yield /*@returnType=int**/ (/*@type=int**/ x) => x;
}
Iterable<IntToInt> d() sync* {
- yield* /*@ typeArgs=(int*) ->* int* */ [
- /*@ returnType=int* */ (/*@ type=int* */ x) => x
+ yield* /*@typeArgs=(int*) ->* int**/ [
+ /*@returnType=int**/ (/*@type=int**/ x) => x
];
}
Stream<IntToInt> e() async* {
- yield /*@ returnType=int* */ (/*@ type=int* */ x) => x;
+ yield /*@returnType=int**/ (/*@type=int**/ x) => x;
}
Stream<IntToInt> f() async* {
- yield* new /*@ typeArgs=(int*) ->* int* */ Stream.fromIterable(
- /*@ typeArgs=(int*) ->* int* */ [/*@ returnType=int* */ (/*@ type=int* */ x) => x]);
+ yield* new /*@typeArgs=(int*) ->* int**/ Stream.fromIterable(
+ /*@typeArgs=(int*) ->* int**/ [/*@returnType=int**/ (/*@type=int**/ x) => x]);
}
main() {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.expect
index f7164a5..c4268b8 100644
--- a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/top_level_return_and_yield.dart:18:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+// pkg/front_end/testcases/inference/top_level_return_and_yield.dart:20:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
// - 'Future' is from 'dart:async'.
// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
// ^
@@ -18,7 +18,7 @@
return (core::int* x) → core::int* => x;
}
static method b() → asy::Future<(core::int*) →* core::int*>* async /* futureValueType= (core::int*) →* core::int* */ {
- return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield.dart:18:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+ return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield.dart:20:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
- 'Future' is from 'dart:async'.
return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
^" in ((dynamic x) → dynamic => x) as{TypeError} FutureOr<(core::int*) →* core::int*>*;
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.modular.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.modular.expect
index f7164a5..c4268b8 100644
--- a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.modular.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/top_level_return_and_yield.dart:18:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+// pkg/front_end/testcases/inference/top_level_return_and_yield.dart:20:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
// - 'Future' is from 'dart:async'.
// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
// ^
@@ -18,7 +18,7 @@
return (core::int* x) → core::int* => x;
}
static method b() → asy::Future<(core::int*) →* core::int*>* async /* futureValueType= (core::int*) →* core::int* */ {
- return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield.dart:18:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+ return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield.dart:20:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
- 'Future' is from 'dart:async'.
return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
^" in ((dynamic x) → dynamic => x) as{TypeError} FutureOr<(core::int*) →* core::int*>*;
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.transformed.expect
index ab01829..7280d25 100644
--- a/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield.dart.weak.transformed.expect
@@ -2,7 +2,7 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference/top_level_return_and_yield.dart:18:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+// pkg/front_end/testcases/inference/top_level_return_and_yield.dart:20:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
// - 'Future' is from 'dart:async'.
// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
// ^
@@ -18,7 +18,7 @@
return (core::int* x) → core::int* => x;
}
static method b() → asy::Future<(core::int*) →* core::int*>* async /* futureValueType= (core::int*) →* core::int* */ {
- return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield.dart:18:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
+ return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield.dart:20:36: Error: A value of type 'Future<dynamic Function(dynamic)>' can't be assigned to a variable of type 'FutureOr<int Function(int)>'.
- 'Future' is from 'dart:async'.
return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
^" in ((dynamic x) → dynamic => x) as{TypeError} FutureOr<(core::int*) →* core::int*>*;
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart
new file mode 100644
index 0000000..e6fd67e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart
@@ -0,0 +1,40 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+import 'dart:async';
+
+typedef int IntToInt(int i);
+
+IntToInt a() {
+ return /*@returnType=int*/ (/*@type=int*/ x) => x;
+}
+
+Future<IntToInt> b() async {
+ // TODO(paulberry): this is broken due to bug 29689.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+}
+
+Iterable<IntToInt> c() sync* {
+ yield /*@returnType=int*/ (/*@type=int*/ x) => x;
+}
+
+Iterable<IntToInt> d() sync* {
+ yield* /*@typeArgs=(int) -> int*/ [
+ /*@returnType=int*/ (/*@type=int*/ x) => x
+ ];
+}
+
+Stream<IntToInt> e() async* {
+ yield /*@returnType=int*/ (/*@type=int*/ x) => x;
+}
+
+Stream<IntToInt> f() async* {
+ yield* new /*@typeArgs=(int) -> int*/ Stream.fromIterable(
+ /*@typeArgs=(int) -> int*/ [/*@returnType=int*/ (/*@type=int*/ x) => x]);
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.textual_outline.expect
new file mode 100644
index 0000000..505dfb3
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.textual_outline.expect
@@ -0,0 +1,12 @@
+library test;
+
+import 'dart:async';
+
+typedef int IntToInt(int i);
+IntToInt a() {}
+Future<IntToInt> b() async {}
+Iterable<IntToInt> c() sync* {}
+Iterable<IntToInt> d() sync* {}
+Stream<IntToInt> e() async* {}
+Stream<IntToInt> f() async* {}
+main() {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1047aa8
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.textual_outline_modelled.expect
@@ -0,0 +1,12 @@
+library test;
+
+import 'dart:async';
+
+Future<IntToInt> b() async {}
+IntToInt a() {}
+Iterable<IntToInt> c() sync* {}
+Iterable<IntToInt> d() sync* {}
+Stream<IntToInt> e() async* {}
+Stream<IntToInt> f() async* {}
+main() {}
+typedef int IntToInt(int i);
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.expect
new file mode 100644
index 0000000..6d988db
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.expect
@@ -0,0 +1,38 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/top_level_return_and_yield2.dart:18:36: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+// - 'Future' is from 'dart:async'.
+// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method a() → (core::int) → core::int {
+ return (core::int x) → core::int => x;
+}
+static method b() → asy::Future<(core::int) → core::int> async /* futureValueType= (core::int) → core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield2.dart:18:36: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+ - 'Future' is from 'dart:async'.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ ^" in ((dynamic x) → dynamic => x) as{TypeError,ForNonNullableByDefault} (core::int) → core::int;
+}
+static method c() → core::Iterable<(core::int) → core::int> sync* {
+ yield(core::int x) → core::int => x;
+}
+static method d() → core::Iterable<(core::int) → core::int> sync* {
+ yield*<(core::int) → core::int>[(core::int x) → core::int => x];
+}
+static method e() → asy::Stream<(core::int) → core::int> async* {
+ yield(core::int x) → core::int => x;
+}
+static method f() → asy::Stream<(core::int) → core::int> async* {
+ yield* asy::Stream::fromIterable<(core::int) → core::int>(<(core::int) → core::int>[(core::int x) → core::int => x]);
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.modular.expect
new file mode 100644
index 0000000..6d988db
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.modular.expect
@@ -0,0 +1,38 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/top_level_return_and_yield2.dart:18:36: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+// - 'Future' is from 'dart:async'.
+// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method a() → (core::int) → core::int {
+ return (core::int x) → core::int => x;
+}
+static method b() → asy::Future<(core::int) → core::int> async /* futureValueType= (core::int) → core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield2.dart:18:36: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+ - 'Future' is from 'dart:async'.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ ^" in ((dynamic x) → dynamic => x) as{TypeError,ForNonNullableByDefault} (core::int) → core::int;
+}
+static method c() → core::Iterable<(core::int) → core::int> sync* {
+ yield(core::int x) → core::int => x;
+}
+static method d() → core::Iterable<(core::int) → core::int> sync* {
+ yield*<(core::int) → core::int>[(core::int x) → core::int => x];
+}
+static method e() → asy::Stream<(core::int) → core::int> async* {
+ yield(core::int x) → core::int => x;
+}
+static method f() → asy::Stream<(core::int) → core::int> async* {
+ yield* asy::Stream::fromIterable<(core::int) → core::int>(<(core::int) → core::int>[(core::int x) → core::int => x]);
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.outline.expect
new file mode 100644
index 0000000..81d8af6
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.outline.expect
@@ -0,0 +1,22 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method a() → (core::int) → core::int
+ ;
+static method b() → asy::Future<(core::int) → core::int> async
+ ;
+static method c() → core::Iterable<(core::int) → core::int> sync*
+ ;
+static method d() → core::Iterable<(core::int) → core::int> sync*
+ ;
+static method e() → asy::Stream<(core::int) → core::int> async*
+ ;
+static method f() → asy::Stream<(core::int) → core::int> async*
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.transformed.expect
new file mode 100644
index 0000000..cdc7727
--- /dev/null
+++ b/pkg/front_end/testcases/inference/top_level_return_and_yield2.dart.weak.transformed.expect
@@ -0,0 +1,38 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference/top_level_return_and_yield2.dart:18:36: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+// - 'Future' is from 'dart:async'.
+// return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+// ^
+//
+import self as self;
+import "dart:core" as core;
+import "dart:async" as asy;
+
+import "dart:async";
+
+typedef IntToInt = (core::int) → core::int;
+static method a() → (core::int) → core::int {
+ return (core::int x) → core::int => x;
+}
+static method b() → asy::Future<(core::int) → core::int> async /* futureValueType= (core::int) → core::int */ {
+ return invalid-expression "pkg/front_end/testcases/inference/top_level_return_and_yield2.dart:18:36: Error: A value of type 'dynamic Function(dynamic)' can't be returned from an async function with return type 'Future<int Function(int)>'.
+ - 'Future' is from 'dart:async'.
+ return /*@ returnType=dynamic */ (/*@ type=dynamic */ x) => x;
+ ^" in ((dynamic x) → dynamic => x) as{TypeError,ForNonNullableByDefault} (core::int) → core::int;
+}
+static method c() → core::Iterable<(core::int) → core::int> sync* {
+ yield(core::int x) → core::int => x;
+}
+static method d() → core::Iterable<(core::int) → core::int> sync* {
+ yield* core::_GrowableList::_literal1<(core::int) → core::int>((core::int x) → core::int => x);
+}
+static method e() → asy::Stream<(core::int) → core::int> async* {
+ yield(core::int x) → core::int => x;
+}
+static method f() → asy::Stream<(core::int) → core::int> async* {
+ yield* asy::Stream::fromIterable<(core::int) → core::int>(core::_GrowableList::_literal1<(core::int) → core::int>((core::int x) → core::int => x));
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart
index ba895ed..80477d3 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.md file.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
var i = 0;
main() {
- var /*@ type=int* */ j = i;
+ var /*@type=int*/ j = i;
}
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline.expect
index 0dfdb8d..8a7c345 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var i = 0;
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline_modelled.expect
index 65505f3..13c449d 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.expect
index 9ab8405..04c37f0 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* i = 0;
+static field core::int i = 0;
static method main() → dynamic {
- core::int* j = self::i;
+ core::int j = self::i;
}
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.modular.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.modular.expect
index 9ab8405..04c37f0 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* i = 0;
+static field core::int i = 0;
static method main() → dynamic {
- core::int* j = self::i;
+ core::int j = self::i;
}
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.outline.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.outline.expect
index e393ff8..09d7466 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* i;
+static field core::int i;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.transformed.expect
index 9ab8405..04c37f0 100644
--- a/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/toplevel_inference_toplevel_var.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* i = 0;
+static field core::int i = 0;
static method main() → dynamic {
- core::int* j = self::i;
+ core::int j = self::i;
}
diff --git a/pkg/front_end/testcases/inference/try_catch.dart b/pkg/front_end/testcases/inference/try_catch.dart
index 383b979..99f93f3 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart
+++ b/pkg/front_end/testcases/inference/try_catch.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,18 +13,18 @@
void test(void f()) {
try {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
f();
} on C {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
} on D catch (x) {
- var /*@ type=D* */ x2 = x;
+ var /*@type=D*/ x2 = x;
} on E catch (x, y) {
- var /*@ type=E* */ x2 = x;
- var /*@ type=StackTrace* */ y2 = y;
+ var /*@type=E*/ x2 = x;
+ var /*@type=StackTrace*/ y2 = y;
} catch (x, y) {
- var /*@ type=dynamic */ x2 = x;
- var /*@ type=StackTrace* */ y2 = y;
+ var /*@type=Object*/ x2 = x;
+ var /*@type=StackTrace*/ y2 = y;
}
}
diff --git a/pkg/front_end/testcases/inference/try_catch.dart.textual_outline.expect b/pkg/front_end/testcases/inference/try_catch.dart.textual_outline.expect
index 3b9581f..e8f8435 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/try_catch.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {}
diff --git a/pkg/front_end/testcases/inference/try_catch.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/try_catch.dart.textual_outline_modelled.expect
index c8e93cd..19f476f 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/try_catch.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {}
diff --git a/pkg/front_end/testcases/inference/try_catch.dart.weak.expect b/pkg/front_end/testcases/inference/try_catch.dart.weak.expect
index 086e91e..e2ab9d0 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/try_catch.dart.weak.expect
@@ -1,70 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
- on self::C* catch(no-exception-var) {
- core::int* x = 0;
+ on self::C catch(no-exception-var) {
+ core::int x = 0;
}
- on self::D* catch(final self::D* x) {
- self::D* x2 = x;
+ on self::D catch(final self::D x) {
+ self::D x2 = x;
}
- on self::E* catch(final self::E* x, final core::StackTrace* y) {
- self::E* x2 = x;
- core::StackTrace* y2 = y;
+ on self::E catch(final self::E x, final core::StackTrace y) {
+ self::E x2 = x;
+ core::StackTrace y2 = y;
}
- on dynamic catch(final dynamic x, final core::StackTrace* y) {
- dynamic x2 = x;
- core::StackTrace* y2 = y;
+ on core::Object catch(final core::Object x, final core::StackTrace y) {
+ core::Object x2 = x;
+ core::StackTrace y2 = y;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_catch.dart.weak.modular.expect b/pkg/front_end/testcases/inference/try_catch.dart.weak.modular.expect
index 086e91e..e2ab9d0 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/try_catch.dart.weak.modular.expect
@@ -1,70 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
- on self::C* catch(no-exception-var) {
- core::int* x = 0;
+ on self::C catch(no-exception-var) {
+ core::int x = 0;
}
- on self::D* catch(final self::D* x) {
- self::D* x2 = x;
+ on self::D catch(final self::D x) {
+ self::D x2 = x;
}
- on self::E* catch(final self::E* x, final core::StackTrace* y) {
- self::E* x2 = x;
- core::StackTrace* y2 = y;
+ on self::E catch(final self::E x, final core::StackTrace y) {
+ self::E x2 = x;
+ core::StackTrace y2 = y;
}
- on dynamic catch(final dynamic x, final core::StackTrace* y) {
- dynamic x2 = x;
- core::StackTrace* y2 = y;
+ on core::Object catch(final core::Object x, final core::StackTrace y) {
+ core::Object x2 = x;
+ core::StackTrace y2 = y;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_catch.dart.weak.outline.expect b/pkg/front_end/testcases/inference/try_catch.dart.weak.outline.expect
index bf05fd8..a514399 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/try_catch.dart.weak.outline.expect
@@ -1,50 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void
+static method test(() → void f) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/try_catch.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/try_catch.dart.weak.transformed.expect
index 086e91e..e2ab9d0 100644
--- a/pkg/front_end/testcases/inference/try_catch.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/try_catch.dart.weak.transformed.expect
@@ -1,70 +1,40 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
- on self::C* catch(no-exception-var) {
- core::int* x = 0;
+ on self::C catch(no-exception-var) {
+ core::int x = 0;
}
- on self::D* catch(final self::D* x) {
- self::D* x2 = x;
+ on self::D catch(final self::D x) {
+ self::D x2 = x;
}
- on self::E* catch(final self::E* x, final core::StackTrace* y) {
- self::E* x2 = x;
- core::StackTrace* y2 = y;
+ on self::E catch(final self::E x, final core::StackTrace y) {
+ self::E x2 = x;
+ core::StackTrace y2 = y;
}
- on dynamic catch(final dynamic x, final core::StackTrace* y) {
- dynamic x2 = x;
- core::StackTrace* y2 = y;
+ on core::Object catch(final core::Object x, final core::StackTrace y) {
+ core::Object x2 = x;
+ core::StackTrace y2 = y;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart b/pkg/front_end/testcases/inference/try_catch_finally.dart
index df54b68..43bb6f7 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,20 +13,20 @@
void test(void f()) {
try {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
f();
} on C {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
} on D catch (x) {
- var /*@ type=D* */ x2 = x;
+ var /*@type=D*/ x2 = x;
} on E catch (x, y) {
- var /*@ type=E* */ x2 = x;
- var /*@ type=StackTrace* */ y2 = y;
+ var /*@type=E*/ x2 = x;
+ var /*@type=StackTrace*/ y2 = y;
} catch (x, y) {
- var /*@ type=dynamic */ x2 = x;
- var /*@ type=StackTrace* */ y2 = y;
+ var /*@type=Object*/ x2 = x;
+ var /*@type=StackTrace*/ y2 = y;
} finally {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
}
}
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline.expect b/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline.expect
index 3b9581f..e8f8435 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {}
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline_modelled.expect
index c8e93cd..19f476f 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {}
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.expect b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.expect
index 62db44d..6d425de 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.expect
@@ -1,74 +1,44 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
- on self::C* catch(no-exception-var) {
- core::int* x = 0;
+ on self::C catch(no-exception-var) {
+ core::int x = 0;
}
- on self::D* catch(final self::D* x) {
- self::D* x2 = x;
+ on self::D catch(final self::D x) {
+ self::D x2 = x;
}
- on self::E* catch(final self::E* x, final core::StackTrace* y) {
- self::E* x2 = x;
- core::StackTrace* y2 = y;
+ on self::E catch(final self::E x, final core::StackTrace y) {
+ self::E x2 = x;
+ core::StackTrace y2 = y;
}
- on dynamic catch(final dynamic x, final core::StackTrace* y) {
- dynamic x2 = x;
- core::StackTrace* y2 = y;
+ on core::Object catch(final core::Object x, final core::StackTrace y) {
+ core::Object x2 = x;
+ core::StackTrace y2 = y;
}
finally {
- core::int* x = 0;
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.modular.expect b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.modular.expect
index 62db44d..6d425de 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.modular.expect
@@ -1,74 +1,44 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
- on self::C* catch(no-exception-var) {
- core::int* x = 0;
+ on self::C catch(no-exception-var) {
+ core::int x = 0;
}
- on self::D* catch(final self::D* x) {
- self::D* x2 = x;
+ on self::D catch(final self::D x) {
+ self::D x2 = x;
}
- on self::E* catch(final self::E* x, final core::StackTrace* y) {
- self::E* x2 = x;
- core::StackTrace* y2 = y;
+ on self::E catch(final self::E x, final core::StackTrace y) {
+ self::E x2 = x;
+ core::StackTrace y2 = y;
}
- on dynamic catch(final dynamic x, final core::StackTrace* y) {
- dynamic x2 = x;
- core::StackTrace* y2 = y;
+ on core::Object catch(final core::Object x, final core::StackTrace y) {
+ core::Object x2 = x;
+ core::StackTrace y2 = y;
}
finally {
- core::int* x = 0;
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.outline.expect b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.outline.expect
index bf05fd8..a514399 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.outline.expect
@@ -1,50 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void
+static method test(() → void f) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.transformed.expect
index 62db44d..6d425de 100644
--- a/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/try_catch_finally.dart.weak.transformed.expect
@@ -1,74 +1,44 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
- on self::C* catch(no-exception-var) {
- core::int* x = 0;
+ on self::C catch(no-exception-var) {
+ core::int x = 0;
}
- on self::D* catch(final self::D* x) {
- self::D* x2 = x;
+ on self::D catch(final self::D x) {
+ self::D x2 = x;
}
- on self::E* catch(final self::E* x, final core::StackTrace* y) {
- self::E* x2 = x;
- core::StackTrace* y2 = y;
+ on self::E catch(final self::E x, final core::StackTrace y) {
+ self::E x2 = x;
+ core::StackTrace y2 = y;
}
- on dynamic catch(final dynamic x, final core::StackTrace* y) {
- dynamic x2 = x;
- core::StackTrace* y2 = y;
+ on core::Object catch(final core::Object x, final core::StackTrace y) {
+ core::Object x2 = x;
+ core::StackTrace y2 = y;
}
finally {
- core::int* x = 0;
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_catch_promotion.dart b/pkg/front_end/testcases/inference/try_catch_promotion.dart
index c6f6a1a..17f1e21 100644
--- a/pkg/front_end/testcases/inference/try_catch_promotion.dart
+++ b/pkg/front_end/testcases/inference/try_catch_promotion.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,13 +17,13 @@
try {
f();
} on C catch (x, y) {
- var /*@ type=C* */ x1 = x;
- var /*@ type=StackTrace* */ y1 = y;
+ var /*@type=C**/ x1 = x;
+ var /*@type=StackTrace**/ y1 = y;
if (x is D) {
- var /*@ type=D* */ x2 = /*@ promotedType=D* */ x;
+ var /*@type=D**/ x2 = /*@promotedType=D**/ x;
}
if (y is E) {
- var /*@ type=E* */ y2 = /*@ promotedType=E* */ y;
+ var /*@type=E**/ y2 = /*@promotedType=E**/ y;
}
}
}
diff --git a/pkg/front_end/testcases/inference/try_finally.dart b/pkg/front_end/testcases/inference/try_finally.dart
index 86f84bd..e8b537f 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart
+++ b/pkg/front_end/testcases/inference/try_finally.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
void test(void f()) {
try {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
f();
} finally {
- var /*@ type=int* */ x = 0;
+ var /*@type=int*/ x = 0;
}
}
diff --git a/pkg/front_end/testcases/inference/try_finally.dart.textual_outline.expect b/pkg/front_end/testcases/inference/try_finally.dart.textual_outline.expect
index 87274b7..4323848 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/try_finally.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
void test(void f()) {}
diff --git a/pkg/front_end/testcases/inference/try_finally.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/try_finally.dart.textual_outline_modelled.expect
index b971a45..6847854 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/try_finally.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/try_finally.dart.weak.expect b/pkg/front_end/testcases/inference/try_finally.dart.weak.expect
index f52f88a..7335aff 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/try_finally.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
finally {
- core::int* x = 0;
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_finally.dart.weak.modular.expect b/pkg/front_end/testcases/inference/try_finally.dart.weak.modular.expect
index f52f88a..7335aff 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/try_finally.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
finally {
- core::int* x = 0;
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/try_finally.dart.weak.outline.expect b/pkg/front_end/testcases/inference/try_finally.dart.weak.outline.expect
index c6c205c..b789ad0 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/try_finally.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
-static method test(() →* void f) → void
+static method test(() → void f) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/try_finally.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/try_finally.dart.weak.transformed.expect
index f52f88a..7335aff 100644
--- a/pkg/front_end/testcases/inference/try_finally.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/try_finally.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method test(() →* void f) → void {
+static method test(() → void f) → void {
try {
- core::int* x = 0;
- f(){() →* void};
+ core::int x = 0;
+ f(){() → void};
}
finally {
- core::int* x = 0;
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/type_cast.dart b/pkg/front_end/testcases/inference/type_cast.dart
index 65172d7..d55a1cc 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart
+++ b/pkg/front_end/testcases/inference/type_cast.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -16,5 +16,5 @@
main() {
A<num> a = new B<int>();
- var /*@ type=B<int*>* */ b = (a as B<int>);
+ var /*@type=B<int>*/ b = (a as B<int>);
}
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.textual_outline.expect b/pkg/front_end/testcases/inference/type_cast.dart.textual_outline.expect
index c8bac54..eccaf58 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/type_cast.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {}
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/type_cast.dart.textual_outline_modelled.expect
index a1a2462..5483162 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/type_cast.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
A<num> a = new B<int>();
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.weak.expect b/pkg/front_end/testcases/inference/type_cast.dart.weak.expect
index 4d12ac0..d8a38d3 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/type_cast.dart.weak.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
: super self::A::•()
;
method foo() → dynamic {}
}
-static field self::A<core::num*>* a = new self::B::•<core::int*>();
-static field self::B<core::int*>* b = self::a as self::B<core::int*>*;
+static field self::A<core::num> a = new self::B::•<core::int>();
+static field self::B<core::int> b = self::a as{ForNonNullableByDefault} self::B<core::int>;
static method main() → dynamic {
- self::A<core::num*>* a = new self::B::•<core::int*>();
- self::B<core::int*>* b = a as self::B<core::int*>*;
+ self::A<core::num> a = new self::B::•<core::int>();
+ self::B<core::int> b = a as{ForNonNullableByDefault} self::B<core::int>;
}
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.weak.modular.expect b/pkg/front_end/testcases/inference/type_cast.dart.weak.modular.expect
index 4d12ac0..d8a38d3 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/type_cast.dart.weak.modular.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
: super self::A::•()
;
method foo() → dynamic {}
}
-static field self::A<core::num*>* a = new self::B::•<core::int*>();
-static field self::B<core::int*>* b = self::a as self::B<core::int*>*;
+static field self::A<core::num> a = new self::B::•<core::int>();
+static field self::B<core::int> b = self::a as{ForNonNullableByDefault} self::B<core::int>;
static method main() → dynamic {
- self::A<core::num*>* a = new self::B::•<core::int*>();
- self::B<core::int*>* b = a as self::B<core::int*>*;
+ self::A<core::num> a = new self::B::•<core::int>();
+ self::B<core::int> b = a as{ForNonNullableByDefault} self::B<core::int>;
}
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.weak.outline.expect b/pkg/front_end/testcases/inference/type_cast.dart.weak.outline.expect
index 236dd5e..12ac830 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/type_cast.dart.weak.outline.expect
@@ -1,28 +1,18 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
;
method foo() → dynamic
;
}
-static field self::A<core::num*>* a;
-static field self::B<core::int*>* b;
+static field self::A<core::num> a;
+static field self::B<core::int> b;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/type_cast.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/type_cast.dart.weak.transformed.expect
index 4d12ac0..d8a38d3 100644
--- a/pkg/front_end/testcases/inference/type_cast.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/type_cast.dart.weak.transformed.expect
@@ -1,31 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends self::A<self::B::T*> {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends self::A<self::B::T%> {
+ synthetic constructor •() → self::B<self::B::T%>
: super self::A::•()
;
method foo() → dynamic {}
}
-static field self::A<core::num*>* a = new self::B::•<core::int*>();
-static field self::B<core::int*>* b = self::a as self::B<core::int*>*;
+static field self::A<core::num> a = new self::B::•<core::int>();
+static field self::B<core::int> b = self::a as{ForNonNullableByDefault} self::B<core::int>;
static method main() → dynamic {
- self::A<core::num*>* a = new self::B::•<core::int*>();
- self::B<core::int*>* b = a as self::B<core::int*>*;
+ self::A<core::num> a = new self::B::•<core::int>();
+ self::B<core::int> b = a as{ForNonNullableByDefault} self::B<core::int>;
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_ignores_local_functions.dart b/pkg/front_end/testcases/inference/type_promotion_ignores_local_functions.dart
index e2b7d13..1a28c35 100644
--- a/pkg/front_end/testcases/inference/type_promotion_ignores_local_functions.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_ignores_local_functions.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.md file.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/type_promotion_not_and_not.dart b/pkg/front_end/testcases/inference/type_promotion_not_and_not.dart
index b8f5425..fc62a68 100644
--- a/pkg/front_end/testcases/inference/type_promotion_not_and_not.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_not_and_not.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference/type_promotion_simple.dart b/pkg/front_end/testcases/inference/type_promotion_simple.dart
index c5c3a3f..59b05ef 100644
--- a/pkg/front_end/testcases/inference/type_promotion_simple.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_simple.dart
@@ -1,13 +1,15 @@
// Copyright (c) 2017, 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.md file.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
num n = null;
if (n is int) {
- var /*@ type=int* */ i = /*@ promotedType=int* */ n;
+ var /*@type=int**/ i = /*@promotedType=int**/ n;
}
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart
index 48dd5f7..1727cb6 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_access_in_a_closure.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.md file.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
num n = null;
if (n is int) {
- var /*@ type=num* */ i = n;
+ var /*@type=num**/ i = n;
/*@ returnType=Null */ () {
n;
};
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_assignment_in_scope.dart b/pkg/front_end/testcases/inference/type_promotion_stopped_by_assignment_in_scope.dart
index aa596ba..b1f351c 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_assignment_in_scope.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_assignment_in_scope.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.md file.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
num n = null;
if (n is int) {
- var /*@ type=num* */ i = n;
+ var /*@type=num**/ i = n;
n = null;
}
}
diff --git a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart
index 003e763..7edd92a 100644
--- a/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart
+++ b/pkg/front_end/testcases/inference/type_promotion_stopped_by_mutation_in_a_closure.dart
@@ -1,14 +1,16 @@
// Copyright (c) 2017, 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.md file.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
num n = null;
if (n is int) {
- var /*@ type=num* */ i = n;
+ var /*@type=num**/ i = n;
}
/*@ returnType=Null */ () {
n = null;
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart b/pkg/front_end/testcases/inference/unresolved_super.dart
index c8bbcea..e8ead1e 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
void test() {
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline.expect
index 1d34480..29102fa 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
void test() {}
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline_modelled.expect
index 1d34480..29102fa 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C {
void test() {}
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.expect b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.expect
index cd24891..4a2bde0 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,7 +10,7 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method test() → void {
@@ -18,17 +18,7 @@
var /*@type=invalid-type*/ v5 = super[0] = f();
^";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.modular.expect
index cd24891..4a2bde0 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,7 +10,7 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method test() → void {
@@ -18,17 +18,7 @@
var /*@type=invalid-type*/ v5 = super[0] = f();
^";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.outline.expect
index 8a9d429..f8ec4f2 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.transformed.expect
index cd24891..4a2bde0 100644
--- a/pkg/front_end/testcases/inference/unresolved_super.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unresolved_super.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,7 +10,7 @@
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method test() → void {
@@ -18,17 +18,7 @@
var /*@type=invalid-type*/ v5 = super[0] = f();
^";
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart
index fc2146f..851e724 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=double* */ v = (/*@ returnType=double* */ (/*@ type=dynamic */ x) =>
- 1.0)(/*@ returnType=int* */ () {
+ var /*@type=double*/ v = (/*@returnType=double*/ (/*@ type=dynamic */ x) =>
+ 1.0)(/*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.expect
index 4c0ed46..849ee92 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = ((dynamic x) → core::double* => 1.0)(() → core::int* {
+ core::double v = ((dynamic x) → core::double => 1.0)(() → core::int {
return 1;
- }){(dynamic) →* core::double*};
+ }){(dynamic) → core::double};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.modular.expect
index 4c0ed46..849ee92 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = ((dynamic x) → core::double* => 1.0)(() → core::int* {
+ core::double v = ((dynamic x) → core::double => 1.0)(() → core::int {
return 1;
- }){(dynamic) →* core::double*};
+ }){(dynamic) → core::double};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.transformed.expect
index 4c0ed46..849ee92 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_closure_call.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = ((dynamic x) → core::double* => 1.0)(() → core::int* {
+ core::double v = ((dynamic x) → core::double => 1.0)(() → core::int {
return 1;
- }){(dynamic) →* core::double*};
+ }){(dynamic) → core::double};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart
index 5272cf0..208b13d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
C(T x());
}
-var v = new C<dynamic>(/*@ returnType=int* */ () {
+var v = new C<dynamic>(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline.expect
index ba4ca77..94fe6c8 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
index c607d85..faaeac6 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.expect
index e65f4933..1ac66e6 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic>* v = new self::C::•<dynamic>(() → core::int* {
+static field self::C<dynamic> v = new self::C::•<dynamic>(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.modular.expect
index e65f4933..1ac66e6 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic>* v = new self::C::•<dynamic>(() → core::int* {
+static field self::C<dynamic> v = new self::C::•<dynamic>(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.outline.expect
index a131948..8416714 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic>* v;
+static field self::C<dynamic> v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.transformed.expect
index e65f4933..1ac66e6 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_dynamic_param.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic>* v = new self::C::•<dynamic>(() → core::int* {
+static field self::C<dynamic> v = new self::C::•<dynamic>(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart
index cd18e11..e59070e 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
C(T x());
}
-var v = new C<int>(/*@ returnType=int* */ () {
+var v = new C<int>(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline.expect
index bc6481e..045c2e8 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline_modelled.expect
index c66d6cd..7917d91 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.expect
index 156c565..5657af1 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* v = new self::C::•<core::int*>(() → core::int* {
+static field self::C<core::int> v = new self::C::•<core::int>(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.modular.expect
index 156c565..5657af1 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* v = new self::C::•<core::int*>(() → core::int* {
+static field self::C<core::int> v = new self::C::•<core::int>(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.outline.expect
index 1341c19..7275807 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* v;
+static field self::C<core::int> v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.transformed.expect
index 156c565..5657af1 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_explicit_type_param.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::int*>* v = new self::C::•<core::int*>(() → core::int* {
+static field self::C<core::int> v = new self::C::•<core::int>(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart
index 115db3d..4a18501 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,8 +10,8 @@
}
main() {
- var /*@ type=C<int*>* */ v = new /*@ typeArgs=int* */ C(
- /*@ returnType=int* */ () {
+ var /*@type=C<int>*/ v = new /*@typeArgs=int*/ C(
+ /*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline.expect
index 59da5f7..db10511 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline_modelled.expect
index 59da5f7..db10511 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C<T> {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.expect
index 0e7282f..55bbcb3 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* v = new self::C::•<core::int*>(() → core::int* {
+ self::C<core::int> v = new self::C::•<core::int>(() → core::int {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.modular.expect
index 0e7282f..55bbcb3 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.modular.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* v = new self::C::•<core::int*>(() → core::int* {
+ self::C<core::int> v = new self::C::•<core::int>(() → core::int {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.outline.expect
index 080a3ad6..30cf3cb 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.transformed.expect
index 0e7282f..55bbcb3 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_implicit_type_param.dart.weak.transformed.expect
@@ -1,24 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object {
- constructor •(() →* self::C::T* x) → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(() → self::C::T% x) → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::C<core::int*>* v = new self::C::•<core::int*>(() → core::int* {
+ self::C<core::int> v = new self::C::•<core::int>(() → core::int {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart
index 6204139..0c85e2f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
C(x());
}
-var v = new C(/*@ returnType=int* */ () {
+var v = new C(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline.expect
index 368cf47..77314e89 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline_modelled.expect
index fceca5d..b916948 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.expect
index 939c023..3204265 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* dynamic x) → self::C*
+ constructor •(() → dynamic x) → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* v = new self::C::•(() → core::int* {
+static field self::C v = new self::C::•(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.modular.expect
index 939c023..3204265 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* dynamic x) → self::C*
+ constructor •(() → dynamic x) → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* v = new self::C::•(() → core::int* {
+static field self::C v = new self::C::•(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.outline.expect
index 38051eb..14fcb68 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* dynamic x) → self::C*
+ constructor •(() → dynamic x) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* v;
+static field self::C v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.transformed.expect
index 939c023..3204265 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_constructor_call_no_type_param.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- constructor •(() →* dynamic x) → self::C*
+ constructor •(() → dynamic x) → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* v = new self::C::•(() → core::int* {
+static field self::C v = new self::C::•(() → core::int {
return 1;
});
static method main() → dynamic {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart
index f537045..72be85e 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
var v = f<dynamic>(
- /*@ returnType=int* */ () {
+ /*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline.expect
index 499d54d..5426b5f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
index d50e9b0..aed6c69 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.expect
index 2ac59fb..459dc22 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v = self::f<dynamic>(() → core::int* {
+static field core::List<dynamic> v = self::f<dynamic>(() → core::int {
return 1;
});
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.modular.expect
index 2ac59fb..459dc22 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v = self::f<dynamic>(() → core::int* {
+static field core::List<dynamic> v = self::f<dynamic>(() → core::int {
return 1;
});
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.outline.expect
index 10eb51f..747286a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<dynamic> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.transformed.expect
index c0f9a58..5485217 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v = self::f<dynamic>(() → core::int* {
+static field core::List<dynamic> v = self::f<dynamic>(() → core::int {
return 1;
});
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart
index 502a159..6af8749 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = (f<dynamic>)/*@typeArgs=int**/(/*@returnType=int**/() {
+var v = (f<dynamic>)(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline.expect
index a630be5..3b30334 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline.expect
@@ -1,5 +1,7 @@
-// @dart = 2.9
library test;
+
List<T> f<T>(T g()) => <T>[g()];
-var v = (f<dynamic>) ( () { return 1; });
+var v = (f<dynamic>)(() {
+ return 1;
+});
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..02d867c
--- /dev/null
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+library test;
+
+List<T> f<T>(T g()) => <T>[g()];
+main() {}
+var v = (f<dynamic>)(() {
+ return 1;
+});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.expect
index cc03693..cb9ce8c 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<dynamic>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<dynamic> v = #C2(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → dynamic) → core::List<dynamic>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {}
constants {
#C1 = static-tearoff self::f
+ #C2 = instantiation #C1 <dynamic>
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.modular.expect
index cc03693..cb9ce8c 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<dynamic>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<dynamic> v = #C2(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → dynamic) → core::List<dynamic>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {}
constants {
#C1 = static-tearoff self::f
+ #C2 = instantiation #C1 <dynamic>
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.outline.expect
index a1a2465..747286a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.outline.expect
@@ -1,20 +1,9 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<dynamic>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<dynamic> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.transformed.expect
index de03af4..3439d30 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<dynamic>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<dynamic> v = #C2(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+}){(() → dynamic) → core::List<dynamic>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {}
constants {
#C1 = static-tearoff self::f
+ #C2 = instantiation #C1 <dynamic>
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart
index 892422b..0a3a0e2 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = (f)<dynamic>(/*info:INFERRED_TYPE_CLOSURE*/ /*@ returnType=int* */ () {
+var v = (f)<dynamic>(/*info:INFERRED_TYPE_CLOSURE*/ /*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect
index 2951359..6fabe27 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect
index 9a94d46..99e882a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect
index cf406c1..09ce4d5 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v = #C1<dynamic>(() → core::int* {
+static field core::List<dynamic> v = #C1<dynamic>(() → core::int {
return 1;
-}){(() →* dynamic) →* core::List<dynamic>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → dynamic) → core::List<dynamic>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect
index cf406c1..09ce4d5 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v = #C1<dynamic>(() → core::int* {
+static field core::List<dynamic> v = #C1<dynamic>(() → core::int {
return 1;
-}){(() →* dynamic) →* core::List<dynamic>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → dynamic) → core::List<dynamic>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect
index 10eb51f..747286a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<dynamic> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect
index 4bb6315..652966b 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<dynamic>* v = #C1<dynamic>(() → core::int* {
+static field core::List<dynamic> v = #C1<dynamic>(() → core::int {
return 1;
-}){(() →* dynamic) →* core::List<dynamic>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+}){(() → dynamic) → core::List<dynamic>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart
index a48b88a..d332d12 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = f<int>(/*@ returnType=int* */ () {
+var v = f<int>(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline.expect
index 5dc8569..3146638 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline_modelled.expect
index 9f8e2c4..df8a26a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.expect
index 06e337e..c2ecd13 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = self::f<core::int*>(() → core::int* {
+static field core::List<core::int> v = self::f<core::int>(() → core::int {
return 1;
});
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.modular.expect
index 06e337e..c2ecd13 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = self::f<core::int*>(() → core::int* {
+static field core::List<core::int> v = self::f<core::int>(() → core::int {
return 1;
});
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.outline.expect
index f0dd2fa..794a198 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<core::int> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.transformed.expect
index e7d7199..a8285c8 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = self::f<core::int*>(() → core::int* {
+static field core::List<core::int> v = self::f<core::int>(() → core::int {
return 1;
});
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart
index da80b1a..a02cc64 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = (f<int>)/*@typeArgs=int**/(/*@returnType=int**/() {
+var v = (f<int>)(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline.expect
index 9b37c02..a059306 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline.expect
@@ -1,5 +1,7 @@
-// @dart = 2.9
library test;
+
List<T> f<T>(T g()) => <T>[g()];
-var v = (f<int>) ( () { return 1; });
+var v = (f<int>)(() {
+ return 1;
+});
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..7ba6b6e
--- /dev/null
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.textual_outline_modelled.expect
@@ -0,0 +1,7 @@
+library test;
+
+List<T> f<T>(T g()) => <T>[g()];
+main() {}
+var v = (f<int>)(() {
+ return 1;
+});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.expect
index 9bf3b40..6e2251b 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.expect
@@ -1,25 +1,15 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<int>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C2(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {}
constants {
#C1 = static-tearoff self::f
+ #C2 = instantiation #C1 <core::int*>
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.modular.expect
index 9bf3b40..6e2251b 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<int>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C2(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {}
constants {
#C1 = static-tearoff self::f
+ #C2 = instantiation #C1 <core::int*>
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.outline.expect
index 229b708..794a198 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.outline.expect
@@ -1,20 +1,9 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<int>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<core::int> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.transformed.expect
index d7ccceb..64ffd36 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library test;
-//
-// Problems in library:
-//
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:9:11: Error: The 'constructor-tearoffs' language feature is disabled for this library.
-// Try removing the `@dart=` annotation or setting the language version to 2.15 or higher.
-// var v = (f<int>)/*@typeArgs=int**/(/*@returnType=int**/() {
-// ^
-// pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr1.dart:4:1: Context: This is the annotation that opts out this library from the 'constructor-tearoffs' language feature.
-// // @dart=2.9
-// ^^^^^^^^^^^^
-//
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C2(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {}
constants {
#C1 = static-tearoff self::f
+ #C2 = instantiation #C1 <core::int*>
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart
index fc14e3f..f8ab111 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = (f)<int>(/*info:INFERRED_TYPE_CLOSURE*/ /*@ returnType=int* */ () {
+var v = (f)<int>(/*info:INFERRED_TYPE_CLOSURE*/ /*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect
index fdae43a..c7bca42 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect
index 2030c1c..f634c6a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect
index 26fdda1..f47bc68 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect
index 26fdda1..f47bc68 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect
index f0dd2fa..794a198 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<core::int> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect
index 2f8644bb..a83c306 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart
index 16c6bc1..dba9b40 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart
@@ -1,13 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=List<int*>* */ v = /*@ typeArgs=int* */ f(
- /*@ returnType=int* */ () {
+ var /*@type=List<int>*/ v = /*@typeArgs=int*/ f(/*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline.expect
index fa051c0..6104397 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline_modelled.expect
index 700c8e7..158c522b4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.expect
index 720cf75..1111b25 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* v = self::f<core::int*>(() → core::int* {
+ core::List<core::int> v = self::f<core::int>(() → core::int {
return 1;
});
}
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.modular.expect
index 720cf75..1111b25 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* v = self::f<core::int*>(() → core::int* {
+ core::List<core::int> v = self::f<core::int>(() → core::int {
return 1;
});
}
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.outline.expect
index c7133df..9fb9d4e 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic
;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.transformed.expect
index a4b1aff..1c9c7cb 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* v = self::f<core::int*>(() → core::int* {
+ core::List<core::int> v = self::f<core::int>(() → core::int {
return 1;
});
}
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart
index 2554307..40cb1dc 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=List<int*>* */ v = (f) /*@ typeArgs=int* */ (
- /*@ returnType=int* */ () {
+ var /*@type=List<int>*/ v = (f) /*@typeArgs=int*/ (
+ /*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline.expect
index fa051c0..6104397 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline_modelled.expect
index 700c8e7..158c522b4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.expect
index 7def91f..d473315 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+ core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
constants {
#C1 = static-tearoff self::f
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.modular.expect
index 7def91f..d473315 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.modular.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+ core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
constants {
#C1 = static-tearoff self::f
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.outline.expect
index c7133df..9fb9d4e 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic
;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.transformed.expect
index a1dbf35..a191eb3 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_implicit_type_param_via_expr.dart.weak.transformed.expect
@@ -1,14 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+ core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
constants {
#C1 = static-tearoff self::f
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart
index 7883008..26a81c1 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=double* */ v = f(/*@ returnType=int* */ () {
+ var /*@type=double*/ v = f(/*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline.expect
index e0493db..a0e3c88 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline_modelled.expect
index c755492..3fe047c 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
double f(x) => 1.0;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.expect
index 715a3f3..a9f5618 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = self::f(() → core::int* {
+ core::double v = self::f(() → core::int {
return 1;
});
}
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
return 1.0;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.modular.expect
index 715a3f3..a9f5618 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = self::f(() → core::int* {
+ core::double v = self::f(() → core::int {
return 1;
});
}
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
return 1.0;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.outline.expect
index 8c0f7c6..61236f2 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic
;
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.transformed.expect
index 715a3f3..a9f5618 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = self::f(() → core::int* {
+ core::double v = self::f(() → core::int {
return 1;
});
}
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
return 1.0;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart
index 36586e3..e3263fb 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=double* */ v = (f)(/*@ returnType=int* */ () {
+ var /*@type=double*/ v = (f)(/*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline.expect
index e0493db..a0e3c88 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline_modelled.expect
index c755492..3fe047c 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
double f(x) => 1.0;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.expect
index d720962..595ce92 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = #C1(() → core::int* {
+ core::double v = #C1(() → core::int {
return 1;
- }){(dynamic) →* core::double*};
+ }){(dynamic) → core::double};
}
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
return 1.0;
constants {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.modular.expect
index d720962..595ce92 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = #C1(() → core::int* {
+ core::double v = #C1(() → core::int {
return 1;
- }){(dynamic) →* core::double*};
+ }){(dynamic) → core::double};
}
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
return 1.0;
constants {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.outline.expect
index 8c0f7c6..61236f2 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic
;
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.transformed.expect
index d720962..595ce92 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_function_call_no_type_param_via_expr.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::double* v = #C1(() → core::int* {
+ core::double v = #C1(() → core::int {
return 1;
- }){(dynamic) →* core::double*};
+ }){(dynamic) → core::double};
}
-static method f(dynamic x) → core::double*
+static method f(dynamic x) → core::double
return 1.0;
constants {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart
index e6f2e9b..2cfb863 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=List<dynamic>* */ v = <dynamic>[
- /*@ returnType=int* */ () {
+ var /*@type=List<dynamic>*/ v = <dynamic>[
+ /*@returnType=int*/ () {
return 1;
}
];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.expect
index bc2b33d..26b6075 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<dynamic>* v = <dynamic>[() → core::int* {
+ core::List<dynamic> v = <dynamic>[() → core::int {
return 1;
}];
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.modular.expect
index bc2b33d..26b6075 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<dynamic>* v = <dynamic>[() → core::int* {
+ core::List<dynamic> v = <dynamic>[() → core::int {
return 1;
}];
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.transformed.expect
index 5b31f4c..f52f597 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_dynamic.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<dynamic>* v = core::_GrowableList::_literal1<dynamic>(() → core::int* {
+ core::List<dynamic> v = core::_GrowableList::_literal1<dynamic>(() → core::int {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart
index 4ec0a0f..fdf37fcf 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
typedef int F();
main() {
- var /*@ type=List<() ->* int*>* */ v = <F>[
- /*@ returnType=int* */ () {
+ var /*@type=List<() -> int>*/ v = <F>[
+ /*@returnType=int*/ () {
return 1;
}
];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline.expect
index 5728c6e..0286208 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef int F();
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline_modelled.expect
index bf4a154..226c034 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.expect
index b747c51..96df817 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic {
- core::List<() →* core::int*>* v = <() →* core::int*>[() → core::int* {
+ core::List<() → core::int> v = <() → core::int>[() → core::int {
return 1;
}];
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.modular.expect
index b747c51..96df817 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic {
- core::List<() →* core::int*>* v = <() →* core::int*>[() → core::int* {
+ core::List<() → core::int> v = <() → core::int>[() → core::int {
return 1;
}];
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.outline.expect
index 87c776d..fa65d89 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.transformed.expect
index 71c0bd2..6c48cd4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_typed.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic {
- core::List<() →* core::int*>* v = core::_GrowableList::_literal1<() →* core::int*>(() → core::int* {
+ core::List<() → core::int> v = core::_GrowableList::_literal1<() → core::int>(() → core::int {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart
index e6728f8..1c4d50d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=List<() ->* int*>* */ v = /*@ typeArgs=() ->* int* */ [
- /*@ returnType=int* */ () {
+ var /*@type=List<() -> int>*/ v = /*@typeArgs=() -> int*/ [
+ /*@returnType=int*/ () {
return 1;
}
];
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.expect
index 5b2da50..f308b41 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<() →* core::int*>* v = <() →* core::int*>[() → core::int* {
+ core::List<() → core::int> v = <() → core::int>[() → core::int {
return 1;
}];
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.modular.expect
index 5b2da50..f308b41 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<() →* core::int*>* v = <() →* core::int*>[() → core::int* {
+ core::List<() → core::int> v = <() → core::int>[() → core::int {
return 1;
}];
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.transformed.expect
index cda2936..44aee32 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_list_untyped.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::List<() →* core::int*>* v = core::_GrowableList::_literal1<() →* core::int*>(() → core::int* {
+ core::List<() → core::int> v = core::_GrowableList::_literal1<() → core::int>(() → core::int {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart
index c906a26..af6dc4e 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=Map<int*, dynamic>* */ v = <int, dynamic>{
- 1: /*@ returnType=int* */ () {
+ var /*@type=Map<int, dynamic>*/ v = <int, dynamic>{
+ 1: /*@returnType=int*/ () {
return 1;
}
};
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.expect
index 07d95de..027bc7a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::Map<core::int*, dynamic>* v = <core::int*, dynamic>{1: () → core::int* {
+ core::Map<core::int, dynamic> v = <core::int, dynamic>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.modular.expect
index 07d95de..027bc7a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::Map<core::int*, dynamic>* v = <core::int*, dynamic>{1: () → core::int* {
+ core::Map<core::int, dynamic> v = <core::int, dynamic>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.transformed.expect
index 07d95de..027bc7a 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_dynamic.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::Map<core::int*, dynamic>* v = <core::int*, dynamic>{1: () → core::int* {
+ core::Map<core::int, dynamic> v = <core::int, dynamic>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart
index a03d5a2..26541f8 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
typedef int F();
main() {
- var /*@ type=Map<int*, () ->* int*>* */ v = <int, F>{
- 1: /*@ returnType=int* */ () {
+ var /*@type=Map<int, () -> int>*/ v = <int, F>{
+ 1: /*@returnType=int*/ () {
return 1;
}
};
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline.expect
index 5728c6e..0286208 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef int F();
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline_modelled.expect
index bf4a154..226c034 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.expect
index 7e2da76..e5d4cf4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic {
- core::Map<core::int*, () →* core::int*>* v = <core::int*, () →* core::int*>{1: () → core::int* {
+ core::Map<core::int, () → core::int> v = <core::int, () → core::int>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.modular.expect
index 7e2da76..e5d4cf4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.modular.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic {
- core::Map<core::int*, () →* core::int*>* v = <core::int*, () →* core::int*>{1: () → core::int* {
+ core::Map<core::int, () → core::int> v = <core::int, () → core::int>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.outline.expect
index 87c776d..fa65d89 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.transformed.expect
index 7e2da76..e5d4cf4 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_typed.dart.weak.transformed.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F = () →* core::int*;
+typedef F = () → core::int;
static method main() → dynamic {
- core::Map<core::int*, () →* core::int*>* v = <core::int*, () →* core::int*>{1: () → core::int* {
+ core::Map<core::int, () → core::int> v = <core::int, () → core::int>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart
index 3e1b166..2d5bbb3 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
main() {
- var /*@ type=Map<int*, () ->* int*>* */ v = /*@ typeArgs=int*, () ->* int* */ {
- 1: /*@ returnType=int* */ () {
+ var /*@type=Map<int, () -> int>*/ v = /*@typeArgs=int, () -> int*/ {
+ 1: /*@returnType=int*/ () {
return 1;
}
};
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline_modelled.expect
index 4b71679..d0b557f 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.expect
index f2aa7b1..3a0cf90 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::Map<core::int*, () →* core::int*>* v = <core::int*, () →* core::int*>{1: () → core::int* {
+ core::Map<core::int, () → core::int> v = <core::int, () → core::int>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.modular.expect
index f2aa7b1..3a0cf90 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.modular.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::Map<core::int*, () →* core::int*>* v = <core::int*, () →* core::int*>{1: () → core::int* {
+ core::Map<core::int, () → core::int> v = <core::int, () → core::int>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.outline.expect
index 09dc88c..406c4c9 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.transformed.expect
index f2aa7b1..3a0cf90 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_in_map_untyped.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static method main() → dynamic {
- core::Map<core::int*, () →* core::int*>* v = <core::int*, () →* core::int*>{1: () → core::int* {
+ core::Map<core::int, () → core::int> v = <core::int, () → core::int>{1: () → core::int {
return 1;
}};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart
index fd6da7d..fb0c080 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,8 +10,8 @@
}
main() {
- var /*@ type=List<dynamic>* */ v =
- new C(). /*@target=C.f*/ f<dynamic>(/*@ returnType=int* */ () {
+ var /*@type=List<dynamic>*/ v =
+ new C(). /*@target=C.f*/ f<dynamic>(/*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline.expect
index e9cccc5..8f9363d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
index e9cccc5..8f9363d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.expect
index 7011442a..8f882fb 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return <self::C::f::T*>[g(){() →* self::C::f::T*}];
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
- core::List<dynamic>* v = new self::C::•().{self::C::f}<dynamic>(() → core::int* {
+ core::List<dynamic> v = new self::C::•().{self::C::f}<dynamic>(() → core::int {
return 1;
- }){(() →* dynamic) →* core::List<dynamic>*};
+ }){(() → dynamic) → core::List<dynamic>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.modular.expect
index 7011442a..8f882fb 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return <self::C::f::T*>[g(){() →* self::C::f::T*}];
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
- core::List<dynamic>* v = new self::C::•().{self::C::f}<dynamic>(() → core::int* {
+ core::List<dynamic> v = new self::C::•().{self::C::f}<dynamic>(() → core::int {
return 1;
- }){(() →* dynamic) →* core::List<dynamic>*};
+ }){(() → dynamic) → core::List<dynamic>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.outline.expect
index f43450a..b4ba704 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.transformed.expect
index bdd5b5b..7f5ce70 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_dynamic_param.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return core::_GrowableList::_literal1<self::C::f::T*>(g(){() →* self::C::f::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return core::_GrowableList::_literal1<self::C::f::T%>(g(){() → self::C::f::T%});
}
static method main() → dynamic {
- core::List<dynamic>* v = new self::C::•().{self::C::f}<dynamic>(() → core::int* {
+ core::List<dynamic> v = new self::C::•().{self::C::f}<dynamic>(() → core::int {
return 1;
- }){(() →* dynamic) →* core::List<dynamic>*};
+ }){(() → dynamic) → core::List<dynamic>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart
index 5498474..7b7247b 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,8 +10,8 @@
}
main() {
- var /*@ type=List<int*>* */ v =
- new C(). /*@target=C.f*/ f<int>(/*@ returnType=int* */ () {
+ var /*@type=List<int>*/ v =
+ new C(). /*@target=C.f*/ f<int>(/*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline.expect
index e9cccc5..8f9363d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline_modelled.expect
index e9cccc5..8f9363d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.expect
index 3df5bcf..46338fa 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return <self::C::f::T*>[g(){() →* self::C::f::T*}];
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
- core::List<core::int*>* v = new self::C::•().{self::C::f}<core::int*>(() → core::int* {
+ core::List<core::int> v = new self::C::•().{self::C::f}<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.modular.expect
index 3df5bcf..46338fa 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return <self::C::f::T*>[g(){() →* self::C::f::T*}];
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
- core::List<core::int*>* v = new self::C::•().{self::C::f}<core::int*>(() → core::int* {
+ core::List<core::int> v = new self::C::•().{self::C::f}<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.outline.expect
index f43450a..b4ba704 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.transformed.expect
index b967386..da48296 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_explicit_type_param.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return core::_GrowableList::_literal1<self::C::f::T*>(g(){() →* self::C::f::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return core::_GrowableList::_literal1<self::C::f::T%>(g(){() → self::C::f::T%});
}
static method main() → dynamic {
- core::List<core::int*>* v = new self::C::•().{self::C::f}<core::int*>(() → core::int* {
+ core::List<core::int> v = new self::C::•().{self::C::f}<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart
index 8a4e5b5..c384758 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,8 +10,8 @@
}
main() {
- var /*@ type=List<int*>* */ v = new C(). /*@ typeArgs=int* */ /*@target=C.f*/ f(
- /*@ returnType=int* */ () {
+ var /*@type=List<int>*/ v = new C(). /*@typeArgs=int*/ /*@target=C.f*/ f(
+ /*@returnType=int*/ () {
return 1;
});
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline.expect
index e9cccc5..8f9363d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline_modelled.expect
index e9cccc5..8f9363d 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.expect
index 3df5bcf..46338fa 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return <self::C::f::T*>[g(){() →* self::C::f::T*}];
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
- core::List<core::int*>* v = new self::C::•().{self::C::f}<core::int*>(() → core::int* {
+ core::List<core::int> v = new self::C::•().{self::C::f}<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.modular.expect
index 3df5bcf..46338fa 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return <self::C::f::T*>[g(){() →* self::C::f::T*}];
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return <self::C::f::T%>[g(){() → self::C::f::T%}];
}
static method main() → dynamic {
- core::List<core::int*>* v = new self::C::•().{self::C::f}<core::int*>(() → core::int* {
+ core::List<core::int> v = new self::C::•().{self::C::f}<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.outline.expect
index f43450a..b4ba704 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.transformed.expect
index b967386..da48296 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_implicit_type_param.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(() →* self::C::f::T* g) → core::List<self::C::f::T*>*
- return core::_GrowableList::_literal1<self::C::f::T*>(g(){() →* self::C::f::T*});
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method f<T extends core::Object? = dynamic>(() → self::C::f::T% g) → core::List<self::C::f::T%>
+ return core::_GrowableList::_literal1<self::C::f::T%>(g(){() → self::C::f::T%});
}
static method main() → dynamic {
- core::List<core::int*>* v = new self::C::•().{self::C::f}<core::int*>(() → core::int* {
+ core::List<core::int> v = new self::C::•().{self::C::f}<core::int>(() → core::int {
return 1;
- }){(() →* core::int*) →* core::List<core::int*>*};
+ }){(() → core::int) → core::List<core::int>};
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart
index d181997..15b4e43 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,7 +9,7 @@
double f(x) => 1.0;
}
-var v = new C(). /*@target=C.f*/ f(/*@ returnType=int* */ () {
+var v = new C(). /*@target=C.f*/ f(/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline.expect
index f0e0382..5dfe4b0 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline_modelled.expect
index 5b98a79..470fb87 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.expect
index f00aa66..a5e6d69 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f(dynamic x) → core::double*
+ method f(dynamic x) → core::double
return 1.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::double* v = new self::C::•().{self::C::f}(() → core::int* {
+static field core::double v = new self::C::•().{self::C::f}(() → core::int {
return 1;
-}){(dynamic) →* core::double*};
+}){(dynamic) → core::double};
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.modular.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.modular.expect
index f00aa66..a5e6d69 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f(dynamic x) → core::double*
+ method f(dynamic x) → core::double
return 1.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::double* v = new self::C::•().{self::C::f}(() → core::int* {
+static field core::double v = new self::C::•().{self::C::f}(() → core::int {
return 1;
-}){(dynamic) →* core::double*};
+}){(dynamic) → core::double};
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.outline.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.outline.expect
index cd33e23..33b75fe 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method f(dynamic x) → core::double*
+ method f(dynamic x) → core::double
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::double* v;
+static field core::double v;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.transformed.expect
index f00aa66..a5e6d69 100644
--- a/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/unsafe_block_closure_inference_method_call_no_type_param.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method f(dynamic x) → core::double*
+ method f(dynamic x) → core::double
return 1.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::double* v = new self::C::•().{self::C::f}(() → core::int* {
+static field core::double v = new self::C::•().{self::C::f}(() → core::int {
return 1;
-}){(dynamic) →* core::double*};
+}){(dynamic) → core::double};
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart
index 74553aa..c39c959 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
T run<T>(T f()) {
print("running");
- var /*@ type=run::T* */ t = f();
+ var /*@type=run::T%*/ t = f();
print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline.expect
index 4aa6634..ffe2084 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T run<T>(T f()) {}
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect
index f9a03c5..65a862b 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T run<T>(T f()) {}
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.expect
index 751e547..68152bf 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field dynamic x = self::run<dynamic>(#C1);
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* {
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T% {
core::print("running");
- self::run::T* t = f(){() →* self::run::T*};
+ self::run::T% t = f(){() → self::run::T%};
core::print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.modular.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.modular.expect
index 751e547..68152bf 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field dynamic x = self::run<dynamic>(#C1);
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* {
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T% {
core::print("running");
- self::run::T* t = f(){() →* self::run::T*};
+ self::run::T% t = f(){() → self::run::T%};
core::print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.outline.expect
index 24086b1..63483b8 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field dynamic x;
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T*
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T%
;
static method printRunning() → void
;
diff --git a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.transformed.expect
index 751e547..68152bf 100644
--- a/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference/void_return_type_subtypes_dynamic.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field dynamic x = self::run<dynamic>(#C1);
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* {
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T% {
core::print("running");
- self::run::T* t = f(){() →* self::run::T*};
+ self::run::T% t = f(){() → self::run::T%};
core::print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart b/pkg/front_end/testcases/inference_new/const_invocation.dart
index 60eb30c..859e45a 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart
@@ -1,23 +1,23 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
typedef V F<U, V>(U u);
class Foo<T> {
- Bar<T> get v1 => const /*@ typeArgs=Null */ Bar();
- Bar<List<T>> get v2 => const /*@ typeArgs=List<Null>* */ Bar();
- Bar<F<T, T>> get v3 => const /*@ typeArgs=(Object*) ->* Null */ Bar();
+ Bar<T> get v1 => const /*@typeArgs=Never*/ Bar();
+ Bar<List<T>> get v2 => const /*@typeArgs=List<Never>*/ Bar();
+ Bar<F<T, T>> get v3 => const /*@typeArgs=(Object?) -> Never*/ Bar();
Bar<F<F<T, T>, T>> get v4 =>
- const /*@ typeArgs=((Null) ->* Object*) ->* Null */ Bar();
- List<T> get v5 => /*@ typeArgs=Null */ const [];
- List<F<T, T>> get v6 => /*@ typeArgs=(Object*) ->* Null */ const [];
- Map<T, T> get v7 => /*@ typeArgs=Null, Null */ const {};
- Map<F<T, T>, T> get v8 => /*@ typeArgs=(Object*) ->* Null, Null */ const {};
- Map<T, F<T, T>> get v9 => /*@ typeArgs=Null, (Object*) ->* Null */ const {};
+ const /*@typeArgs=((Never) -> Object?) -> Never*/ Bar();
+ List<T> get v5 => /*@typeArgs=Never*/ const [];
+ List<F<T, T>> get v6 => /*@typeArgs=(Object?) -> Never*/ const [];
+ Map<T, T> get v7 => /*@typeArgs=Never, Never*/ const {};
+ Map<F<T, T>, T> get v8 => /*@typeArgs=(Object?) -> Never, Never*/ const {};
+ Map<T, F<T, T>> get v9 => /*@typeArgs=Never, (Object?) -> Never*/ const {};
}
class Bar<T> {
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline.expect
index 1d0b2c9..e44b24c 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
typedef V F<U, V>(U u);
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline_modelled.expect
index ea29fd1..ebcecde 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Bar<T> {
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.expect
index 388292d..f4a759d 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.expect
@@ -1,68 +1,48 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- get v1() → self::Bar<self::Foo::T*>*
+ get v1() → self::Bar<self::Foo::T%>
return #C1;
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
+ get v2() → self::Bar<core::List<self::Foo::T%>>
return #C2;
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
return #C3;
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
return #C4;
- get v5() → core::List<self::Foo::T*>*
+ get v5() → core::List<self::Foo::T%>
return #C5;
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
return #C6;
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
return #C7;
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
return #C8;
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
return #C9;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
constants {
- #C1 = self::Bar<Null> {}
- #C2 = self::Bar<core::List<Null>*> {}
- #C3 = self::Bar<(core::Object*) →* Null> {}
- #C4 = self::Bar<((Null) →* core::Object*) →* Null> {}
- #C5 = <Null>[]
- #C6 = <(core::Object*) →* Null>[]
- #C7 = <Null, Null>{)
- #C8 = <(core::Object*) →* Null, Null>{)
- #C9 = <Null, (core::Object*) →* Null>{)
+ #C1 = self::Bar<Never*> {}
+ #C2 = self::Bar<core::List<Never*>*> {}
+ #C3 = self::Bar<(core::Object?) →* Never*> {}
+ #C4 = self::Bar<((Never*) →* core::Object?) →* Never*> {}
+ #C5 = <Never*>[]
+ #C6 = <(core::Object?) →* Never*>[]
+ #C7 = <Never*, Never*>{)
+ #C8 = <(core::Object?) →* Never*, Never*>{)
+ #C9 = <Never*, (core::Object?) →* Never*>{)
}
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.modular.expect
index 388292d..f4a759d 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.modular.expect
@@ -1,68 +1,48 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- get v1() → self::Bar<self::Foo::T*>*
+ get v1() → self::Bar<self::Foo::T%>
return #C1;
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
+ get v2() → self::Bar<core::List<self::Foo::T%>>
return #C2;
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
return #C3;
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
return #C4;
- get v5() → core::List<self::Foo::T*>*
+ get v5() → core::List<self::Foo::T%>
return #C5;
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
return #C6;
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
return #C7;
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
return #C8;
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
return #C9;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
constants {
- #C1 = self::Bar<Null> {}
- #C2 = self::Bar<core::List<Null>*> {}
- #C3 = self::Bar<(core::Object*) →* Null> {}
- #C4 = self::Bar<((Null) →* core::Object*) →* Null> {}
- #C5 = <Null>[]
- #C6 = <(core::Object*) →* Null>[]
- #C7 = <Null, Null>{)
- #C8 = <(core::Object*) →* Null, Null>{)
- #C9 = <Null, (core::Object*) →* Null>{)
+ #C1 = self::Bar<Never*> {}
+ #C2 = self::Bar<core::List<Never*>*> {}
+ #C3 = self::Bar<(core::Object?) →* Never*> {}
+ #C4 = self::Bar<((Never*) →* core::Object?) →* Never*> {}
+ #C5 = <Never*>[]
+ #C6 = <(core::Object?) →* Never*>[]
+ #C7 = <Never*, Never*>{)
+ #C8 = <(core::Object?) →* Never*, Never*>{)
+ #C9 = <Never*, (core::Object?) →* Never*>{)
}
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.outline.expect
index c39f27b..9654182 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.outline.expect
@@ -1,54 +1,34 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
;
- get v1() → self::Bar<self::Foo::T*>*
+ get v1() → self::Bar<self::Foo::T%>
;
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
+ get v2() → self::Bar<core::List<self::Foo::T%>>
;
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
;
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
;
- get v5() → core::List<self::Foo::T*>*
+ get v5() → core::List<self::Foo::T%>
;
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
;
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
;
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
;
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.transformed.expect
index 388292d..f4a759d 100644
--- a/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/const_invocation.dart.weak.transformed.expect
@@ -1,68 +1,48 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef F<contravariant U extends core::Object* = dynamic, V extends core::Object* = dynamic> = (U*) →* V*;
-class Foo<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Foo<self::Foo::T*>*
+typedef F<contravariant U extends core::Object? = dynamic, V extends core::Object? = dynamic> = (U%) → V%;
+class Foo<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Foo<self::Foo::T%>
: super core::Object::•()
;
- get v1() → self::Bar<self::Foo::T*>*
+ get v1() → self::Bar<self::Foo::T%>
return #C1;
- get v2() → self::Bar<core::List<self::Foo::T*>*>*
+ get v2() → self::Bar<core::List<self::Foo::T%>>
return #C2;
- get v3() → self::Bar<(self::Foo::T*) →* self::Foo::T*>*
+ get v3() → self::Bar<(self::Foo::T%) → self::Foo::T%>
return #C3;
- get v4() → self::Bar<((self::Foo::T*) →* self::Foo::T*) →* self::Foo::T*>*
+ get v4() → self::Bar<((self::Foo::T%) → self::Foo::T%) → self::Foo::T%>
return #C4;
- get v5() → core::List<self::Foo::T*>*
+ get v5() → core::List<self::Foo::T%>
return #C5;
- get v6() → core::List<(self::Foo::T*) →* self::Foo::T*>*
+ get v6() → core::List<(self::Foo::T%) → self::Foo::T%>
return #C6;
- get v7() → core::Map<self::Foo::T*, self::Foo::T*>*
+ get v7() → core::Map<self::Foo::T%, self::Foo::T%>
return #C7;
- get v8() → core::Map<(self::Foo::T*) →* self::Foo::T*, self::Foo::T*>*
+ get v8() → core::Map<(self::Foo::T%) → self::Foo::T%, self::Foo::T%>
return #C8;
- get v9() → core::Map<self::Foo::T*, (self::Foo::T*) →* self::Foo::T*>*
+ get v9() → core::Map<self::Foo::T%, (self::Foo::T%) → self::Foo::T%>
return #C9;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Bar<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::Bar<self::Bar::T*>*
+class Bar<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::Bar<self::Bar::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
constants {
- #C1 = self::Bar<Null> {}
- #C2 = self::Bar<core::List<Null>*> {}
- #C3 = self::Bar<(core::Object*) →* Null> {}
- #C4 = self::Bar<((Null) →* core::Object*) →* Null> {}
- #C5 = <Null>[]
- #C6 = <(core::Object*) →* Null>[]
- #C7 = <Null, Null>{)
- #C8 = <(core::Object*) →* Null, Null>{)
- #C9 = <Null, (core::Object*) →* Null>{)
+ #C1 = self::Bar<Never*> {}
+ #C2 = self::Bar<core::List<Never*>*> {}
+ #C3 = self::Bar<(core::Object?) →* Never*> {}
+ #C4 = self::Bar<((Never*) →* core::Object?) →* Never*> {}
+ #C5 = <Never*>[]
+ #C6 = <(core::Object?) →* Never*>[]
+ #C7 = <Never*, Never*>{)
+ #C8 = <(core::Object?) →* Never*, Never*>{)
+ #C9 = <Never*, (core::Object?) →* Never*>{)
}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart
index d00bc67..8468f2b 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,16 +15,16 @@
// There's a circularity between b and c because a.f is generic, so the type of
// c is required to infer b, and vice versa.
-var b = /*@ returnType=() ->* invalid-type */ () =>
- a. /*@ typeArgs=() ->* invalid-type */ /*@target=A.f*/ f(c);
-var c = /*@ returnType=invalid-type */ () =>
- a. /*@ typeArgs=invalid-type */ /*@target=A.f*/ f(b);
+var b = /*@returnType=() -> dynamic*/ () =>
+ a. /*@typeArgs=() -> dynamic*/ /*@target=A.f*/ f(c);
+var c = /*@returnType=dynamic*/ () =>
+ a. /*@typeArgs=dynamic*/ /*@target=A.f*/ f(b);
// e's use of a.g breaks the circularity, because a.g is not generic, therefore
// the type of e does not depend on the type of d.
-var d = /*@ returnType=() ->* int* */ () =>
- a. /*@ typeArgs=() ->* int* */ /*@target=A.f*/ f(e);
-var e = /*@ returnType=int* */ () => a. /*@target=A.g*/ g(d);
+var d = /*@returnType=() -> int*/ () =>
+ a. /*@typeArgs=() -> int*/ /*@target=A.f*/ f(e);
+var e = /*@returnType=int*/ () => a. /*@target=A.g*/ g(d);
main() {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline.expect
index eb20bc7..05229f3 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline_modelled.expect
index e25465f..0f55a46 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.expect
index a062019..5e055de 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () =>
+// var b = /*@returnType=() -> dynamic*/ () =>
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(self::A::f::T* t) → self::A::f::T*
+ method f<T extends core::Object? = dynamic>(self::A::f::T% t) → self::A::f::T%
return t;
- method g(dynamic i) → core::int*
+ method g(dynamic i) → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field invalid-type b = () → () →* invalid-type => self::a.{self::A::f}<() →* invalid-type>(self::c){(() →* invalid-type) →* () →* invalid-type};
-static field () →* invalid-type c = () → invalid-type => self::a.{self::A::f}<invalid-type>(self::b){(invalid-type) →* invalid-type};
-static field () →* () →* core::int* d = () → () →* core::int* => self::a.{self::A::f}<() →* core::int*>(self::e){(() →* core::int*) →* () →* core::int*};
-static field () →* core::int* e = () → core::int* => self::a.{self::A::g}(self::d){(dynamic) →* core::int*};
+static field self::A a = new self::A::•();
+static field invalid-type b = () → () → dynamic => self::a.{self::A::f}<() → dynamic>(self::c){(() → dynamic) → () → dynamic};
+static field () → dynamic c = () → dynamic => self::a.{self::A::f}<dynamic>(self::b){(dynamic) → dynamic};
+static field () → () → core::int d = () → () → core::int => self::a.{self::A::f}<() → core::int>(self::e){(() → core::int) → () → core::int};
+static field () → core::int e = () → core::int => self::a.{self::A::g}(self::d){(dynamic) → core::int};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.modular.expect
index a062019..5e055de 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.modular.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () =>
+// var b = /*@returnType=() -> dynamic*/ () =>
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(self::A::f::T* t) → self::A::f::T*
+ method f<T extends core::Object? = dynamic>(self::A::f::T% t) → self::A::f::T%
return t;
- method g(dynamic i) → core::int*
+ method g(dynamic i) → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field invalid-type b = () → () →* invalid-type => self::a.{self::A::f}<() →* invalid-type>(self::c){(() →* invalid-type) →* () →* invalid-type};
-static field () →* invalid-type c = () → invalid-type => self::a.{self::A::f}<invalid-type>(self::b){(invalid-type) →* invalid-type};
-static field () →* () →* core::int* d = () → () →* core::int* => self::a.{self::A::f}<() →* core::int*>(self::e){(() →* core::int*) →* () →* core::int*};
-static field () →* core::int* e = () → core::int* => self::a.{self::A::g}(self::d){(dynamic) →* core::int*};
+static field self::A a = new self::A::•();
+static field invalid-type b = () → () → dynamic => self::a.{self::A::f}<() → dynamic>(self::c){(() → dynamic) → () → dynamic};
+static field () → dynamic c = () → dynamic => self::a.{self::A::f}<dynamic>(self::b){(dynamic) → dynamic};
+static field () → () → core::int d = () → () → core::int => self::a.{self::A::f}<() → core::int>(self::e){(() → core::int) → () → core::int};
+static field () → core::int e = () → core::int => self::a.{self::A::g}(self::d){(dynamic) → core::int};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.outline.expect
index 18a055f..c6bcaad 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.outline.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () =>
+// var b = /*@returnType=() -> dynamic*/ () =>
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- method f<T extends core::Object* = dynamic>(self::A::f::T* t) → self::A::f::T*
+ method f<T extends core::Object? = dynamic>(self::A::f::T% t) → self::A::f::T%
;
- method g(dynamic i) → core::int*
+ method g(dynamic i) → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a;
+static field self::A a;
static field invalid-type b;
-static field () →* invalid-type c;
-static field () →* () →* core::int* d;
-static field () →* core::int* e;
+static field () → dynamic c;
+static field () → () → core::int d;
+static field () → core::int e;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.transformed.expect
index a062019..5e055de 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart.weak.transformed.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_generic_method.dart:18:5: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () =>
+// var b = /*@returnType=() -> dynamic*/ () =>
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- method f<T extends core::Object* = dynamic>(self::A::f::T* t) → self::A::f::T*
+ method f<T extends core::Object? = dynamic>(self::A::f::T% t) → self::A::f::T%
return t;
- method g(dynamic i) → core::int*
+ method g(dynamic i) → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field invalid-type b = () → () →* invalid-type => self::a.{self::A::f}<() →* invalid-type>(self::c){(() →* invalid-type) →* () →* invalid-type};
-static field () →* invalid-type c = () → invalid-type => self::a.{self::A::f}<invalid-type>(self::b){(invalid-type) →* invalid-type};
-static field () →* () →* core::int* d = () → () →* core::int* => self::a.{self::A::f}<() →* core::int*>(self::e){(() →* core::int*) →* () →* core::int*};
-static field () →* core::int* e = () → core::int* => self::a.{self::A::g}(self::d){(dynamic) →* core::int*};
+static field self::A a = new self::A::•();
+static field invalid-type b = () → () → dynamic => self::a.{self::A::f}<() → dynamic>(self::c){(() → dynamic) → () → dynamic};
+static field () → dynamic c = () → dynamic => self::a.{self::A::f}<dynamic>(self::b){(dynamic) → dynamic};
+static field () → () → core::int d = () → () → core::int => self::a.{self::A::f}<() → core::int>(self::e){(() → core::int) → () → core::int};
+static field () → core::int e = () → core::int => self::a.{self::A::g}(self::d){(dynamic) → core::int};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart
index 11dc14d..a0a1f97 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -12,18 +12,18 @@
// There's a circularity between a and b because the type of `int + x` depends
// on the type of x.
-var a = /*@ returnType=num* */ () => intValue /*@target=num.+*/ + b;
+var a = /*@returnType=num*/ () => intValue /*@target=num.+*/ + b;
var b = a();
// But there's no circularity between c and d because the type of `num + x` is
// always num.
-var c = /*@ returnType=num* */ () => numValue /*@target=num.+*/ + d;
+var c = /*@returnType=num*/ () => numValue /*@target=num.+*/ + d;
var d = c();
// Similar for double.
-var e = /*@ returnType=double* */ () => doubleValue /*@target=double.+*/ + f;
+var e = /*@returnType=double*/ () => doubleValue /*@target=double.+*/ + f;
var f = e();
main() {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline.expect
index 381ac89..db69969 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
int intValue = 0;
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline_modelled.expect
index d6dd90a..5009f27 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
double doubleValue = 0.0;
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.expect
index 3ae5f85..b8229d9 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.expect
@@ -1,22 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:15:5: Error: Can't infer the type of 'a': circularity found during type inference.
// Specify the type explicitly.
-// var a = /*@ returnType=num* */ () => intValue /*@target=num.+*/ + b;
+// var a = /*@returnType=num*/ () => intValue /*@target=num.+*/ + b;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:21:5: Error: Can't infer the type of 'c': circularity found during type inference.
+// Specify the type explicitly.
+// var c = /*@returnType=num*/ () => numValue /*@target=num.+*/ + d;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:26:5: Error: Can't infer the type of 'e': circularity found during type inference.
+// Specify the type explicitly.
+// var e = /*@returnType=double*/ () => doubleValue /*@target=double.+*/ + f;
// ^
//
import self as self;
import "dart:core" as core;
-static field core::int* intValue = 0;
-static field core::num* numValue = 0;
-static field core::double* doubleValue = 0.0;
-static field invalid-type a = () → core::num* => self::intValue.{core::num::+}(self::b as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+static field core::int intValue = 0;
+static field core::num numValue = 0;
+static field core::double doubleValue = 0.0;
+static field invalid-type a = () → core::num => self::intValue.{core::num::+}(self::b as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
static field dynamic b = self::a{dynamic}.call();
-static field () →* core::num* c = () → core::num* => self::numValue.{core::num::+}(self::d){(core::num*) →* core::num*};
-static field core::num* d = self::c(){() →* core::num*};
-static field () →* core::double* e = () → core::double* => self::doubleValue.{core::double::+}(self::f){(core::num*) →* core::double*};
-static field core::double* f = self::e(){() →* core::double*};
+static field invalid-type c = () → core::num => self::numValue.{core::num::+}(self::d as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
+static field dynamic d = self::c{dynamic}.call();
+static field invalid-type e = () → core::double => self::doubleValue.{core::double::+}(self::f as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double};
+static field dynamic f = self::e{dynamic}.call();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.modular.expect
index 3ae5f85..b8229d9 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.modular.expect
@@ -1,22 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:15:5: Error: Can't infer the type of 'a': circularity found during type inference.
// Specify the type explicitly.
-// var a = /*@ returnType=num* */ () => intValue /*@target=num.+*/ + b;
+// var a = /*@returnType=num*/ () => intValue /*@target=num.+*/ + b;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:21:5: Error: Can't infer the type of 'c': circularity found during type inference.
+// Specify the type explicitly.
+// var c = /*@returnType=num*/ () => numValue /*@target=num.+*/ + d;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:26:5: Error: Can't infer the type of 'e': circularity found during type inference.
+// Specify the type explicitly.
+// var e = /*@returnType=double*/ () => doubleValue /*@target=double.+*/ + f;
// ^
//
import self as self;
import "dart:core" as core;
-static field core::int* intValue = 0;
-static field core::num* numValue = 0;
-static field core::double* doubleValue = 0.0;
-static field invalid-type a = () → core::num* => self::intValue.{core::num::+}(self::b as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+static field core::int intValue = 0;
+static field core::num numValue = 0;
+static field core::double doubleValue = 0.0;
+static field invalid-type a = () → core::num => self::intValue.{core::num::+}(self::b as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
static field dynamic b = self::a{dynamic}.call();
-static field () →* core::num* c = () → core::num* => self::numValue.{core::num::+}(self::d){(core::num*) →* core::num*};
-static field core::num* d = self::c(){() →* core::num*};
-static field () →* core::double* e = () → core::double* => self::doubleValue.{core::double::+}(self::f){(core::num*) →* core::double*};
-static field core::double* f = self::e(){() →* core::double*};
+static field invalid-type c = () → core::num => self::numValue.{core::num::+}(self::d as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
+static field dynamic d = self::c{dynamic}.call();
+static field invalid-type e = () → core::double => self::doubleValue.{core::double::+}(self::f as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double};
+static field dynamic f = self::e{dynamic}.call();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.outline.expect
index 0c6966f..e5019cc 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.outline.expect
@@ -1,23 +1,33 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:15:5: Error: Can't infer the type of 'a': circularity found during type inference.
// Specify the type explicitly.
-// var a = /*@ returnType=num* */ () => intValue /*@target=num.+*/ + b;
+// var a = /*@returnType=num*/ () => intValue /*@target=num.+*/ + b;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:21:5: Error: Can't infer the type of 'c': circularity found during type inference.
+// Specify the type explicitly.
+// var c = /*@returnType=num*/ () => numValue /*@target=num.+*/ + d;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:26:5: Error: Can't infer the type of 'e': circularity found during type inference.
+// Specify the type explicitly.
+// var e = /*@returnType=double*/ () => doubleValue /*@target=double.+*/ + f;
// ^
//
import self as self;
import "dart:core" as core;
-static field core::int* intValue;
-static field core::num* numValue;
-static field core::double* doubleValue;
+static field core::int intValue;
+static field core::num numValue;
+static field core::double doubleValue;
static field invalid-type a;
static field dynamic b;
-static field () →* core::num* c;
-static field core::num* d;
-static field () →* core::double* e;
-static field core::double* f;
+static field invalid-type c;
+static field dynamic d;
+static field invalid-type e;
+static field dynamic f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.transformed.expect
index 3ae5f85..b8229d9 100644
--- a/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart.weak.transformed.expect
@@ -1,22 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:15:5: Error: Can't infer the type of 'a': circularity found during type inference.
// Specify the type explicitly.
-// var a = /*@ returnType=num* */ () => intValue /*@target=num.+*/ + b;
+// var a = /*@returnType=num*/ () => intValue /*@target=num.+*/ + b;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:21:5: Error: Can't infer the type of 'c': circularity found during type inference.
+// Specify the type explicitly.
+// var c = /*@returnType=num*/ () => numValue /*@target=num.+*/ + d;
+// ^
+//
+// pkg/front_end/testcases/inference_new/dependency_only_if_overloaded.dart:26:5: Error: Can't infer the type of 'e': circularity found during type inference.
+// Specify the type explicitly.
+// var e = /*@returnType=double*/ () => doubleValue /*@target=double.+*/ + f;
// ^
//
import self as self;
import "dart:core" as core;
-static field core::int* intValue = 0;
-static field core::num* numValue = 0;
-static field core::double* doubleValue = 0.0;
-static field invalid-type a = () → core::num* => self::intValue.{core::num::+}(self::b as{TypeError,ForDynamic} core::num*){(core::num*) →* core::num*};
+static field core::int intValue = 0;
+static field core::num numValue = 0;
+static field core::double doubleValue = 0.0;
+static field invalid-type a = () → core::num => self::intValue.{core::num::+}(self::b as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
static field dynamic b = self::a{dynamic}.call();
-static field () →* core::num* c = () → core::num* => self::numValue.{core::num::+}(self::d){(core::num*) →* core::num*};
-static field core::num* d = self::c(){() →* core::num*};
-static field () →* core::double* e = () → core::double* => self::doubleValue.{core::double::+}(self::f){(core::num*) →* core::double*};
-static field core::double* f = self::e(){() →* core::double*};
+static field invalid-type c = () → core::num => self::numValue.{core::num::+}(self::d as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::num};
+static field dynamic d = self::c{dynamic}.call();
+static field invalid-type e = () → core::double => self::doubleValue.{core::double::+}(self::f as{TypeError,ForDynamic,ForNonNullableByDefault} core::num){(core::num) → core::double};
+static field dynamic f = self::e{dynamic}.call();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart b/pkg/front_end/testcases/inference_new/do_loop.dart
index db7e93c..6236d83 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
void test() {
do {
- var /*@ type=int* */ x = 0;
- } while (/*@ typeArgs=bool* */ f());
+ var /*@type=int*/ x = 0;
+ } while (/*@typeArgs=bool*/ f());
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline.expect
index c1725cf..0afd8e8 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
void test() {}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline_modelled.expect
index f75a9d3..c8d2993 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
main() {}
void test() {}
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.expect b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.expect
index 2639877..d53156f 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
do {
- core::int* x = 0;
+ core::int x = 0;
}
- while (self::f<core::bool*>())
+ while (self::f<core::bool>())
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.modular.expect
index 2639877..d53156f 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
do {
- core::int* x = 0;
+ core::int x = 0;
}
- while (self::f<core::bool*>())
+ while (self::f<core::bool>())
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.outline.expect
index dfd99e1..247b913 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.transformed.expect
index 2639877..d53156f 100644
--- a/pkg/front_end/testcases/inference_new/do_loop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/do_loop.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
do {
- core::int* x = 0;
+ core::int x = 0;
}
- while (self::f<core::bool*>())
+ while (self::f<core::bool>())
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart
index 98279be..74dd2ef 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart
@@ -1,18 +1,18 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- B<int> b;
+ B<int> b = throw '';
}
class B<T> {
B(T x);
}
-var t3 = /*@ typeArgs=B<int*>* */ [new /*@ typeArgs=int* */ B(3)];
+var t3 = /*@typeArgs=B<int>*/ [new /*@typeArgs=int*/ B(3)];
main() {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline.expect
index c50a4eb..36c44ef 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- B<int> b;
+ B<int> b = throw '';
}
class B<T> {
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect
index a4eb367..7c15f17 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- B<int> b;
+ B<int> b = throw '';
}
class B<T> {
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.expect
index f211b44..fdb9608 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ field self::B<core::int> b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::B<core::int*>*>* t3 = <self::B<core::int*>*>[new self::B::•<core::int*>(3)];
+static field core::List<self::B<core::int>> t3 = <self::B<core::int>>[new self::B::•<core::int>(3)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.modular.expect
index f211b44..fdb9608 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.modular.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ field self::B<core::int> b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::B<core::int*>*>* t3 = <self::B<core::int*>*>[new self::B::•<core::int*>(3)];
+static field core::List<self::B<core::int>> t3 = <self::B<core::int>>[new self::B::•<core::int>(3)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.outline.expect
index da8cc55..b4ebe14 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b;
- synthetic constructor •() → self::A*
+ field self::B<core::int> b;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::B<core::int*>*>* t3;
+static field core::List<self::B<core::int>> t3;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.transformed.expect
index d837da1..89f28aa 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level.dart.weak.transformed.expect
@@ -1,37 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B<core::int*>* b = null;
- synthetic constructor •() → self::A*
+ field self::B<core::int> b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::B::T* x) → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::B::T% x) → self::B<self::B::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::B<core::int*>*>* t3 = core::_GrowableList::_literal1<self::B<core::int*>*>(new self::B::•<core::int*>(3));
+static field core::List<self::B<core::int>> t3 = core::_GrowableList::_literal1<self::B<core::int>>(new self::B::•<core::int>(3));
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart
index a533b3b..5f75350 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -9,6 +9,6 @@
A(T x);
}
-var t2 = /*@ typeArgs=A<int*>* */ [new /*@ typeArgs=int* */ A(2)];
+var t2 = /*@typeArgs=A<int>*/ [new /*@typeArgs=int*/ A(2)];
main() {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline.expect
index 2f86ee7..c5e4a4c 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect
index 471fb75..4da7ccb 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A<T> {
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.expect
index aaa7123..0b3ee24 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t2 = <self::A<core::int*>*>[new self::A::•<core::int*>(2)];
+static field core::List<self::A<core::int>> t2 = <self::A<core::int>>[new self::A::•<core::int>(2)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.modular.expect
index aaa7123..0b3ee24 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t2 = <self::A<core::int*>*>[new self::A::•<core::int*>(2)];
+static field core::List<self::A<core::int>> t2 = <self::A<core::int>>[new self::A::•<core::int>(2)];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.outline.expect
index c57765a..0723849 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t2;
+static field core::List<self::A<core::int>> t2;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.transformed.expect
index 8a0e9d7..2a2e0f5 100644
--- a/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/downwards_inference_inside_top_level_2.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- constructor •(self::A::T* x) → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ constructor •(self::A::T% x) → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::int*>*>* t2 = core::_GrowableList::_literal1<self::A<core::int*>*>(new self::A::•<core::int*>(2));
+static field core::List<self::A<core::int>> t2 = core::_GrowableList::_literal1<self::A<core::int>>(new self::A::•<core::int>(2));
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart
index 7b0ea41..c5280e5 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline.expect
index 183d7ba..fa0576a 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline_modelled.expect
index 183d7ba..fa0576a 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.expect
index b83a5f8..ef441c3 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,30 +7,24 @@
// var x = /*@returnType=invalid-type*/ () => new B(). /*@target=B.x*/ x;
// ^
//
+// pkg/front_end/testcases/inference_new/field_inference_circularity.dart:18:7: Error: Field 'y' should be initialized because its type 'invalid-type Function()' doesn't allow null.
+// var y;
+// ^
+//
import self as self;
import "dart:core" as core;
class A extends core::Object {
field invalid-type x = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
- field () →* invalid-type y = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
- synthetic constructor •() → self::A*
+ field () → invalid-type y = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
field invalid-type x = null;
- field () →* invalid-type y = null;
- synthetic constructor •() → self::B*
+ field () → invalid-type y = null;
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.modular.expect
index b83a5f8..ef441c3 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,30 +7,24 @@
// var x = /*@returnType=invalid-type*/ () => new B(). /*@target=B.x*/ x;
// ^
//
+// pkg/front_end/testcases/inference_new/field_inference_circularity.dart:18:7: Error: Field 'y' should be initialized because its type 'invalid-type Function()' doesn't allow null.
+// var y;
+// ^
+//
import self as self;
import "dart:core" as core;
class A extends core::Object {
field invalid-type x = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
- field () →* invalid-type y = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
- synthetic constructor •() → self::A*
+ field () → invalid-type y = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
field invalid-type x = null;
- field () →* invalid-type y = null;
- synthetic constructor •() → self::B*
+ field () → invalid-type y = null;
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.outline.expect
index c411f2e..6778f99 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -12,24 +12,14 @@
class A extends core::Object {
field invalid-type x;
- field () →* invalid-type y;
- synthetic constructor •() → self::A*
+ field () → invalid-type y;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
field invalid-type x;
- field () →* invalid-type y;
- synthetic constructor •() → self::B*
+ field () → invalid-type y;
+ synthetic constructor •() → self::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.transformed.expect
index b83a5f8..ef441c3 100644
--- a/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/field_inference_circularity.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,30 +7,24 @@
// var x = /*@returnType=invalid-type*/ () => new B(). /*@target=B.x*/ x;
// ^
//
+// pkg/front_end/testcases/inference_new/field_inference_circularity.dart:18:7: Error: Field 'y' should be initialized because its type 'invalid-type Function()' doesn't allow null.
+// var y;
+// ^
+//
import self as self;
import "dart:core" as core;
class A extends core::Object {
field invalid-type x = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
- field () →* invalid-type y = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
- synthetic constructor •() → self::A*
+ field () → invalid-type y = () → invalid-type => new self::B::•().{self::B::x}{invalid-type};
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
field invalid-type x = null;
- field () →* invalid-type y = null;
- synthetic constructor •() → self::B*
+ field () → invalid-type y = null;
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart
index 67ad57a..4e777d0 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart
@@ -1,33 +1,33 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
-A aTopLevel;
+A aTopLevel = throw '';
void set aTopLevelSetter(A value) {}
class C {
- A aField;
+ A aField = throw '';
void set aSetter(A value) {}
void test() {
A aLocal;
- for (aLocal in /*@ typeArgs=Iterable<A*>* */ f()) {}
+ for (aLocal in /*@typeArgs=Iterable<A>*/ f()) {}
for (/*@target=C.aField*/ /*@target=C.aField*/ aField
- in /*@ typeArgs=Iterable<A*>* */ f()) {}
+ in /*@typeArgs=Iterable<A>*/ f()) {}
for (/*@target=C.aSetter*/ /*@target=C.aSetter*/ aSetter
- in /*@ typeArgs=Iterable<A*>* */ f()) {}
+ in /*@typeArgs=Iterable<A>*/ f()) {}
- for (aTopLevel in /*@ typeArgs=Iterable<A*>* */ f()) {}
+ for (aTopLevel in /*@typeArgs=Iterable<A>*/ f()) {}
- for (aTopLevelSetter in /*@ typeArgs=Iterable<A*>* */ f()) {}
+ for (aTopLevelSetter in /*@typeArgs=Iterable<A>*/ f()) {}
}
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline.expect
index 374f323..5a2c283 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline.expect
@@ -1,15 +1,14 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
-A aTopLevel;
+A aTopLevel = throw '';
void set aTopLevelSetter(A value) {}
class C {
- A aField;
+ A aField = throw '';
void set aSetter(A value) {}
void test() {}
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline_modelled.expect
index 321922a..e950eee 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.textual_outline_modelled.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
library test;
-A aTopLevel;
-T f<T>() => null;
+A aTopLevel = throw '';
+T f<T>() => throw '';
class A {}
class C {
- A aField;
+ A aField = throw '';
void set aSetter(A value) {}
void test() {}
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.expect b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.expect
index 0a972fb..56724a4 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.expect
@@ -1,59 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* aField = null;
- synthetic constructor •() → self::C*
+ field self::A aField = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- set aSetter(self::A* value) → void {}
+ set aSetter(self::A value) → void {}
method test() → void {
- self::A* aLocal;
- for (final self::A* #t1 in self::f<core::Iterable<self::A*>*>()) {
+ self::A aLocal;
+ for (final self::A #t1 in self::f<core::Iterable<self::A>>()) {
aLocal = #t1;
}
- for (final self::A* #t2 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t2 in self::f<core::Iterable<self::A>>()) {
this.{self::C::aField} = #t2;
}
- for (final self::A* #t3 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t3 in self::f<core::Iterable<self::A>>()) {
this.{self::C::aSetter} = #t3;
}
- for (final self::A* #t4 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t4 in self::f<core::Iterable<self::A>>()) {
self::aTopLevel = #t4;
}
- for (final self::A* #t5 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t5 in self::f<core::Iterable<self::A>>()) {
self::aTopLevelSetter = #t5;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* aTopLevel;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static set aTopLevelSetter(self::A* value) → void {}
+static field self::A aTopLevel = throw "";
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static set aTopLevelSetter(self::A value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.modular.expect
index 0a972fb..56724a4 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.modular.expect
@@ -1,59 +1,39 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* aField = null;
- synthetic constructor •() → self::C*
+ field self::A aField = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- set aSetter(self::A* value) → void {}
+ set aSetter(self::A value) → void {}
method test() → void {
- self::A* aLocal;
- for (final self::A* #t1 in self::f<core::Iterable<self::A*>*>()) {
+ self::A aLocal;
+ for (final self::A #t1 in self::f<core::Iterable<self::A>>()) {
aLocal = #t1;
}
- for (final self::A* #t2 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t2 in self::f<core::Iterable<self::A>>()) {
this.{self::C::aField} = #t2;
}
- for (final self::A* #t3 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t3 in self::f<core::Iterable<self::A>>()) {
this.{self::C::aSetter} = #t3;
}
- for (final self::A* #t4 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t4 in self::f<core::Iterable<self::A>>()) {
self::aTopLevel = #t4;
}
- for (final self::A* #t5 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t5 in self::f<core::Iterable<self::A>>()) {
self::aTopLevelSetter = #t5;
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* aTopLevel;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static set aTopLevelSetter(self::A* value) → void {}
+static field self::A aTopLevel = throw "";
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static set aTopLevelSetter(self::A value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.outline.expect
index 84885cb..b716a6e 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.outline.expect
@@ -1,44 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* aField;
- synthetic constructor •() → self::C*
+ field self::A aField;
+ synthetic constructor •() → self::C
;
- set aSetter(self::A* value) → void
+ set aSetter(self::A value) → void
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* aTopLevel;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static field self::A aTopLevel;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static set aTopLevelSetter(self::A* value) → void
+static set aTopLevelSetter(self::A value) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.transformed.expect
index b44d33f..9f6f75ad 100644
--- a/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_identifier_downwards.dart.weak.transformed.expect
@@ -1,89 +1,69 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- field self::A* aField = null;
- synthetic constructor •() → self::C*
+ field self::A aField = throw "";
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- set aSetter(self::A* value) → void {}
+ set aSetter(self::A value) → void {}
method test() → void {
- self::A* aLocal;
+ self::A aLocal;
{
- core::Iterator<self::A*>* :sync-for-iterator = self::f<core::Iterable<self::A*>*>().{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::A> :sync-for-iterator = self::f<core::Iterable<self::A>>().{core::Iterable::iterator}{core::Iterator<self::A>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t1 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::A #t1 = :sync-for-iterator.{core::Iterator::current}{self::A};
{
aLocal = #t1;
}
}
}
{
- core::Iterator<self::A*>* :sync-for-iterator = self::f<core::Iterable<self::A*>*>().{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::A> :sync-for-iterator = self::f<core::Iterable<self::A>>().{core::Iterable::iterator}{core::Iterator<self::A>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t2 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::A #t2 = :sync-for-iterator.{core::Iterator::current}{self::A};
{
this.{self::C::aField} = #t2;
}
}
}
{
- core::Iterator<self::A*>* :sync-for-iterator = self::f<core::Iterable<self::A*>*>().{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::A> :sync-for-iterator = self::f<core::Iterable<self::A>>().{core::Iterable::iterator}{core::Iterator<self::A>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t3 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::A #t3 = :sync-for-iterator.{core::Iterator::current}{self::A};
{
this.{self::C::aSetter} = #t3;
}
}
}
{
- core::Iterator<self::A*>* :sync-for-iterator = self::f<core::Iterable<self::A*>*>().{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::A> :sync-for-iterator = self::f<core::Iterable<self::A>>().{core::Iterable::iterator}{core::Iterator<self::A>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t4 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::A #t4 = :sync-for-iterator.{core::Iterator::current}{self::A};
{
self::aTopLevel = #t4;
}
}
}
{
- core::Iterator<self::A*>* :sync-for-iterator = self::f<core::Iterable<self::A*>*>().{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::A> :sync-for-iterator = self::f<core::Iterable<self::A>>().{core::Iterable::iterator}{core::Iterator<self::A>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t5 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::A #t5 = :sync-for-iterator.{core::Iterator::current}{self::A};
{
self::aTopLevelSetter = #t5;
}
}
}
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* aTopLevel;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static set aTopLevelSetter(self::A* value) → void {}
+static field self::A aTopLevel = throw "";
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static set aTopLevelSetter(self::A value) → void {}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart
index 8b49117..af01e13 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart
@@ -1,15 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-test() async {
- String s;
+test(String s, int y) async {
for (int x in s) {}
await for (int x in s) {}
- int y;
for (y in s) {}
await for (y in s) {}
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline.expect
index 5733dcf..ae9825d 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
-test() async {}
+test(String s, int y) async {}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline_modelled.expect
index aa8a2f6..b4ae717 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
library test;
main() {}
-test() async {}
+test(String s, int y) async {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.expect
index 63943b6..ed31071 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:9:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
// - 'Iterable' is from 'dart:core'.
// for (int x in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
// - 'Stream' is from 'dart:async'.
// await for (int x in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:13:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
// - 'Iterable' is from 'dart:core'.
// for (y in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:14:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:12:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
// - 'Stream' is from 'dart:async'.
// await for (y in s) {}
// ^
@@ -26,32 +26,30 @@
import "dart:core" as core;
import "dart:async" as asy;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- core::String* s;
- for (final dynamic #t1 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+static method test(core::String s, core::int y) → dynamic async /* futureValueType= dynamic */ {
+ for (final dynamic #t1 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:9:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Iterable' is from 'dart:core'.
for (int x in s) {}
- ^" in s as{TypeError} core::Iterable<dynamic>*) {
- core::int* x = #t1 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ core::int x = #t1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
- await for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ await for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Stream' is from 'dart:async'.
await for (int x in s) {}
- ^" in s as{TypeError} asy::Stream<dynamic>*) {
- core::int* x = #t2 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ core::int x = #t2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
- core::int* y;
- for (final dynamic #t3 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:13:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ for (final dynamic #t3 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Iterable' is from 'dart:core'.
for (y in s) {}
- ^" in s as{TypeError} core::Iterable<dynamic>*) {
- y = #t3 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ y = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
- await for (final dynamic #t4 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:14:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ await for (final dynamic #t4 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:12:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Stream' is from 'dart:async'.
await for (y in s) {}
- ^" in s as{TypeError} asy::Stream<dynamic>*) {
- y = #t4 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ y = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.modular.expect
index 63943b6..ed31071 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.modular.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:9:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
// - 'Iterable' is from 'dart:core'.
// for (int x in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
// - 'Stream' is from 'dart:async'.
// await for (int x in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:13:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
// - 'Iterable' is from 'dart:core'.
// for (y in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:14:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:12:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
// - 'Stream' is from 'dart:async'.
// await for (y in s) {}
// ^
@@ -26,32 +26,30 @@
import "dart:core" as core;
import "dart:async" as asy;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- core::String* s;
- for (final dynamic #t1 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+static method test(core::String s, core::int y) → dynamic async /* futureValueType= dynamic */ {
+ for (final dynamic #t1 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:9:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Iterable' is from 'dart:core'.
for (int x in s) {}
- ^" in s as{TypeError} core::Iterable<dynamic>*) {
- core::int* x = #t1 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ core::int x = #t1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
- await for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ await for (final dynamic #t2 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Stream' is from 'dart:async'.
await for (int x in s) {}
- ^" in s as{TypeError} asy::Stream<dynamic>*) {
- core::int* x = #t2 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ core::int x = #t2 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
- core::int* y;
- for (final dynamic #t3 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:13:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ for (final dynamic #t3 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Iterable' is from 'dart:core'.
for (y in s) {}
- ^" in s as{TypeError} core::Iterable<dynamic>*) {
- y = #t3 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>) {
+ y = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
- await for (final dynamic #t4 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:14:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ await for (final dynamic #t4 in invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:12:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Stream' is from 'dart:async'.
await for (y in s) {}
- ^" in s as{TypeError} asy::Stream<dynamic>*) {
- y = #t4 as{TypeError,ForDynamic} core::int*;
+ ^" in s as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>) {
+ y = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.outline.expect
index f69f500..66feddc 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.outline.expect
@@ -1,7 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
+import "dart:core" as core;
-static method test() → dynamic async
+static method test(core::String s, core::int y) → dynamic async
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.transformed.expect
index 6ab4fd2..c407248 100644
--- a/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart.weak.transformed.expect
@@ -1,23 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:9:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
// - 'Iterable' is from 'dart:core'.
// for (int x in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
// - 'Stream' is from 'dart:async'.
// await for (int x in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:13:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
// - 'Iterable' is from 'dart:core'.
// for (y in s) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:14:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+// pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:12:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
// - 'Stream' is from 'dart:async'.
// await for (y in s) {}
// ^
@@ -26,61 +26,59 @@
import "dart:core" as core;
import "dart:async" as asy;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- core::String* s;
+static method test(core::String s, core::int y) → dynamic async /* futureValueType= dynamic */ {
{
- core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:9:17: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Iterable' is from 'dart:core'.
for (int x in s) {}
- ^" in s as{TypeError} core::Iterable<dynamic>*.{core::Iterable::iterator}{core::Iterator<Never>*};
+ ^" in s as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t1 = :sync-for-iterator.{core::Iterator::current}{Never};
{
- core::int* x = #t1 as{TypeError,ForDynamic} core::int*;
+ core::int x = #t1 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
}
}
{
- Never :stream = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ Never :stream = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:10:23: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Stream' is from 'dart:async'.
await for (int x in s) {}
- ^" in s as{TypeError} asy::Stream<dynamic>*;
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ ^" in s as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>;
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t2 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
final dynamic #t3 = :for-iterator.{asy::_StreamIterator::current}{dynamic};
{
- core::int* x = #t3 as{TypeError,ForDynamic} core::int*;
+ core::int x = #t3 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
}
finally
if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<dynamic>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
- core::int* y;
{
- core::Iterator<Never>* :sync-for-iterator = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:13:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
+ core::Iterator<Never> :sync-for-iterator = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:11:13: Error: The type 'String' used in the 'for' loop must implement 'Iterable<dynamic>'.
- 'Iterable' is from 'dart:core'.
for (y in s) {}
- ^" in s as{TypeError} core::Iterable<dynamic>*.{core::Iterable::iterator}{core::Iterator<Never>*};
+ ^" in s as{TypeError,ForNonNullableByDefault} core::Iterable<dynamic>.{core::Iterable::iterator}{core::Iterator<Never>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
final dynamic #t4 = :sync-for-iterator.{core::Iterator::current}{Never};
{
- y = #t4 as{TypeError,ForDynamic} core::int*;
+ y = #t4 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
}
}
{
- Never :stream = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:14:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
+ Never :stream = invalid-expression "pkg/front_end/testcases/inference_new/for_each_invalid_iterable.dart:12:19: Error: The type 'String' used in the 'for' loop must implement 'Stream<dynamic>'.
- 'Stream' is from 'dart:async'.
await for (y in s) {}
- ^" in s as{TypeError} asy::Stream<dynamic>*;
- asy::_StreamIterator<dynamic>* :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
+ ^" in s as{TypeError,ForNonNullableByDefault} asy::Stream<dynamic>;
+ asy::_StreamIterator<dynamic>? :for-iterator = new asy::_StreamIterator::•<dynamic>(:stream);
try
while (let dynamic #t5 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
final dynamic #t6 = :for-iterator.{asy::_StreamIterator::current}{dynamic};
{
- y = #t6 as{TypeError,ForDynamic} core::int*;
+ y = #t6 as{TypeError,ForDynamic,ForNonNullableByDefault} core::int;
}
}
finally
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart
index 6648037..665c697 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart
@@ -1,32 +1,27 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {}
-test() async {
- Iterable<A> iterable;
- Stream<A> stream;
- A a;
- B b;
- int i;
+test(Iterable<B> iterable, Stream<B> stream, A a, B b, int i) async {
for (a in iterable) {}
await for (a in stream) {}
for (b in iterable) {}
await for (b in stream) {}
for (i in iterable) {}
await for (i in stream) {}
- for (a in /*@ typeArgs=Iterable<A*>* */ f()) {}
- await for (a in /*@ typeArgs=Stream<A*>* */ f()) {}
+ for (a in /*@typeArgs=Iterable<A>*/ f()) {}
+ await for (a in /*@typeArgs=Stream<A>*/ f()) {}
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline.expect
index 7f667e4..ae8dd4e 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {}
-test() async {}
+test(Iterable<B> iterable, Stream<B> stream, A a, B b, int i) async {}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline_modelled.expect
index 0c16263..49d9d4d 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.textual_outline_modelled.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {}
main() {}
-test() async {}
+test(Iterable<B> iterable, Stream<B> stream, A a, B b, int i) async {}
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.expect
index 5c4c5e0..4136656 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:26:10: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:21:10: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
// Try changing the type of the variable.
// for (i in iterable) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:27:16: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:22:16: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
// Try changing the type of the variable.
// await for (i in stream) {}
// ^
@@ -21,63 +21,48 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- core::Iterable<self::A*>* iterable;
- asy::Stream<self::A*>* stream;
- self::A* a;
- self::B* b;
- core::int* i;
- for (final self::A* #t1 in iterable) {
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(core::Iterable<self::B> iterable, asy::Stream<self::B> stream, self::A a, self::B b, core::int i) → dynamic async /* futureValueType= dynamic */ {
+ for (final self::B #t1 in iterable) {
a = #t1;
}
- await for (final self::A* #t2 in stream) {
+ await for (final self::B #t2 in stream) {
a = #t2;
}
- for (final self::A* #t3 in iterable) {
- b = #t3 as{TypeError} self::B*;
+ for (final self::B #t3 in iterable) {
+ b = #t3;
}
- await for (final self::A* #t4 in stream) {
- b = #t4 as{TypeError} self::B*;
+ await for (final self::B #t4 in stream) {
+ b = #t4;
}
- for (final self::A* #t5 in iterable) {
- i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:26:10: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
- - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+ for (final self::B #t5 in iterable) {
+ i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:21:10: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+ - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
Try changing the type of the variable.
for (i in iterable) {}
- ^" in #t5 as{TypeError} core::int*;
+ ^" in #t5 as{TypeError,ForNonNullableByDefault} core::int;
}
- await for (final self::A* #t6 in stream) {
- i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:27:16: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
- - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+ await for (final self::B #t6 in stream) {
+ i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:22:16: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+ - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
Try changing the type of the variable.
await for (i in stream) {}
- ^" in #t6 as{TypeError} core::int*;
+ ^" in #t6 as{TypeError,ForNonNullableByDefault} core::int;
}
- for (final self::A* #t7 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t7 in self::f<core::Iterable<self::A>>()) {
a = #t7;
}
- await for (final self::A* #t8 in self::f<asy::Stream<self::A*>*>()) {
+ await for (final self::A #t8 in self::f<asy::Stream<self::A>>()) {
a = #t8;
}
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.modular.expect
index 5c4c5e0..4136656 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.modular.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:26:10: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:21:10: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
// Try changing the type of the variable.
// for (i in iterable) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:27:16: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:22:16: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
// Try changing the type of the variable.
// await for (i in stream) {}
// ^
@@ -21,63 +21,48 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- core::Iterable<self::A*>* iterable;
- asy::Stream<self::A*>* stream;
- self::A* a;
- self::B* b;
- core::int* i;
- for (final self::A* #t1 in iterable) {
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(core::Iterable<self::B> iterable, asy::Stream<self::B> stream, self::A a, self::B b, core::int i) → dynamic async /* futureValueType= dynamic */ {
+ for (final self::B #t1 in iterable) {
a = #t1;
}
- await for (final self::A* #t2 in stream) {
+ await for (final self::B #t2 in stream) {
a = #t2;
}
- for (final self::A* #t3 in iterable) {
- b = #t3 as{TypeError} self::B*;
+ for (final self::B #t3 in iterable) {
+ b = #t3;
}
- await for (final self::A* #t4 in stream) {
- b = #t4 as{TypeError} self::B*;
+ await for (final self::B #t4 in stream) {
+ b = #t4;
}
- for (final self::A* #t5 in iterable) {
- i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:26:10: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
- - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+ for (final self::B #t5 in iterable) {
+ i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:21:10: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+ - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
Try changing the type of the variable.
for (i in iterable) {}
- ^" in #t5 as{TypeError} core::int*;
+ ^" in #t5 as{TypeError,ForNonNullableByDefault} core::int;
}
- await for (final self::A* #t6 in stream) {
- i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:27:16: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
- - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+ await for (final self::B #t6 in stream) {
+ i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:22:16: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+ - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
Try changing the type of the variable.
await for (i in stream) {}
- ^" in #t6 as{TypeError} core::int*;
+ ^" in #t6 as{TypeError,ForNonNullableByDefault} core::int;
}
- for (final self::A* #t7 in self::f<core::Iterable<self::A*>*>()) {
+ for (final self::A #t7 in self::f<core::Iterable<self::A>>()) {
a = #t7;
}
- await for (final self::A* #t8 in self::f<asy::Stream<self::A*>*>()) {
+ await for (final self::A #t8 in self::f<asy::Stream<self::A>>()) {
a = #t8;
}
}
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.outline.expect
index c0d21be..7d8c86e 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.outline.expect
@@ -1,30 +1,21 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
+import "dart:async" as asy;
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method test() → dynamic async
+static method test(core::Iterable<self::B> iterable, asy::Stream<self::B> stream, self::A a, self::B b, core::int i) → dynamic async
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.transformed.expect
index 310c41e..d89d526 100644
--- a/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart.weak.transformed.expect
@@ -1,15 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:26:10: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:21:10: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
// Try changing the type of the variable.
// for (i in iterable) {}
// ^
//
-// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:27:16: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+// pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:22:16: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
// Try changing the type of the variable.
// await for (i in stream) {}
// ^
@@ -21,131 +21,116 @@
import "dart:async";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test() → dynamic async /* futureValueType= dynamic */ {
- core::Iterable<self::A*>* iterable;
- asy::Stream<self::A*>* stream;
- self::A* a;
- self::B* b;
- core::int* i;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(core::Iterable<self::B> iterable, asy::Stream<self::B> stream, self::A a, self::B b, core::int i) → dynamic async /* futureValueType= dynamic */ {
{
- core::Iterator<self::A*>* :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::B> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<self::B>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t1 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::B #t1 = :sync-for-iterator.{core::Iterator::current}{self::B};
{
a = #t1;
}
}
}
{
- asy::Stream<self::A*>* :stream = stream;
- asy::_StreamIterator<self::A*>* :for-iterator = new asy::_StreamIterator::•<self::A*>(:stream);
+ asy::Stream<self::B> :stream = stream;
+ asy::_StreamIterator<self::B>? :for-iterator = new asy::_StreamIterator::•<self::B>(:stream);
try
while (let dynamic #t2 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final self::A* #t3 = :for-iterator.{asy::_StreamIterator::current}{self::A*};
+ final self::B #t3 = :for-iterator.{asy::_StreamIterator::current}{self::B};
{
a = #t3;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::A*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::B>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- core::Iterator<self::A*>* :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::B> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<self::B>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t4 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::B #t4 = :sync-for-iterator.{core::Iterator::current}{self::B};
{
- b = #t4 as{TypeError} self::B*;
+ b = #t4;
}
}
}
{
- asy::Stream<self::A*>* :stream = stream;
- asy::_StreamIterator<self::A*>* :for-iterator = new asy::_StreamIterator::•<self::A*>(:stream);
+ asy::Stream<self::B> :stream = stream;
+ asy::_StreamIterator<self::B>? :for-iterator = new asy::_StreamIterator::•<self::B>(:stream);
try
while (let dynamic #t5 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final self::A* #t6 = :for-iterator.{asy::_StreamIterator::current}{self::A*};
+ final self::B #t6 = :for-iterator.{asy::_StreamIterator::current}{self::B};
{
- b = #t6 as{TypeError} self::B*;
+ b = #t6;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::A*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::B>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- core::Iterator<self::A*>* :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::B> :sync-for-iterator = iterable.{core::Iterable::iterator}{core::Iterator<self::B>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t7 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::B #t7 = :sync-for-iterator.{core::Iterator::current}{self::B};
{
- i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:26:10: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
- - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+ i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:21:10: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+ - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
Try changing the type of the variable.
for (i in iterable) {}
- ^" in #t7 as{TypeError} core::int*;
+ ^" in #t7 as{TypeError,ForNonNullableByDefault} core::int;
}
}
}
{
- asy::Stream<self::A*>* :stream = stream;
- asy::_StreamIterator<self::A*>* :for-iterator = new asy::_StreamIterator::•<self::A*>(:stream);
+ asy::Stream<self::B> :stream = stream;
+ asy::_StreamIterator<self::B>? :for-iterator = new asy::_StreamIterator::•<self::B>(:stream);
try
while (let dynamic #t8 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final self::A* #t9 = :for-iterator.{asy::_StreamIterator::current}{self::A*};
+ final self::B #t9 = :for-iterator.{asy::_StreamIterator::current}{self::B};
{
- i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:27:16: Error: A value of type 'A' can't be assigned to a variable of type 'int'.
- - 'A' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
+ i = invalid-expression "pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart:22:16: Error: A value of type 'B' can't be assigned to a variable of type 'int'.
+ - 'B' is from 'pkg/front_end/testcases/inference_new/for_each_outer_var_type.dart'.
Try changing the type of the variable.
await for (i in stream) {}
- ^" in #t9 as{TypeError} core::int*;
+ ^" in #t9 as{TypeError,ForNonNullableByDefault} core::int;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::A*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::B>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
{
- core::Iterator<self::A*>* :sync-for-iterator = self::f<core::Iterable<self::A*>*>().{core::Iterable::iterator}{core::Iterator<self::A*>*};
+ core::Iterator<self::A> :sync-for-iterator = self::f<core::Iterable<self::A>>().{core::Iterable::iterator}{core::Iterator<self::A>};
for (; :sync-for-iterator.{core::Iterator::moveNext}(){() → core::bool}; ) {
- final self::A* #t10 = :sync-for-iterator.{core::Iterator::current}{self::A*};
+ final self::A #t10 = :sync-for-iterator.{core::Iterator::current}{self::A};
{
a = #t10;
}
}
}
{
- asy::Stream<self::A*>* :stream = self::f<asy::Stream<self::A*>*>();
- asy::_StreamIterator<self::A*>* :for-iterator = new asy::_StreamIterator::•<self::A*>(:stream);
+ asy::Stream<self::A> :stream = self::f<asy::Stream<self::A>>();
+ asy::_StreamIterator<self::A>? :for-iterator = new asy::_StreamIterator::•<self::A>(:stream);
try
while (let dynamic #t11 = asy::_asyncStarMoveNextHelper(:stream) in await :for-iterator.{asy::_StreamIterator::moveNext}(){() → asy::Future<core::bool>}) {
- final self::A* #t12 = :for-iterator.{asy::_StreamIterator::current}{self::A*};
+ final self::A #t12 = :for-iterator.{asy::_StreamIterator::current}{self::A};
{
a = #t12;
}
}
finally
- if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::A*>?} == null))
+ if(!(:for-iterator.{asy::_StreamIterator::_subscription}{asy::StreamSubscription<self::A>?} == null))
await :for-iterator.{asy::_StreamIterator::cancel}(){() → asy::Future<dynamic>};
}
}
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart
index 4e2ac28..92f03e6 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart
@@ -1,20 +1,20 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(int value) => null;
- C operator *(D value) => null;
+ C operator +(int value) => throw '';
+ C operator *(D value) => throw '';
}
class B {
- E operator +(int value) => null;
- E operator *(F value) => null;
+ E operator +(int value) => throw '';
+ E operator *(F value) => throw '';
}
class C extends B {}
@@ -26,28 +26,28 @@
class F {}
class G {
- A operator [](int i) => null;
+ A operator [](int i) => throw '';
void operator []=(int i, B value) {}
}
void test1(G g) {
g /*@target=G.[]*/ /*@target=G.[]=*/ [
- 0] /*@target=A.**/ *= /*@ typeArgs=D* */ f();
- var /*@ type=C* */ x = g /*@target=G.[]*/ /*@target=G.[]=*/ [0]
+ 0] /*@target=A.**/ *= /*@typeArgs=D*/ f();
+ var /*@type=C*/ x = g /*@target=G.[]*/ /*@target=G.[]=*/ [0]
/*@target=A.**/
- *= /*@ typeArgs=D* */ f();
+ *= /*@typeArgs=D*/ f();
}
void test2(G g) {
/*@target=A.+*/ ++g /*@target=G.[]*/ /*@target=G.[]=*/ [0];
- var /*@ type=C* */ x = /*@target=A.+*/ ++g /*@target=G.[]*/ /*@target=G.[]=*/ [
+ var /*@type=C*/ x = /*@target=A.+*/ ++g /*@target=G.[]*/ /*@target=G.[]=*/ [
0];
}
void test3(G g) {
g /*@target=G.[]*/ /*@target=G.[]=*/ [0] /*@target=A.+*/ ++;
- var /*@ type=A* */ x =
+ var /*@type=A*/ x =
g /*@target=G.[]*/ /*@target=G.[]=*/ [0] /*@target=A.+*/ ++;
}
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline.expect
index 794e044..41f2d27 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(int value) => null;
- C operator *(D value) => null;
+ C operator +(int value) => throw '';
+ C operator *(D value) => throw '';
}
class B {
- E operator +(int value) => null;
- E operator *(F value) => null;
+ E operator +(int value) => throw '';
+ E operator *(F value) => throw '';
}
class C extends B {}
@@ -22,7 +21,7 @@
class F {}
class G {
- A operator [](int i) => null;
+ A operator [](int i) => throw '';
void operator []=(int i, B value) {}
}
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline_modelled.expect
index 77bbecd..4b0c012 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator *(D value) => null;
- C operator +(int value) => null;
+ C operator *(D value) => throw '';
+ C operator +(int value) => throw '';
}
class B {
- E operator *(F value) => null;
- E operator +(int value) => null;
+ E operator *(F value) => throw '';
+ E operator +(int value) => throw '';
}
class C extends B {}
@@ -22,7 +21,7 @@
class F {}
class G {
- A operator [](int i) => null;
+ A operator [](int i) => throw '';
void operator []=(int i, B value) {}
}
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.expect b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.expect
index cf8fb9e..0afadfc 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.expect
@@ -1,125 +1,65 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- operator [](core::int* i) → self::A*
- return null;
- operator []=(core::int* i, self::B* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](core::int i) → self::A
+ return throw "";
+ operator []=(core::int i, self::B value) → void {}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test1(self::G* g) → void {
- let final self::G* #t1 = g in let final core::int* #t2 = 0 in #t1.{self::G::[]=}(#t2, #t1.{self::G::[]}(#t2){(core::int*) →* self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*}){(core::int*, self::B*) →* void};
- self::C* x = let final self::G* #t3 = g in let final core::int* #t4 = 0 in let final self::C* #t5 = #t3.{self::G::[]}(#t4){(core::int*) →* self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*} in let final void #t6 = #t3.{self::G::[]=}(#t4, #t5){(core::int*, self::B*) →* void} in #t5;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test1(self::G g) → void {
+ let final self::G #t1 = g in let final core::int #t2 = 0 in #t1.{self::G::[]=}(#t2, #t1.{self::G::[]}(#t2){(core::int) → self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C}){(core::int, self::B) → void};
+ self::C x = let final self::G #t3 = g in let final core::int #t4 = 0 in let final self::C #t5 = #t3.{self::G::[]}(#t4){(core::int) → self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C} in let final void #t6 = #t3.{self::G::[]=}(#t4, #t5){(core::int, self::B) → void} in #t5;
}
-static method test2(self::G* g) → void {
- let final self::G* #t7 = g in let final core::int* #t8 = 0 in let final self::C* #t9 = #t7.{self::G::[]}(#t8){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*} in let final void #t10 = #t7.{self::G::[]=}(#t8, #t9){(core::int*, self::B*) →* void} in #t9;
- self::C* x = let final self::G* #t11 = g in let final core::int* #t12 = 0 in let final self::C* #t13 = #t11.{self::G::[]}(#t12){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*} in let final void #t14 = #t11.{self::G::[]=}(#t12, #t13){(core::int*, self::B*) →* void} in #t13;
+static method test2(self::G g) → void {
+ let final self::G #t7 = g in let final core::int #t8 = 0 in let final self::C #t9 = #t7.{self::G::[]}(#t8){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C} in let final void #t10 = #t7.{self::G::[]=}(#t8, #t9){(core::int, self::B) → void} in #t9;
+ self::C x = let final self::G #t11 = g in let final core::int #t12 = 0 in let final self::C #t13 = #t11.{self::G::[]}(#t12){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C} in let final void #t14 = #t11.{self::G::[]=}(#t12, #t13){(core::int, self::B) → void} in #t13;
}
-static method test3(self::G* g) → void {
- let final self::G* #t15 = g in let final core::int* #t16 = 0 in #t15.{self::G::[]=}(#t16, #t15.{self::G::[]}(#t16){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*}){(core::int*, self::B*) →* void};
- self::A* x = let final self::G* #t17 = g in let final core::int* #t18 = 0 in let final self::A* #t19 = #t17.{self::G::[]}(#t18){(core::int*) →* self::A*} in let final void #t20 = #t17.{self::G::[]=}(#t18, #t19.{self::A::+}(1){(core::int*) →* self::C*}){(core::int*, self::B*) →* void} in #t19;
+static method test3(self::G g) → void {
+ let final self::G #t15 = g in let final core::int #t16 = 0 in #t15.{self::G::[]=}(#t16, #t15.{self::G::[]}(#t16){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C}){(core::int, self::B) → void};
+ self::A x = let final self::G #t17 = g in let final core::int #t18 = 0 in let final self::A #t19 = #t17.{self::G::[]}(#t18){(core::int) → self::A} in let final void #t20 = #t17.{self::G::[]=}(#t18, #t19.{self::A::+}(1){(core::int) → self::C}){(core::int, self::B) → void} in #t19;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.modular.expect
index cf8fb9e..0afadfc 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.modular.expect
@@ -1,125 +1,65 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- operator [](core::int* i) → self::A*
- return null;
- operator []=(core::int* i, self::B* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](core::int i) → self::A
+ return throw "";
+ operator []=(core::int i, self::B value) → void {}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test1(self::G* g) → void {
- let final self::G* #t1 = g in let final core::int* #t2 = 0 in #t1.{self::G::[]=}(#t2, #t1.{self::G::[]}(#t2){(core::int*) →* self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*}){(core::int*, self::B*) →* void};
- self::C* x = let final self::G* #t3 = g in let final core::int* #t4 = 0 in let final self::C* #t5 = #t3.{self::G::[]}(#t4){(core::int*) →* self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*} in let final void #t6 = #t3.{self::G::[]=}(#t4, #t5){(core::int*, self::B*) →* void} in #t5;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test1(self::G g) → void {
+ let final self::G #t1 = g in let final core::int #t2 = 0 in #t1.{self::G::[]=}(#t2, #t1.{self::G::[]}(#t2){(core::int) → self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C}){(core::int, self::B) → void};
+ self::C x = let final self::G #t3 = g in let final core::int #t4 = 0 in let final self::C #t5 = #t3.{self::G::[]}(#t4){(core::int) → self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C} in let final void #t6 = #t3.{self::G::[]=}(#t4, #t5){(core::int, self::B) → void} in #t5;
}
-static method test2(self::G* g) → void {
- let final self::G* #t7 = g in let final core::int* #t8 = 0 in let final self::C* #t9 = #t7.{self::G::[]}(#t8){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*} in let final void #t10 = #t7.{self::G::[]=}(#t8, #t9){(core::int*, self::B*) →* void} in #t9;
- self::C* x = let final self::G* #t11 = g in let final core::int* #t12 = 0 in let final self::C* #t13 = #t11.{self::G::[]}(#t12){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*} in let final void #t14 = #t11.{self::G::[]=}(#t12, #t13){(core::int*, self::B*) →* void} in #t13;
+static method test2(self::G g) → void {
+ let final self::G #t7 = g in let final core::int #t8 = 0 in let final self::C #t9 = #t7.{self::G::[]}(#t8){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C} in let final void #t10 = #t7.{self::G::[]=}(#t8, #t9){(core::int, self::B) → void} in #t9;
+ self::C x = let final self::G #t11 = g in let final core::int #t12 = 0 in let final self::C #t13 = #t11.{self::G::[]}(#t12){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C} in let final void #t14 = #t11.{self::G::[]=}(#t12, #t13){(core::int, self::B) → void} in #t13;
}
-static method test3(self::G* g) → void {
- let final self::G* #t15 = g in let final core::int* #t16 = 0 in #t15.{self::G::[]=}(#t16, #t15.{self::G::[]}(#t16){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*}){(core::int*, self::B*) →* void};
- self::A* x = let final self::G* #t17 = g in let final core::int* #t18 = 0 in let final self::A* #t19 = #t17.{self::G::[]}(#t18){(core::int*) →* self::A*} in let final void #t20 = #t17.{self::G::[]=}(#t18, #t19.{self::A::+}(1){(core::int*) →* self::C*}){(core::int*, self::B*) →* void} in #t19;
+static method test3(self::G g) → void {
+ let final self::G #t15 = g in let final core::int #t16 = 0 in #t15.{self::G::[]=}(#t16, #t15.{self::G::[]}(#t16){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C}){(core::int, self::B) → void};
+ self::A x = let final self::G #t17 = g in let final core::int #t18 = 0 in let final self::A #t19 = #t17.{self::G::[]}(#t18){(core::int) → self::A} in let final void #t20 = #t17.{self::G::[]=}(#t18, #t19.{self::A::+}(1){(core::int) → self::C}){(core::int, self::B) → void} in #t19;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.outline.expect
index 271d480..4fa91fb 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.outline.expect
@@ -1,114 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- operator +(core::int* value) → self::C*
+ operator +(core::int value) → self::C
;
- operator *(self::D* value) → self::C*
+ operator *(self::D value) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(core::int* value) → self::E*
+ operator +(core::int value) → self::E
;
- operator *(self::F* value) → self::E*
+ operator *(self::F value) → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
;
- operator [](core::int* i) → self::A*
+ operator [](core::int i) → self::A
;
- operator []=(core::int* i, self::B* value) → void
+ operator []=(core::int i, self::B value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method test1(self::G* g) → void
+static method test1(self::G g) → void
;
-static method test2(self::G* g) → void
+static method test2(self::G g) → void
;
-static method test3(self::G* g) → void
+static method test3(self::G g) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.transformed.expect
index a14cd5c..4a05121 100644
--- a/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/indexed_assign_combiner.dart.weak.transformed.expect
@@ -1,126 +1,66 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- operator [](core::int* i) → self::A*
- return null;
- operator []=(core::int* i, self::B* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](core::int i) → self::A
+ return throw "";
+ operator []=(core::int i, self::B value) → void {}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test1(self::G* g) → void {
- let final self::G* #t1 = g in let final core::int* #t2 = 0 in #t1.{self::G::[]=}(#t2, #t1.{self::G::[]}(#t2){(core::int*) →* self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*}){(core::int*, self::B*) →* void};
- self::C* x = let final self::G* #t3 = g in let final core::int* #t4 = 0 in let final self::C* #t5 = #t3.{self::G::[]}(#t4){(core::int*) →* self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*} in let final void #t6 = #t3.{self::G::[]=}(#t4, #t5){(core::int*, self::B*) →* void} in #t5;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test1(self::G g) → void {
+ let final self::G #t1 = g in let final core::int #t2 = 0 in #t1.{self::G::[]=}(#t2, #t1.{self::G::[]}(#t2){(core::int) → self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C}){(core::int, self::B) → void};
+ self::C x = let final self::G #t3 = g in let final core::int #t4 = 0 in let final self::C #t5 = #t3.{self::G::[]}(#t4){(core::int) → self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C} in let final void #t6 = #t3.{self::G::[]=}(#t4, #t5){(core::int, self::B) → void} in #t5;
}
-static method test2(self::G* g) → void {
- let final self::G* #t7 = g in let final core::int* #t8 = 0 in let final self::C* #t9 = #t7.{self::G::[]}(#t8){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*} in let final void #t10 = #t7.{self::G::[]=}(#t8, #t9){(core::int*, self::B*) →* void} in #t9;
- self::C* x = let final self::G* #t11 = g in let final core::int* #t12 = 0 in let final self::C* #t13 = #t11.{self::G::[]}(#t12){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*} in let final void #t14 = #t11.{self::G::[]=}(#t12, #t13){(core::int*, self::B*) →* void} in #t13;
+static method test2(self::G g) → void {
+ let final self::G #t7 = g in let final core::int #t8 = 0 in let final self::C #t9 = #t7.{self::G::[]}(#t8){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C} in let final void #t10 = #t7.{self::G::[]=}(#t8, #t9){(core::int, self::B) → void} in #t9;
+ self::C x = let final self::G #t11 = g in let final core::int #t12 = 0 in let final self::C #t13 = #t11.{self::G::[]}(#t12){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C} in let final void #t14 = #t11.{self::G::[]=}(#t12, #t13){(core::int, self::B) → void} in #t13;
}
-static method test3(self::G* g) → void {
- let final self::G* #t15 = g in let final core::int* #t16 = 0 in #t15.{self::G::[]=}(#t16, #t15.{self::G::[]}(#t16){(core::int*) →* self::A*}.{self::A::+}(1){(core::int*) →* self::C*}){(core::int*, self::B*) →* void};
- self::A* x = let final self::G* #t17 = g in let final core::int* #t18 = 0 in let final self::A* #t19 = #t17.{self::G::[]}(#t18){(core::int*) →* self::A*} in let final void #t20 = #t17.{self::G::[]=}(#t18, #t19.{self::A::+}(1){(core::int*) →* self::C*}){(core::int*, self::B*) →* void} in #t19;
+static method test3(self::G g) → void {
+ let final self::G #t15 = g in let final core::int #t16 = 0 in #t15.{self::G::[]=}(#t16, #t15.{self::G::[]}(#t16){(core::int) → self::A}.{self::A::+}(1){(core::int) → self::C}){(core::int, self::B) → void};
+ self::A x = let final self::G #t17 = g in let final core::int #t18 = 0 in let final self::A #t19 = #t17.{self::G::[]}(#t18){(core::int) → self::A} in let final void #t20 = #t17.{self::G::[]=}(#t18, #t19.{self::A::+}(1){(core::int) → self::C}){(core::int, self::B) → void} in #t19;
}
static method main() → dynamic {}
@@ -128,8 +68,8 @@
Extra constant evaluation status:
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:36:7 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:36:7 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:37:64 -> IntConstant(0)
-Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:37:64 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:37:61 -> IntConstant(0)
+Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:37:61 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:43:59 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:43:59 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:45:7 -> IntConstant(0)
@@ -138,4 +78,4 @@
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:49:41 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:51:45 -> IntConstant(0)
Evaluated: VariableGet @ org-dartlang-testcase:///indexed_assign_combiner.dart:51:45 -> IntConstant(0)
-Extra constant evaluation: evaluated: 78, effectively constant: 12
+Extra constant evaluation: evaluated: 84, effectively constant: 12
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart
index ff8a546..137beef 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart
@@ -1,75 +1,55 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B member;
+ B member = throw '';
+ B? member2;
void test() {
- /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
+ /*@target=Test.member*/member = /*@typeArgs=B*/f();
- /*@target=Test.member*/ /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ /*@target=Test.member2*//*@target=Test.member2*/member2 ??= /*@typeArgs=B?*/ f();
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@target=Test.member*//*@target=Test.member*/member /*@target=B.+*/+= /*@typeArgs=C*/f();
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@target=Test.member*//*@target=Test.member*/member /*@target=B.**/*= /*@typeArgs=B*/f();
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@target=Test.member*//*@target=Test.member*/member /*@target=B.&*/&= /*@typeArgs=A*/f();
- /*@target=B.-*/ --
- /*@target=Test.member*/ /*@target=Test.member*/ member;
+ /*@target=B.-*/--/*@target=Test.member*//*@target=Test.member*/member;
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.-*/ --;
+ /*@target=Test.member*//*@target=Test.member*/member/*@target=B.-*/--;
- var /*@ type=B* */ v1 = /*@target=Test.member*/ member =
- /*@ typeArgs=B* */ f();
+ var /*@type=B*/ v1 = /*@target=Test.member*/member = /*@typeArgs=B*/f();
- var /*@ type=B* */ v2 = /*@target=Test.member*/ /*@target=Test.member*/
- member
- ??= /*@ typeArgs=B* */ f();
+ var /*@type=B?*/ v2 = /*@target=Test.member2*//*@target=Test.member2*/member2 ??= /*@typeArgs=B?*/ f();
- var /*@ type=A* */ v3 =
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ +=
- /*@ typeArgs=C* */ f();
+ var /*@type=B*/ v3 = /*@target=Test.member*//*@target=Test.member*/member /*@target=B.+*/+= /*@typeArgs=C*/f();
- var /*@ type=B* */ v4 =
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *=
- /*@ typeArgs=B* */ f();
+ var /*@type=B*/ v4 = /*@target=Test.member*//*@target=Test.member*/member /*@target=B.**/*= /*@typeArgs=B*/f();
- var /*@ type=C* */ v5 =
- /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &=
- /*@ typeArgs=A* */ f();
+ var /*@type=C*/ v5 = /*@target=Test.member*//*@target=Test.member*/member /*@target=B.&*/&= /*@typeArgs=A*/f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ --
- /*@target=Test.member*/ /*@target=Test.member*/ member;
+ var /*@type=B*/ v6 = /*@target=B.-*/--/*@target=Test.member*//*@target=Test.member*/member;
- var /*@ type=B* */ v7 =
- /*@ type=B* */ /*@target=Test.member*/ /*@target=Test.member*/
- /*@ type=B* */ member /*@target=B.-*/ --;
+ var /*@type=B*/ v7 = /*@target=Test.member*//*@type=B*//*@target=Test.member*//*@type=B*/member/*@target=B.-*/--;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline.expect
index fc944b3..8639b2e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline.expect
@@ -1,21 +1,21 @@
-// @dart = 2.9
library test;
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B member;
+ B member = throw '';
+ B? member2;
void test() {}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect
index cb5ae88..cc4a77b 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.textual_outline_modelled.expect
@@ -1,21 +1,21 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator *(B v) => null;
- B operator -(int i) => null;
- C operator &(A v) => null;
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
class Test {
- B member;
+ B? member2;
+ B member = throw '';
void test() {}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.expect
index 43a39ef..83d51f2 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.expect
@@ -1,72 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
method test() → void {
- this.{self::Test::member} = self::f<self::B*>();
- this.{self::Test::member}{self::B*} == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : null;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v1 = this.{self::Test::member} = self::f<self::B*>();
- self::B* v2 = let final self::B* #t1 = this.{self::Test::member}{self::B*} in #t1 == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : #t1;
- self::A* v3 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- self::B* v4 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- self::C* v5 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- self::B* v6 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v7 = let final self::B* #t2 = this.{self::Test::member}{self::B*} in let final self::B* #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int*) →* self::B*} in #t2;
+ this.{self::Test::member} = self::f<self::B>();
+ this.{self::Test::member2}{self::B?} == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : null;
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = this.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = this.{self::Test::member2}{self::B?} in #t1 == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = this.{self::Test::member}{self::B} in let final self::B #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.modular.expect
index 43a39ef..83d51f2 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.modular.expect
@@ -1,72 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
method test() → void {
- this.{self::Test::member} = self::f<self::B*>();
- this.{self::Test::member}{self::B*} == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : null;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v1 = this.{self::Test::member} = self::f<self::B*>();
- self::B* v2 = let final self::B* #t1 = this.{self::Test::member}{self::B*} in #t1 == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : #t1;
- self::A* v3 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- self::B* v4 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- self::C* v5 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- self::B* v6 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v7 = let final self::B* #t2 = this.{self::Test::member}{self::B*} in let final self::B* #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int*) →* self::B*} in #t2;
+ this.{self::Test::member} = self::f<self::B>();
+ this.{self::Test::member2}{self::B?} == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : null;
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = this.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = this.{self::Test::member2}{self::B?} in #t1 == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = this.{self::Test::member}{self::B} in let final self::B #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.outline.expect
index 30989d3..7ad1065 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.outline.expect
@@ -1,55 +1,36 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(self::C* v) → self::A*
+ operator +(self::C v) → self::B
;
- operator -(core::int* i) → self::B*
+ operator -(core::int i) → self::B
;
- operator *(self::B* v) → self::B*
+ operator *(self::B v) → self::B
;
- operator &(self::A* v) → self::C*
+ operator &(self::A v) → self::C
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class Test extends core::Object {
- field self::B* member;
- synthetic constructor •() → self::Test*
+ field self::B member;
+ field self::B? member2;
+ synthetic constructor •() → self::Test
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.transformed.expect
index 43a39ef..83d51f2 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this.dart.weak.transformed.expect
@@ -1,72 +1,53 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- field self::B* member = null;
- synthetic constructor •() → self::Test*
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
method test() → void {
- this.{self::Test::member} = self::f<self::B*>();
- this.{self::Test::member}{self::B*} == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : null;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v1 = this.{self::Test::member} = self::f<self::B*>();
- self::B* v2 = let final self::B* #t1 = this.{self::Test::member}{self::B*} in #t1 == null ?{self::B*} this.{self::Test::member} = self::f<self::B*>() : #t1;
- self::A* v3 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*;
- self::B* v4 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*};
- self::C* v5 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*};
- self::B* v6 = this.{self::Test::member} = this.{self::Test::member}{self::B*}.{self::B::-}(1){(core::int*) →* self::B*};
- self::B* v7 = let final self::B* #t2 = this.{self::Test::member}{self::B*} in let final self::B* #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int*) →* self::B*} in #t2;
+ this.{self::Test::member} = self::f<self::B>();
+ this.{self::Test::member2}{self::B?} == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : null;
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = this.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = this.{self::Test::member2}{self::B?} in #t1 == null ?{self::B?} this.{self::Test::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = this.{self::Test::member} = this.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = this.{self::Test::member}{self::B} in let final self::B #t3 = this.{self::Test::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards.dart
index 422d372..95755be 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,28 +15,28 @@
int t;
void test() {
- var /*@ type=int* */ v1 = /*@target=Test1.t*/ t = getInt();
+ var /*@type=int**/ v1 = /*@target=Test1.t*/ t = getInt();
- var /*@ type=num* */ v2 = /*@target=Test1.t*/ t = getNum();
+ var /*@type=num**/ v2 = /*@target=Test1.t*/ t = getNum();
- var /*@ type=int* */ v4 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
+ var /*@type=int**/ v4 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
??= getInt();
- var /*@ type=num* */ v5 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
+ var /*@type=num**/ v5 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
??= getNum();
- var /*@ type=int* */ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
+ var /*@type=int**/ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
+ var /*@type=num**/ v8 = /*@target=Test1.t*/ /*@target=Test1.t*/ t
/*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++
/*@target=Test1.t*/ /*@target=Test1.t*/ t;
- var /*@ type=int* */ v11 =
- /*@ type=int* */ /*@target=Test1.t*/ /*@target=Test1.t*/
- /*@ type=int* */ t /*@target=num.+*/ ++;
+ var /*@type=int**/ v11 =
+ /*@type=int**/ /*@target=Test1.t*/ /*@target=Test1.t*/
+ /*@type=int**/ t /*@target=num.+*/ ++;
}
}
@@ -42,36 +44,36 @@
num t;
void test() {
- var /*@ type=int* */ v1 = /*@target=Test2.t*/ t = getInt();
+ var /*@type=int**/ v1 = /*@target=Test2.t*/ t = getInt();
- var /*@ type=num* */ v2 = /*@target=Test2.t*/ t = getNum();
+ var /*@type=num**/ v2 = /*@target=Test2.t*/ t = getNum();
- var /*@ type=double* */ v3 = /*@target=Test2.t*/ t = getDouble();
+ var /*@type=double**/ v3 = /*@target=Test2.t*/ t = getDouble();
- var /*@ type=num* */ v4 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
+ var /*@type=num**/ v4 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
??= getInt();
- var /*@ type=num* */ v5 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
+ var /*@type=num**/ v5 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
??= getNum();
- var /*@ type=num* */ v6 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
+ var /*@type=num**/ v6 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
??= getDouble();
- var /*@ type=num* */ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
+ var /*@type=num**/ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
+ var /*@type=num**/ v8 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
+ var /*@type=num**/ v9 = /*@target=Test2.t*/ /*@target=Test2.t*/ t
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++
/*@target=Test2.t*/ /*@target=Test2.t*/ t;
- var /*@ type=num* */ v11 =
- /*@ type=num* */ /*@target=Test2.t*/ /*@target=Test2.t*/
- /*@ type=num* */ t /*@target=num.+*/ ++;
+ var /*@type=num**/ v11 =
+ /*@type=num**/ /*@target=Test2.t*/ /*@target=Test2.t*/
+ /*@type=num**/ t /*@target=num.+*/ ++;
}
}
@@ -79,31 +81,31 @@
double t;
void test3() {
- var /*@ type=num* */ v2 = /*@target=Test3.t*/ t = getNum();
+ var /*@type=num**/ v2 = /*@target=Test3.t*/ t = getNum();
- var /*@ type=double* */ v3 = /*@target=Test3.t*/ t = getDouble();
+ var /*@type=double**/ v3 = /*@target=Test3.t*/ t = getDouble();
- var /*@ type=num* */ v5 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
+ var /*@type=num**/ v5 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
??= getNum();
- var /*@ type=double* */ v6 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
+ var /*@type=double**/ v6 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
??= getDouble();
- var /*@ type=double* */ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
+ var /*@type=double**/ v7 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
+ var /*@type=double**/ v8 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
+ var /*@type=double**/ v9 = /*@target=Test3.t*/ /*@target=Test3.t*/ t
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 =
+ var /*@type=double**/ v10 =
/*@target=double.+*/ ++ /*@target=Test3.t*/ /*@target=Test3.t*/ t;
- var /*@ type=double* */ v11 =
- /*@ type=double* */ /*@target=Test3.t*/ /*@target=Test3.t*/
- /*@ type=double* */ t /*@target=double.+*/ ++;
+ var /*@type=double**/ v11 =
+ /*@type=double**/ /*@target=Test3.t*/ /*@target=Test3.t*/
+ /*@type=double**/ t /*@target=double.+*/ ++;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart
new file mode 100644
index 0000000..45f7362
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart
@@ -0,0 +1,92 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int t = 0;
+ int? t2;
+
+ void test() {
+ var /*@type=int*/ v1 = /*@target=Test1.t*/ t = getInt();
+
+ var /*@type=int*/ v4 = /*@target=Test1.t2*/ /*@target=Test1.t2*/ t2 ??=
+ getInt();
+
+ var /*@type=int*/ v7 = /*@target=Test1.t*/ /*@target=Test1.t*/ t /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++ /*@target=Test1.t*/ /*@target=Test1.t*/ t;
+
+ var /*@type=int*/ v11 =
+ /*@type=int*/ /*@target=Test1.t*/ /*@target=Test1.t*/
+ /*@type=int*/ t /*@target=num.+*/ ++;
+ }
+}
+
+class Test2 {
+ num t = 0;
+ num? t2;
+
+ void test() {
+ var /*@type=int*/ v1 = /*@target=Test2.t*/ t = getInt();
+
+ var /*@type=num*/ v2 = /*@target=Test2.t*/ t = getNum();
+
+ var /*@type=double*/ v3 = /*@target=Test2.t*/ t = getDouble();
+
+ var /*@type=num*/ v4 = /*@target=Test2.t2*/ /*@target=Test2.t2*/ t2 ??=
+ getInt();
+
+ var /*@type=num*/ v5 = /*@target=Test2.t2*/ /*@target=Test2.t2*/ t2 ??=
+ getNum();
+
+ var /*@type=num*/ v6 = /*@target=Test2.t2*/ /*@target=Test2.t2*/ t2 ??=
+ getDouble();
+
+ var /*@type=num*/ v7 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=num*/ v8 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 = /*@target=Test2.t*/ /*@target=Test2.t*/ t /*@target=num.+*/ +=
+ getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++ /*@target=Test2.t*/ /*@target=Test2.t*/ t;
+
+ var /*@type=num*/ v11 =
+ /*@type=num*/ /*@target=Test2.t*/ /*@target=Test2.t*/
+ /*@type=num*/ t /*@target=num.+*/ ++;
+ }
+}
+
+class Test3 {
+ double t = 0;
+ double? t2;
+
+ void test3() {
+ var /*@type=double*/ v3 = /*@target=Test3.t*/ t = getDouble();
+
+ var /*@type=double*/ v6 = /*@target=Test3.t2*/ /*@target=Test3.t2*/ t2 ??=
+ getDouble();
+
+ var /*@type=double*/ v9 = /*@target=Test3.t*/ /*@target=Test3.t*/ t /*@target=double.+*/ +=
+ getDouble();
+
+ var /*@type=double*/ v10 =
+ /*@target=double.+*/ ++ /*@target=Test3.t*/ /*@target=Test3.t*/ t;
+
+ var /*@type=double*/ v11 =
+ /*@type=double*/ /*@target=Test3.t*/ /*@target=Test3.t*/
+ /*@type=double*/ t /*@target=double.+*/ ++;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..ac0a0e1
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.textual_outline.expect
@@ -0,0 +1,25 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int t = 0;
+ int? t2;
+ void test() {}
+}
+
+class Test2 {
+ num t = 0;
+ num? t2;
+ void test() {}
+}
+
+class Test3 {
+ double t = 0;
+ double? t2;
+ void test3() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..b8a3a2c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,24 @@
+library test;
+
+class Test1 {
+ int? t2;
+ int t = 0;
+ void test() {}
+}
+
+class Test2 {
+ num? t2;
+ num t = 0;
+ void test() {}
+}
+
+class Test3 {
+ double? t2;
+ double t = 0;
+ void test3() {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.expect
new file mode 100644
index 0000000..2e65b61
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.expect
@@ -0,0 +1,59 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t = 0;
+ field core::int? t2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test1::t} = self::getInt();
+ core::int v4 = let final core::int? #t1 = this.{self::Test1::t2}{core::int?} in #t1 == null ?{core::int} this.{self::Test1::t2} = self::getInt() : #t1{core::int};
+ core::int v7 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = this.{self::Test1::t}{core::int} in let final core::int #t3 = this.{self::Test1::t} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends core::Object {
+ field core::num t = 0;
+ field core::num? t2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test2::t} = self::getInt();
+ core::num v2 = this.{self::Test2::t} = self::getNum();
+ core::double v3 = this.{self::Test2::t} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = this.{self::Test2::t2}{core::num?} in #t4 == null ?{core::num} this.{self::Test2::t2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = this.{self::Test2::t2}{core::num?} in #t5 == null ?{core::num} this.{self::Test2::t2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = this.{self::Test2::t2}{core::num?} in #t6 == null ?{core::num} this.{self::Test2::t2} = self::getDouble() : #t6{core::num};
+ core::num v7 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = this.{self::Test2::t}{core::num} in let final core::num #t8 = this.{self::Test2::t} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends core::Object {
+ field core::double t = 0.0;
+ field core::double? t2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ method test3() → void {
+ core::double v3 = this.{self::Test3::t} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = this.{self::Test3::t2}{core::double?} in #t9 == null ?{core::double} this.{self::Test3::t2} = self::getDouble() : #t9{core::double};
+ core::double v9 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = this.{self::Test3::t}{core::double} in let final core::double #t11 = this.{self::Test3::t} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..2e65b61
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.modular.expect
@@ -0,0 +1,59 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t = 0;
+ field core::int? t2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test1::t} = self::getInt();
+ core::int v4 = let final core::int? #t1 = this.{self::Test1::t2}{core::int?} in #t1 == null ?{core::int} this.{self::Test1::t2} = self::getInt() : #t1{core::int};
+ core::int v7 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = this.{self::Test1::t}{core::int} in let final core::int #t3 = this.{self::Test1::t} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends core::Object {
+ field core::num t = 0;
+ field core::num? t2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test2::t} = self::getInt();
+ core::num v2 = this.{self::Test2::t} = self::getNum();
+ core::double v3 = this.{self::Test2::t} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = this.{self::Test2::t2}{core::num?} in #t4 == null ?{core::num} this.{self::Test2::t2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = this.{self::Test2::t2}{core::num?} in #t5 == null ?{core::num} this.{self::Test2::t2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = this.{self::Test2::t2}{core::num?} in #t6 == null ?{core::num} this.{self::Test2::t2} = self::getDouble() : #t6{core::num};
+ core::num v7 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = this.{self::Test2::t}{core::num} in let final core::num #t8 = this.{self::Test2::t} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends core::Object {
+ field core::double t = 0.0;
+ field core::double? t2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ method test3() → void {
+ core::double v3 = this.{self::Test3::t} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = this.{self::Test3::t2}{core::double?} in #t9 == null ?{core::double} this.{self::Test3::t2} = self::getDouble() : #t9{core::double};
+ core::double v9 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = this.{self::Test3::t}{core::double} in let final core::double #t11 = this.{self::Test3::t} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..4f9be01
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t;
+ field core::int? t2;
+ synthetic constructor •() → self::Test1
+ ;
+ method test() → void
+ ;
+}
+class Test2 extends core::Object {
+ field core::num t;
+ field core::num? t2;
+ synthetic constructor •() → self::Test2
+ ;
+ method test() → void
+ ;
+}
+class Test3 extends core::Object {
+ field core::double t;
+ field core::double? t2;
+ synthetic constructor •() → self::Test3
+ ;
+ method test3() → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..2e65b61
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_implicit_this_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,59 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int t = 0;
+ field core::int? t2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test1::t} = self::getInt();
+ core::int v4 = let final core::int? #t1 = this.{self::Test1::t2}{core::int?} in #t1 == null ?{core::int} this.{self::Test1::t2} = self::getInt() : #t1{core::int};
+ core::int v7 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = this.{self::Test1::t} = this.{self::Test1::t}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = this.{self::Test1::t}{core::int} in let final core::int #t3 = this.{self::Test1::t} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends core::Object {
+ field core::num t = 0;
+ field core::num? t2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ method test() → void {
+ core::int v1 = this.{self::Test2::t} = self::getInt();
+ core::num v2 = this.{self::Test2::t} = self::getNum();
+ core::double v3 = this.{self::Test2::t} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = this.{self::Test2::t2}{core::num?} in #t4 == null ?{core::num} this.{self::Test2::t2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = this.{self::Test2::t2}{core::num?} in #t5 == null ?{core::num} this.{self::Test2::t2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = this.{self::Test2::t2}{core::num?} in #t6 == null ?{core::num} this.{self::Test2::t2} = self::getDouble() : #t6{core::num};
+ core::num v7 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = this.{self::Test2::t} = this.{self::Test2::t}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = this.{self::Test2::t}{core::num} in let final core::num #t8 = this.{self::Test2::t} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends core::Object {
+ field core::double t = 0.0;
+ field core::double? t2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ method test3() → void {
+ core::double v3 = this.{self::Test3::t} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = this.{self::Test3::t2}{core::double?} in #t9 == null ?{core::double} this.{self::Test3::t2} = self::getDouble() : #t9{core::double};
+ core::double v9 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = this.{self::Test3::t} = this.{self::Test3::t}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = this.{self::Test3::t}{core::double} in let final core::double #t11 = this.{self::Test3::t} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart
index 6eb85e4..4b7b3b6e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline.expect
index f2992f2..c70181a 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<double> a = <double>[];
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline_modelled.expect
index e20e0c8..89115d7 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<double> a = <double>[];
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.expect
index f6ef830..408370f 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::double*>* a = <core::double*>[];
-static field core::double* b = let final core::List<core::double*>* #t1 = self::a in let final core::int* #t2 = 0 in let final core::double* #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, core::double*) →* void} in #t3;
+static field core::List<core::double> a = <core::double>[];
+static field core::double b = let final core::List<core::double> #t1 = self::a in let final core::int #t2 = 0 in let final core::double #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, core::double) → void} in #t3;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.modular.expect
index f6ef830..408370f 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::double*>* a = <core::double*>[];
-static field core::double* b = let final core::List<core::double*>* #t1 = self::a in let final core::int* #t2 = 0 in let final core::double* #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, core::double*) →* void} in #t3;
+static field core::List<core::double> a = <core::double>[];
+static field core::double b = let final core::List<core::double> #t1 = self::a in let final core::int #t2 = 0 in let final core::double #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, core::double) → void} in #t3;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.outline.expect
index b3128a3..a0ee092 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::double*>* a;
-static field core::double* b;
+static field core::List<core::double> a;
+static field core::double b;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.transformed.expect
index d457863..cdaffdf 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index.dart.weak.transformed.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::double*>* a = core::_GrowableList::•<core::double*>(0);
-static field core::double* b = let final core::List<core::double*>* #t1 = self::a in let final core::int* #t2 = 0 in let final core::double* #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int*, core::double*) →* void} in #t3;
+static field core::List<core::double> a = core::_GrowableList::•<core::double>(0);
+static field core::double b = let final core::List<core::double> #t1 = self::a in let final core::int #t2 = 0 in let final core::double #t3 = 1.0 in let final void #t4 = #t1.{core::List::[]=}(#t2, #t3){(core::int, core::double) → void} in #t3;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart
index 39a70e4..fe315b1 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,76 +10,79 @@
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, B v) {}
void test() {
- Test t = /*@ typeArgs=Test* */ f();
+ Test t = /*@typeArgs=Test*/ f();
- t /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ t /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
-
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
-
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
-
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
-
- t /*@target=Test.[]*/ [/*@ typeArgs=Index* */ f()];
-
- /*@target=B.-*/ --t
- /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()];
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
- var /*@ type=B* */ v1 = t /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
- var /*@ type=B* */ v2 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ t /*@target=Test.[]*/ [/*@typeArgs=Index*/ f()];
- var /*@ type=A* */ v3 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()];
- var /*@ type=B* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
- var /*@ type=C* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@type=B*/ v1 =
+ t /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
- var /*@ type=B* */ v6 = t /*@target=Test.[]*/ [/*@ typeArgs=Index* */ f()];
+ var /*@type=B*/ v3 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
- var /*@ type=B* */ v7 =
- /*@target=B.-*/ --t
- /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()];
+ var /*@type=B*/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
- var /*@ type=B* */ v8 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ var /*@type=C*/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = t /*@target=Test.[]*/ [/*@typeArgs=Index*/ f()];
+
+ var /*@type=B*/ v7 =
+ /*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()];
+
+ var /*@type=B*/ v8 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+ }
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+
+ void test() {
+ Test2 t = /*@typeArgs=Test2*/ f();
+
+ t /*@target=Test2.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B?*/ f();
+
+ t /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B?*/ v2 = t /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline.expect
index 5ad8b13..52bbd2c 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class Index {}
@@ -6,20 +5,26 @@
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator -(int i) => null;
- B operator *(B v) => null;
- C operator &(A v) => null;
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, B v) {}
void test() {}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+ void test() {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline_modelled.expect
index d66beca..3c0c624 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.textual_outline_modelled.expect
@@ -1,15 +1,14 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {}
class B extends A {
- A operator +(C v) => null;
- B operator *(B v) => null;
- B operator -(int i) => null;
- C operator &(A v) => null;
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
}
class C extends B {}
@@ -17,9 +16,15 @@
class Index {}
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, B v) {}
void test() {}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+ void test() {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.expect
index 8b4ab90..592786d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.expect
@@ -1,92 +1,74 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::B* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::B*>()){(self::Index*, self::B*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::B*} #t1.{self::Test::[]=}(#t2, self::f<self::B*>()){(self::Index*, self::B*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*){(self::Index*, self::B*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*}){(self::Index*, self::B*) →* void};
- let final self::Test* #t7 = t in let final self::Index* #t8 = self::f<self::Index*>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*}){(self::Index*, self::B*) →* void};
- t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in let final self::B* #t11 = #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index*, self::B*) →* void} in #t11;
- let final self::Test* #t13 = t in let final self::Index* #t14 = self::f<self::Index*>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void};
- self::B* v1 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = self::f<self::B*>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index*, self::B*) →* void} in #t17;
- self::B* v2 = let final self::Test* #t19 = t in let final self::Index* #t20 = self::f<self::Index*>() in let final self::B* #t21 = #t19.{self::Test::[]}(#t20){(self::Index*) →* self::B*} in #t21 == null ?{self::B*} let final self::B* #t22 = self::f<self::B*>() in let final void #t23 = #t19.{self::Test::[]=}(#t20, #t22){(self::Index*, self::B*) →* void} in #t22 : #t21;
- self::A* v3 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::A* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B* in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::B*) →* void} in #t26;
- self::B* v4 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::B* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index*, self::B*) →* void} in #t30;
- self::C* v5 = let final self::Test* #t32 = t in let final self::Index* #t33 = self::f<self::Index*>() in let final self::C* #t34 = #t32.{self::Test::[]}(#t33){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index*, self::B*) →* void} in #t34;
- self::B* v6 = t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- self::B* v7 = let final self::Test* #t36 = t in let final self::Index* #t37 = self::f<self::Index*>() in let final self::B* #t38 = #t36.{self::Test::[]}(#t37){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38){(self::Index*, self::B*) →* void} in #t38;
- self::B* v8 = let final self::Test* #t40 = t in let final self::Index* #t41 = self::f<self::Index*>() in let final self::B* #t42 = #t40.{self::Test::[]}(#t41){(self::Index*) →* self::B*} in let final void #t43 = #t40.{self::Test::[]=}(#t41, #t42.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void} in #t42;
+ self::Test t = self::f<self::Test>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t5 = t in let final self::Index #t6 = self::f<self::Index>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t10 = #t7.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ let final self::Test #t11 = t in let final self::Index #t12 = self::f<self::Index>() in #t11.{self::Test::[]=}(#t12, #t11.{self::Test::[]}(#t12){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = self::f<self::B>() in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::B v3 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::B #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::B) → void} in #t19;
+ self::B v4 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23){(self::Index, self::B) → void} in #t23;
+ self::C v5 = let final self::Test #t25 = t in let final self::Index #t26 = self::f<self::Index>() in let final self::C #t27 = #t25.{self::Test::[]}(#t26){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t28 = #t25.{self::Test::[]=}(#t26, #t27){(self::Index, self::B) → void} in #t27;
+ self::B v6 = t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ self::B v7 = let final self::Test #t29 = t in let final self::Index #t30 = self::f<self::Index>() in let final self::B #t31 = #t29.{self::Test::[]}(#t30){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t32 = #t29.{self::Test::[]=}(#t30, #t31){(self::Index, self::B) → void} in #t31;
+ self::B v8 = let final self::Test #t33 = t in let final self::Index #t34 = self::f<self::Index>() in let final self::B #t35 = #t33.{self::Test::[]}(#t34){(self::Index) → self::B} in let final void #t36 = #t33.{self::Test::[]=}(#t34, #t35.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t35;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ self::Test2 t = self::f<self::Test2>();
+ t.{self::Test2::[]=}(self::f<self::Index>(), self::f<self::B?>()){(self::Index, self::B?) → void};
+ let final self::Test2 #t37 = t in let final self::Index #t38 = self::f<self::Index>() in #t37.{self::Test2::[]}(#t38){(self::Index) → self::B?} == null ?{self::B?} #t37.{self::Test2::[]=}(#t38, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Test2 #t39 = t in let final self::Index #t40 = self::f<self::Index>() in let final self::B? #t41 = #t39.{self::Test2::[]}(#t40){(self::Index) → self::B?} in #t41 == null ?{self::B?} let final self::B? #t42 = self::f<self::B?>() in let final void #t43 = #t39.{self::Test2::[]=}(#t40, #t42){(self::Index, self::B?) → void} in #t42 : #t41{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.modular.expect
index 8b4ab90..592786d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.modular.expect
@@ -1,92 +1,74 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::B* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::B*>()){(self::Index*, self::B*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::B*} #t1.{self::Test::[]=}(#t2, self::f<self::B*>()){(self::Index*, self::B*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*){(self::Index*, self::B*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*}){(self::Index*, self::B*) →* void};
- let final self::Test* #t7 = t in let final self::Index* #t8 = self::f<self::Index*>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*}){(self::Index*, self::B*) →* void};
- t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in let final self::B* #t11 = #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index*, self::B*) →* void} in #t11;
- let final self::Test* #t13 = t in let final self::Index* #t14 = self::f<self::Index*>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void};
- self::B* v1 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = self::f<self::B*>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index*, self::B*) →* void} in #t17;
- self::B* v2 = let final self::Test* #t19 = t in let final self::Index* #t20 = self::f<self::Index*>() in let final self::B* #t21 = #t19.{self::Test::[]}(#t20){(self::Index*) →* self::B*} in #t21 == null ?{self::B*} let final self::B* #t22 = self::f<self::B*>() in let final void #t23 = #t19.{self::Test::[]=}(#t20, #t22){(self::Index*, self::B*) →* void} in #t22 : #t21;
- self::A* v3 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::A* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B* in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::B*) →* void} in #t26;
- self::B* v4 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::B* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index*, self::B*) →* void} in #t30;
- self::C* v5 = let final self::Test* #t32 = t in let final self::Index* #t33 = self::f<self::Index*>() in let final self::C* #t34 = #t32.{self::Test::[]}(#t33){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index*, self::B*) →* void} in #t34;
- self::B* v6 = t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- self::B* v7 = let final self::Test* #t36 = t in let final self::Index* #t37 = self::f<self::Index*>() in let final self::B* #t38 = #t36.{self::Test::[]}(#t37){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38){(self::Index*, self::B*) →* void} in #t38;
- self::B* v8 = let final self::Test* #t40 = t in let final self::Index* #t41 = self::f<self::Index*>() in let final self::B* #t42 = #t40.{self::Test::[]}(#t41){(self::Index*) →* self::B*} in let final void #t43 = #t40.{self::Test::[]=}(#t41, #t42.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void} in #t42;
+ self::Test t = self::f<self::Test>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t5 = t in let final self::Index #t6 = self::f<self::Index>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t10 = #t7.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ let final self::Test #t11 = t in let final self::Index #t12 = self::f<self::Index>() in #t11.{self::Test::[]=}(#t12, #t11.{self::Test::[]}(#t12){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = self::f<self::B>() in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::B v3 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::B #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::B) → void} in #t19;
+ self::B v4 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23){(self::Index, self::B) → void} in #t23;
+ self::C v5 = let final self::Test #t25 = t in let final self::Index #t26 = self::f<self::Index>() in let final self::C #t27 = #t25.{self::Test::[]}(#t26){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t28 = #t25.{self::Test::[]=}(#t26, #t27){(self::Index, self::B) → void} in #t27;
+ self::B v6 = t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ self::B v7 = let final self::Test #t29 = t in let final self::Index #t30 = self::f<self::Index>() in let final self::B #t31 = #t29.{self::Test::[]}(#t30){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t32 = #t29.{self::Test::[]=}(#t30, #t31){(self::Index, self::B) → void} in #t31;
+ self::B v8 = let final self::Test #t33 = t in let final self::Index #t34 = self::f<self::Index>() in let final self::B #t35 = #t33.{self::Test::[]}(#t34){(self::Index) → self::B} in let final void #t36 = #t33.{self::Test::[]=}(#t34, #t35.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t35;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ self::Test2 t = self::f<self::Test2>();
+ t.{self::Test2::[]=}(self::f<self::Index>(), self::f<self::B?>()){(self::Index, self::B?) → void};
+ let final self::Test2 #t37 = t in let final self::Index #t38 = self::f<self::Index>() in #t37.{self::Test2::[]}(#t38){(self::Index) → self::B?} == null ?{self::B?} #t37.{self::Test2::[]=}(#t38, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Test2 #t39 = t in let final self::Index #t40 = self::f<self::Index>() in let final self::B? #t41 = #t39.{self::Test2::[]}(#t40){(self::Index) → self::B?} in #t41 == null ?{self::B?} let final self::B? #t42 = self::f<self::B?>() in let final void #t43 = #t39.{self::Test2::[]=}(#t40, #t42){(self::Index, self::B?) → void} in #t42 : #t41{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.outline.expect
index 01bd466..03e4c14 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.outline.expect
@@ -1,72 +1,52 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(self::C* v) → self::A*
+ operator +(self::C v) → self::B
;
- operator -(core::int* i) → self::B*
+ operator -(core::int i) → self::B
;
- operator *(self::B* v) → self::B*
+ operator *(self::B v) → self::B
;
- operator &(self::A* v) → self::C*
+ operator &(self::A v) → self::C
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
;
- operator [](self::Index* i) → self::B*
+ operator [](self::Index i) → self::B
;
- operator []=(self::Index* i, self::B* v) → void
+ operator []=(self::Index i, self::B v) → void
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::B? v) → void
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.transformed.expect
index 8b4ab90..592786d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_full.dart.weak.transformed.expect
@@ -1,92 +1,74 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::C* v) → self::A*
- return null;
- operator -(core::int* i) → self::B*
- return null;
- operator *(self::B* v) → self::B*
- return null;
- operator &(self::A* v) → self::C*
- return null;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::B* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::B*>()){(self::Index*, self::B*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::B*} #t1.{self::Test::[]=}(#t2, self::f<self::B*>()){(self::Index*, self::B*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B*){(self::Index*, self::B*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*}){(self::Index*, self::B*) →* void};
- let final self::Test* #t7 = t in let final self::Index* #t8 = self::f<self::Index*>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*}){(self::Index*, self::B*) →* void};
- t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in let final self::B* #t11 = #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index*, self::B*) →* void} in #t11;
- let final self::Test* #t13 = t in let final self::Index* #t14 = self::f<self::Index*>() in #t13.{self::Test::[]=}(#t14, #t13.{self::Test::[]}(#t14){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void};
- self::B* v1 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = self::f<self::B*>() in let final void #t18 = #t15.{self::Test::[]=}(#t16, #t17){(self::Index*, self::B*) →* void} in #t17;
- self::B* v2 = let final self::Test* #t19 = t in let final self::Index* #t20 = self::f<self::Index*>() in let final self::B* #t21 = #t19.{self::Test::[]}(#t20){(self::Index*) →* self::B*} in #t21 == null ?{self::B*} let final self::B* #t22 = self::f<self::B*>() in let final void #t23 = #t19.{self::Test::[]=}(#t20, #t22){(self::Index*, self::B*) →* void} in #t22 : #t21;
- self::A* v3 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::A* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::C*>()){(self::C*) →* self::A*} as{TypeError} self::B* in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::B*) →* void} in #t26;
- self::B* v4 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::B* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*}.{self::B::*}(self::f<self::B*>()){(self::B*) →* self::B*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30){(self::Index*, self::B*) →* void} in #t30;
- self::C* v5 = let final self::Test* #t32 = t in let final self::Index* #t33 = self::f<self::Index*>() in let final self::C* #t34 = #t32.{self::Test::[]}(#t33){(self::Index*) →* self::B*}.{self::B::&}(self::f<self::A*>()){(self::A*) →* self::C*} in let final void #t35 = #t32.{self::Test::[]=}(#t33, #t34){(self::Index*, self::B*) →* void} in #t34;
- self::B* v6 = t.{self::Test::[]}(self::f<self::Index*>()){(self::Index*) →* self::B*};
- self::B* v7 = let final self::Test* #t36 = t in let final self::Index* #t37 = self::f<self::Index*>() in let final self::B* #t38 = #t36.{self::Test::[]}(#t37){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::B*} in let final void #t39 = #t36.{self::Test::[]=}(#t37, #t38){(self::Index*, self::B*) →* void} in #t38;
- self::B* v8 = let final self::Test* #t40 = t in let final self::Index* #t41 = self::f<self::Index*>() in let final self::B* #t42 = #t40.{self::Test::[]}(#t41){(self::Index*) →* self::B*} in let final void #t43 = #t40.{self::Test::[]=}(#t41, #t42.{self::B::-}(1){(core::int*) →* self::B*}){(self::Index*, self::B*) →* void} in #t42;
+ self::Test t = self::f<self::Test>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Test #t5 = t in let final self::Index #t6 = self::f<self::Index>() in #t5.{self::Test::[]=}(#t6, #t5.{self::Test::[]}(#t6){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t10 = #t7.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ let final self::Test #t11 = t in let final self::Index #t12 = self::f<self::Index>() in #t11.{self::Test::[]=}(#t12, #t11.{self::Test::[]}(#t12){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = self::f<self::B>() in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::B v3 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::B #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::B) → void} in #t19;
+ self::B v4 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23){(self::Index, self::B) → void} in #t23;
+ self::C v5 = let final self::Test #t25 = t in let final self::Index #t26 = self::f<self::Index>() in let final self::C #t27 = #t25.{self::Test::[]}(#t26){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t28 = #t25.{self::Test::[]=}(#t26, #t27){(self::Index, self::B) → void} in #t27;
+ self::B v6 = t.{self::Test::[]}(self::f<self::Index>()){(self::Index) → self::B};
+ self::B v7 = let final self::Test #t29 = t in let final self::Index #t30 = self::f<self::Index>() in let final self::B #t31 = #t29.{self::Test::[]}(#t30){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t32 = #t29.{self::Test::[]=}(#t30, #t31){(self::Index, self::B) → void} in #t31;
+ self::B v8 = let final self::Test #t33 = t in let final self::Index #t34 = self::f<self::Index>() in let final self::B #t35 = #t33.{self::Test::[]}(#t34){(self::Index) → self::B} in let final void #t36 = #t33.{self::Test::[]=}(#t34, #t35.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t35;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ self::Test2 t = self::f<self::Test2>();
+ t.{self::Test2::[]=}(self::f<self::Index>(), self::f<self::B?>()){(self::Index, self::B?) → void};
+ let final self::Test2 #t37 = t in let final self::Index #t38 = self::f<self::Index>() in #t37.{self::Test2::[]}(#t38){(self::Index) → self::B?} == null ?{self::B?} #t37.{self::Test2::[]=}(#t38, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Test2 #t39 = t in let final self::Index #t40 = self::f<self::Index>() in let final self::B? #t41 = #t39.{self::Test2::[]}(#t40){(self::Index) → self::B?} in #t41 == null ?{self::B?} let final self::B? #t42 = self::f<self::B?>() in let final void #t43 = #t39.{self::Test2::[]=}(#t40, #t42){(self::Index, self::B?) → void} in #t42 : #t41{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart
index e4108f8..026a536 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart
@@ -1,20 +1,20 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class Index {}
class A {
- C operator +(F v) => null;
- C operator -(int i) => null;
+ C operator +(F v) => throw '';
+ C operator -(int i) => throw '';
}
class B extends A {
- D operator +(E v) => null;
- D operator -(int i) => null;
+ D operator +(E v) => throw '';
+ D operator -(int i) => throw '';
}
class C extends B {}
@@ -25,47 +25,53 @@
class F extends E {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, A v) {}
void test() {
- Test t = /*@ typeArgs=Test* */ f();
+ Test t = /*@typeArgs=Test*/ f();
- t /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=A* */ f();
-
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=A* */ f();
-
- t /*@target=Test.[]*/ /*@target=Test.[]=*/ [/*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=E* */ f();
-
- /*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()];
+ t /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=A*/ f();
t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=E*/ f();
- var /*@ type=A* */ v1 = t /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=A* */ f();
+ /*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()];
- var /*@ type=A* */ v2 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=A* */ f();
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
- var /*@ type=D* */ v3 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=E* */ f();
+ var /*@type=A*/ v1 =
+ t /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=A*/ f();
- var /*@ type=D* */ v4 =
+ var /*@type=D*/ v3 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=E*/ f();
+
+ var /*@type=D*/ v4 =
/*@target=B.-*/ --t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()];
+ /*@typeArgs=Index*/ f()];
- var /*@ type=B* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ var /*@type=B*/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+ }
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, A? v) {}
+
+ void test() {
+ Test2 t = /*@typeArgs=Test2*/ f();
+
+ t /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=A?*/ f();
+
+ var /*@type=A?*/ v2 = t /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=A?*/ f();
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline.expect
index c3cbb2f..5616133 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
class Index {}
class A {
- C operator +(F v) => null;
- C operator -(int i) => null;
+ C operator +(F v) => throw '';
+ C operator -(int i) => throw '';
}
class B extends A {
- D operator +(E v) => null;
- D operator -(int i) => null;
+ D operator +(E v) => throw '';
+ D operator -(int i) => throw '';
}
class C extends B {}
@@ -21,12 +20,18 @@
class F extends E {}
-T f<T>() => null;
+T f<T>() => throw '';
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, A v) {}
void test() {}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, A? v) {}
+ void test() {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline_modelled.expect
index 1b9ab91..3b8607e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(F v) => null;
- C operator -(int i) => null;
+ C operator +(F v) => throw '';
+ C operator -(int i) => throw '';
}
class B extends A {
- D operator +(E v) => null;
- D operator -(int i) => null;
+ D operator +(E v) => throw '';
+ D operator -(int i) => throw '';
}
class C extends B {}
@@ -24,9 +23,15 @@
class Index {}
class Test {
- B operator [](Index i) => null;
+ B operator [](Index i) => throw '';
void operator []=(Index i, A v) {}
void test() {}
}
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, A? v) {}
+ void test() {}
+}
+
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.expect
index 685af9c..3db584e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.expect
@@ -1,101 +1,82 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(self::F* v) → self::C*
- return null;
- operator -(core::int* i) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(self::F v) → self::C
+ return throw "";
+ operator -(core::int i) → self::C
+ return throw "";
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::E* v) → self::D*
- return null;
- operator -(core::int* i) → self::D*
- return null;
+ operator +(self::E v) → self::D
+ return throw "";
+ operator -(core::int i) → self::D
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
class E extends self::D {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super self::D::•()
;
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super self::E::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::A* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::A v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::A*>()){(self::Index*, self::A*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::A*} #t1.{self::Test::[]=}(#t2, self::f<self::A*>()){(self::Index*, self::A*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::E*>()){(self::E*) →* self::D*}){(self::Index*, self::A*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in let final self::D* #t7 = #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*} in let final void #t8 = #t5.{self::Test::[]=}(#t6, #t7){(self::Index*, self::A*) →* void} in #t7;
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in #t9.{self::Test::[]=}(#t10, #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*}){(self::Index*, self::A*) →* void};
- self::A* v1 = let final self::Test* #t11 = t in let final self::Index* #t12 = self::f<self::Index*>() in let final self::A* #t13 = self::f<self::A*>() in let final void #t14 = #t11.{self::Test::[]=}(#t12, #t13){(self::Index*, self::A*) →* void} in #t13;
- self::A* v2 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = #t15.{self::Test::[]}(#t16){(self::Index*) →* self::B*} in #t17 == null ?{self::A*} let final self::A* #t18 = self::f<self::A*>() in let final void #t19 = #t15.{self::Test::[]=}(#t16, #t18){(self::Index*, self::A*) →* void} in #t18 : #t17;
- self::D* v3 = let final self::Test* #t20 = t in let final self::Index* #t21 = self::f<self::Index*>() in let final self::D* #t22 = #t20.{self::Test::[]}(#t21){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::E*>()){(self::E*) →* self::D*} in let final void #t23 = #t20.{self::Test::[]=}(#t21, #t22){(self::Index*, self::A*) →* void} in #t22;
- self::D* v4 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::D* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::A*) →* void} in #t26;
- self::B* v5 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::B* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30.{self::B::-}(1){(core::int*) →* self::D*}){(self::Index*, self::A*) →* void} in #t30;
+ self::Test t = self::f<self::Test>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::A>()){(self::Index, self::A) → void};
+ let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D}){(self::Index, self::A) → void};
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in let final self::D #t5 = #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t6 = #t3.{self::Test::[]=}(#t4, #t5){(self::Index, self::A) → void} in #t5;
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void};
+ self::A v1 = let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::A #t11 = self::f<self::A>() in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::A) → void} in #t11;
+ self::D v3 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::D #t15 = #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D} in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::A) → void} in #t15;
+ self::D v4 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::D #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::A) → void} in #t19;
+ self::B v5 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void} in #t23;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::A? v) → void {}
+ method test() → void {
+ self::Test2 t = self::f<self::Test2>();
+ let final self::Test2 #t25 = t in let final self::Index #t26 = self::f<self::Index>() in #t25.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::A?} #t25.{self::Test2::[]=}(#t26, self::f<self::A?>()){(self::Index, self::A?) → void} : null;
+ self::A? v2 = let final self::Test2 #t27 = t in let final self::Index #t28 = self::f<self::Index>() in let final self::B? #t29 = #t27.{self::Test2::[]}(#t28){(self::Index) → self::B?} in #t29 == null ?{self::A?} let final self::A? #t30 = self::f<self::A?>() in let final void #t31 = #t27.{self::Test2::[]=}(#t28, #t30){(self::Index, self::A?) → void} in #t30 : #t29{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.modular.expect
index 685af9c..3db584e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.modular.expect
@@ -1,101 +1,82 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(self::F* v) → self::C*
- return null;
- operator -(core::int* i) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(self::F v) → self::C
+ return throw "";
+ operator -(core::int i) → self::C
+ return throw "";
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::E* v) → self::D*
- return null;
- operator -(core::int* i) → self::D*
- return null;
+ operator +(self::E v) → self::D
+ return throw "";
+ operator -(core::int i) → self::D
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
class E extends self::D {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super self::D::•()
;
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super self::E::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::A* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::A v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::A*>()){(self::Index*, self::A*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::A*} #t1.{self::Test::[]=}(#t2, self::f<self::A*>()){(self::Index*, self::A*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::E*>()){(self::E*) →* self::D*}){(self::Index*, self::A*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in let final self::D* #t7 = #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*} in let final void #t8 = #t5.{self::Test::[]=}(#t6, #t7){(self::Index*, self::A*) →* void} in #t7;
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in #t9.{self::Test::[]=}(#t10, #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*}){(self::Index*, self::A*) →* void};
- self::A* v1 = let final self::Test* #t11 = t in let final self::Index* #t12 = self::f<self::Index*>() in let final self::A* #t13 = self::f<self::A*>() in let final void #t14 = #t11.{self::Test::[]=}(#t12, #t13){(self::Index*, self::A*) →* void} in #t13;
- self::A* v2 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = #t15.{self::Test::[]}(#t16){(self::Index*) →* self::B*} in #t17 == null ?{self::A*} let final self::A* #t18 = self::f<self::A*>() in let final void #t19 = #t15.{self::Test::[]=}(#t16, #t18){(self::Index*, self::A*) →* void} in #t18 : #t17;
- self::D* v3 = let final self::Test* #t20 = t in let final self::Index* #t21 = self::f<self::Index*>() in let final self::D* #t22 = #t20.{self::Test::[]}(#t21){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::E*>()){(self::E*) →* self::D*} in let final void #t23 = #t20.{self::Test::[]=}(#t21, #t22){(self::Index*, self::A*) →* void} in #t22;
- self::D* v4 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::D* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::A*) →* void} in #t26;
- self::B* v5 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::B* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30.{self::B::-}(1){(core::int*) →* self::D*}){(self::Index*, self::A*) →* void} in #t30;
+ self::Test t = self::f<self::Test>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::A>()){(self::Index, self::A) → void};
+ let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D}){(self::Index, self::A) → void};
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in let final self::D #t5 = #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t6 = #t3.{self::Test::[]=}(#t4, #t5){(self::Index, self::A) → void} in #t5;
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void};
+ self::A v1 = let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::A #t11 = self::f<self::A>() in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::A) → void} in #t11;
+ self::D v3 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::D #t15 = #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D} in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::A) → void} in #t15;
+ self::D v4 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::D #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::A) → void} in #t19;
+ self::B v5 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void} in #t23;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::A? v) → void {}
+ method test() → void {
+ self::Test2 t = self::f<self::Test2>();
+ let final self::Test2 #t25 = t in let final self::Index #t26 = self::f<self::Index>() in #t25.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::A?} #t25.{self::Test2::[]=}(#t26, self::f<self::A?>()){(self::Index, self::A?) → void} : null;
+ self::A? v2 = let final self::Test2 #t27 = t in let final self::Index #t28 = self::f<self::Index>() in let final self::B? #t29 = #t27.{self::Test2::[]}(#t28){(self::Index) → self::B?} in #t29 == null ?{self::A?} let final self::A? #t30 = self::f<self::A?>() in let final void #t31 = #t27.{self::Test2::[]=}(#t28, #t30){(self::Index, self::A?) → void} in #t30 : #t29{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.outline.expect
index c03f865..d6a42af 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.outline.expect
@@ -1,84 +1,64 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- operator +(self::F* v) → self::C*
+ operator +(self::F v) → self::C
;
- operator -(core::int* i) → self::C*
+ operator -(core::int i) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(self::E* v) → self::D*
+ operator +(self::E v) → self::D
;
- operator -(core::int* i) → self::D*
+ operator -(core::int i) → self::D
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
}
class E extends self::D {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
;
- operator [](self::Index* i) → self::B*
+ operator [](self::Index i) → self::B
;
- operator []=(self::Index* i, self::A* v) → void
+ operator []=(self::Index i, self::A v) → void
;
method test() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::A? v) → void
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.transformed.expect
index 685af9c..3db584e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_set_vs_get.dart.weak.transformed.expect
@@ -1,101 +1,82 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Index extends core::Object {
- synthetic constructor •() → self::Index*
+ synthetic constructor •() → self::Index
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(self::F* v) → self::C*
- return null;
- operator -(core::int* i) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(self::F v) → self::C
+ return throw "";
+ operator -(core::int i) → self::C
+ return throw "";
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- operator +(self::E* v) → self::D*
- return null;
- operator -(core::int* i) → self::D*
- return null;
+ operator +(self::E v) → self::D
+ return throw "";
+ operator -(core::int i) → self::D
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
class E extends self::D {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super self::D::•()
;
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super self::E::•()
;
}
class Test extends core::Object {
- synthetic constructor •() → self::Test*
+ synthetic constructor •() → self::Test
: super core::Object::•()
;
- operator [](self::Index* i) → self::B*
- return null;
- operator []=(self::Index* i, self::A* v) → void {}
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::A v) → void {}
method test() → void {
- self::Test* t = self::f<self::Test*>();
- t.{self::Test::[]=}(self::f<self::Index*>(), self::f<self::A*>()){(self::Index*, self::A*) →* void};
- let final self::Test* #t1 = t in let final self::Index* #t2 = self::f<self::Index*>() in #t1.{self::Test::[]}(#t2){(self::Index*) →* self::B*} == null ?{self::A*} #t1.{self::Test::[]=}(#t2, self::f<self::A*>()){(self::Index*, self::A*) →* void} : null;
- let final self::Test* #t3 = t in let final self::Index* #t4 = self::f<self::Index*>() in #t3.{self::Test::[]=}(#t4, #t3.{self::Test::[]}(#t4){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::E*>()){(self::E*) →* self::D*}){(self::Index*, self::A*) →* void};
- let final self::Test* #t5 = t in let final self::Index* #t6 = self::f<self::Index*>() in let final self::D* #t7 = #t5.{self::Test::[]}(#t6){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*} in let final void #t8 = #t5.{self::Test::[]=}(#t6, #t7){(self::Index*, self::A*) →* void} in #t7;
- let final self::Test* #t9 = t in let final self::Index* #t10 = self::f<self::Index*>() in #t9.{self::Test::[]=}(#t10, #t9.{self::Test::[]}(#t10){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*}){(self::Index*, self::A*) →* void};
- self::A* v1 = let final self::Test* #t11 = t in let final self::Index* #t12 = self::f<self::Index*>() in let final self::A* #t13 = self::f<self::A*>() in let final void #t14 = #t11.{self::Test::[]=}(#t12, #t13){(self::Index*, self::A*) →* void} in #t13;
- self::A* v2 = let final self::Test* #t15 = t in let final self::Index* #t16 = self::f<self::Index*>() in let final self::B* #t17 = #t15.{self::Test::[]}(#t16){(self::Index*) →* self::B*} in #t17 == null ?{self::A*} let final self::A* #t18 = self::f<self::A*>() in let final void #t19 = #t15.{self::Test::[]=}(#t16, #t18){(self::Index*, self::A*) →* void} in #t18 : #t17;
- self::D* v3 = let final self::Test* #t20 = t in let final self::Index* #t21 = self::f<self::Index*>() in let final self::D* #t22 = #t20.{self::Test::[]}(#t21){(self::Index*) →* self::B*}.{self::B::+}(self::f<self::E*>()){(self::E*) →* self::D*} in let final void #t23 = #t20.{self::Test::[]=}(#t21, #t22){(self::Index*, self::A*) →* void} in #t22;
- self::D* v4 = let final self::Test* #t24 = t in let final self::Index* #t25 = self::f<self::Index*>() in let final self::D* #t26 = #t24.{self::Test::[]}(#t25){(self::Index*) →* self::B*}.{self::B::-}(1){(core::int*) →* self::D*} in let final void #t27 = #t24.{self::Test::[]=}(#t25, #t26){(self::Index*, self::A*) →* void} in #t26;
- self::B* v5 = let final self::Test* #t28 = t in let final self::Index* #t29 = self::f<self::Index*>() in let final self::B* #t30 = #t28.{self::Test::[]}(#t29){(self::Index*) →* self::B*} in let final void #t31 = #t28.{self::Test::[]=}(#t29, #t30.{self::B::-}(1){(core::int*) →* self::D*}){(self::Index*, self::A*) →* void} in #t30;
+ self::Test t = self::f<self::Test>();
+ t.{self::Test::[]=}(self::f<self::Index>(), self::f<self::A>()){(self::Index, self::A) → void};
+ let final self::Test #t1 = t in let final self::Index #t2 = self::f<self::Index>() in #t1.{self::Test::[]=}(#t2, #t1.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D}){(self::Index, self::A) → void};
+ let final self::Test #t3 = t in let final self::Index #t4 = self::f<self::Index>() in let final self::D #t5 = #t3.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t6 = #t3.{self::Test::[]=}(#t4, #t5){(self::Index, self::A) → void} in #t5;
+ let final self::Test #t7 = t in let final self::Index #t8 = self::f<self::Index>() in #t7.{self::Test::[]=}(#t8, #t7.{self::Test::[]}(#t8){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void};
+ self::A v1 = let final self::Test #t9 = t in let final self::Index #t10 = self::f<self::Index>() in let final self::A #t11 = self::f<self::A>() in let final void #t12 = #t9.{self::Test::[]=}(#t10, #t11){(self::Index, self::A) → void} in #t11;
+ self::D v3 = let final self::Test #t13 = t in let final self::Index #t14 = self::f<self::Index>() in let final self::D #t15 = #t13.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::+}(self::f<self::E>()){(self::E) → self::D} in let final void #t16 = #t13.{self::Test::[]=}(#t14, #t15){(self::Index, self::A) → void} in #t15;
+ self::D v4 = let final self::Test #t17 = t in let final self::Index #t18 = self::f<self::Index>() in let final self::D #t19 = #t17.{self::Test::[]}(#t18){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::D} in let final void #t20 = #t17.{self::Test::[]=}(#t18, #t19){(self::Index, self::A) → void} in #t19;
+ self::B v5 = let final self::Test #t21 = t in let final self::Index #t22 = self::f<self::Index>() in let final self::B #t23 = #t21.{self::Test::[]}(#t22){(self::Index) → self::B} in let final void #t24 = #t21.{self::Test::[]=}(#t22, #t23.{self::B::-}(1){(core::int) → self::D}){(self::Index, self::A) → void} in #t23;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::A? v) → void {}
+ method test() → void {
+ self::Test2 t = self::f<self::Test2>();
+ let final self::Test2 #t25 = t in let final self::Index #t26 = self::f<self::Index>() in #t25.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::A?} #t25.{self::Test2::[]=}(#t26, self::f<self::A?>()){(self::Index, self::A?) → void} : null;
+ self::A? v2 = let final self::Test2 #t27 = t in let final self::Index #t28 = self::f<self::Index>() in let final self::B? #t29 = #t27.{self::Test2::[]}(#t28){(self::Index) → self::B?} in #t29 == null ?{self::A?} let final self::A? #t30 = self::f<self::A?>() in let final void #t31 = #t27.{self::Test2::[]=}(#t28, #t30){(self::Index, self::A?) → void} in #t30 : #t29{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super.dart
index 89b4f0a..091014b 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -28,54 +30,54 @@
class Test extends Base {
void test() {
super /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index**/ f()] = /*@typeArgs=B**/ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index**/ f()]
+ ??= /*@typeArgs=B**/ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
/*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/
- [/*@ typeArgs=Index* */ f()];
+ [/*@typeArgs=Index**/ f()];
super /*@target=Base.[]*/ /*@target=Base.[]=*/
- [/*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ [/*@typeArgs=Index**/ f()] /*@target=B.-*/ --;
- var /*@ type=B* */ v1 = super /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v1 = super /*@target=Base.[]=*/ [
+ /*@typeArgs=Index**/ f()] = /*@typeArgs=B**/ f();
- var /*@ type=B* */ v2 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v2 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ ??= /*@typeArgs=B**/ f();
- var /*@ type=A* */ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@type=A**/ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
- var /*@ type=B* */ v4 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v4 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
- var /*@ type=C* */ v5 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@type=C**/ v5 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ --super
- /*@target=Base.[]*/ /*@target=Base.[]=*/ [/*@ typeArgs=Index* */ f()];
+ var /*@type=B**/ v6 = /*@target=B.-*/ --super
+ /*@target=Base.[]*/ /*@target=Base.[]=*/ [/*@typeArgs=Index**/ f()];
- var /*@ type=B* */ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
- [/*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ var /*@type=B**/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ [/*@typeArgs=Index**/ f()] /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart
new file mode 100644
index 0000000..0333a40
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart
@@ -0,0 +1,82 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+}
+
+class Test extends Base {
+ void test() {
+ super /*@target=Base.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ [/*@typeArgs=Index*/ f()];
+
+ super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ [/*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = super /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ var /*@type=B*/ v3 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ /*@typeArgs=Index*/ f()];
+
+ var /*@type=B*/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ [/*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+ }
+}
+
+class Base2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
+class Test2 extends Base2 {
+ void test() {
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B?*/ v2 = super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.textual_outline.expect
new file mode 100644
index 0000000..5b1cc8c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.textual_outline.expect
@@ -0,0 +1,36 @@
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+}
+
+class Test extends Base {
+ void test() {}
+}
+
+class Base2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
+class Test2 extends Base2 {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..1a3ca27
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.textual_outline_modelled.expect
@@ -0,0 +1,36 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class Base {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+}
+
+class Base2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+}
+
+class C extends B {}
+
+class Index {}
+
+class Test extends Base {
+ void test() {}
+}
+
+class Test2 extends Base2 {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.expect
new file mode 100644
index 0000000..fb9581e
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.expect
@@ -0,0 +1,79 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::[]=}(self::f<self::Index>(), self::f<self::B>());
+ let final self::Index #t1 = self::f<self::Index>() in super.{self::Base::[]=}(#t1, super.{self::Base::[]}(#t1).{self::B::+}(self::f<self::C>()){(self::C) → self::B});
+ let final self::Index #t2 = self::f<self::Index>() in super.{self::Base::[]=}(#t2, super.{self::Base::[]}(#t2).{self::B::*}(self::f<self::B>()){(self::B) → self::B});
+ let final self::Index #t3 = self::f<self::Index>() in super.{self::Base::[]=}(#t3, super.{self::Base::[]}(#t3).{self::B::&}(self::f<self::A>()){(self::A) → self::C});
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = super.{self::Base::[]}(#t4).{self::B::-}(1){(core::int) → self::B} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in super.{self::Base::[]=}(#t7, super.{self::Base::[]}(#t7).{self::B::-}(1){(core::int) → self::B});
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = super.{self::Base::[]=}(#t8, #t9) in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = super.{self::Base::[]}(#t11).{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = super.{self::Base::[]=}(#t11, #t12) in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = super.{self::Base::[]}(#t14).{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = super.{self::Base::[]=}(#t14, #t15) in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = super.{self::Base::[]}(#t17).{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = super.{self::Base::[]}(#t20).{self::B::-}(1){(core::int) → self::B} in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = super.{self::Base::[]}(#t23) in let final void #t25 = super.{self::Base::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}) in #t24;
+ }
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in super.{self::Base2::[]}(#t26) == null ?{self::B?} super.{self::Base2::[]=}(#t26, self::f<self::B?>()) : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = super.{self::Base2::[]}(#t27) in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = super.{self::Base2::[]=}(#t27, #t29) in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.modular.expect
new file mode 100644
index 0000000..fb9581e
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.modular.expect
@@ -0,0 +1,79 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::[]=}(self::f<self::Index>(), self::f<self::B>());
+ let final self::Index #t1 = self::f<self::Index>() in super.{self::Base::[]=}(#t1, super.{self::Base::[]}(#t1).{self::B::+}(self::f<self::C>()){(self::C) → self::B});
+ let final self::Index #t2 = self::f<self::Index>() in super.{self::Base::[]=}(#t2, super.{self::Base::[]}(#t2).{self::B::*}(self::f<self::B>()){(self::B) → self::B});
+ let final self::Index #t3 = self::f<self::Index>() in super.{self::Base::[]=}(#t3, super.{self::Base::[]}(#t3).{self::B::&}(self::f<self::A>()){(self::A) → self::C});
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = super.{self::Base::[]}(#t4).{self::B::-}(1){(core::int) → self::B} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in super.{self::Base::[]=}(#t7, super.{self::Base::[]}(#t7).{self::B::-}(1){(core::int) → self::B});
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = super.{self::Base::[]=}(#t8, #t9) in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = super.{self::Base::[]}(#t11).{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = super.{self::Base::[]=}(#t11, #t12) in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = super.{self::Base::[]}(#t14).{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = super.{self::Base::[]=}(#t14, #t15) in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = super.{self::Base::[]}(#t17).{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = super.{self::Base::[]}(#t20).{self::B::-}(1){(core::int) → self::B} in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = super.{self::Base::[]}(#t23) in let final void #t25 = super.{self::Base::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}) in #t24;
+ }
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in super.{self::Base2::[]}(#t26) == null ?{self::B?} super.{self::Base2::[]=}(#t26, self::f<self::B?>()) : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = super.{self::Base2::[]}(#t27) in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = super.{self::Base2::[]=}(#t27, #t29) in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.outline.expect
new file mode 100644
index 0000000..090bb5b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.outline.expect
@@ -0,0 +1,60 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ ;
+ operator [](self::Index i) → self::B
+ ;
+ operator []=(self::Index i, self::B v) → void
+ ;
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ ;
+ method test() → void
+ ;
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::B? v) → void
+ ;
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.transformed.expect
new file mode 100644
index 0000000..fb9581e
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super2.dart.weak.transformed.expect
@@ -0,0 +1,79 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::[]=}(self::f<self::Index>(), self::f<self::B>());
+ let final self::Index #t1 = self::f<self::Index>() in super.{self::Base::[]=}(#t1, super.{self::Base::[]}(#t1).{self::B::+}(self::f<self::C>()){(self::C) → self::B});
+ let final self::Index #t2 = self::f<self::Index>() in super.{self::Base::[]=}(#t2, super.{self::Base::[]}(#t2).{self::B::*}(self::f<self::B>()){(self::B) → self::B});
+ let final self::Index #t3 = self::f<self::Index>() in super.{self::Base::[]=}(#t3, super.{self::Base::[]}(#t3).{self::B::&}(self::f<self::A>()){(self::A) → self::C});
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = super.{self::Base::[]}(#t4).{self::B::-}(1){(core::int) → self::B} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in super.{self::Base::[]=}(#t7, super.{self::Base::[]}(#t7).{self::B::-}(1){(core::int) → self::B});
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = super.{self::Base::[]=}(#t8, #t9) in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = super.{self::Base::[]}(#t11).{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = super.{self::Base::[]=}(#t11, #t12) in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = super.{self::Base::[]}(#t14).{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = super.{self::Base::[]=}(#t14, #t15) in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = super.{self::Base::[]}(#t17).{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = super.{self::Base::[]}(#t20).{self::B::-}(1){(core::int) → self::B} in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = super.{self::Base::[]}(#t23) in let final void #t25 = super.{self::Base::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}) in #t24;
+ }
+}
+class Base2 extends core::Object {
+ synthetic constructor •() → self::Base2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+}
+class Test2 extends self::Base2 {
+ synthetic constructor •() → self::Test2
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in super.{self::Base2::[]}(#t26) == null ?{self::B?} super.{self::Base2::[]=}(#t26, self::f<self::B?>()) : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = super.{self::Base2::[]}(#t27) in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = super.{self::Base2::[]=}(#t27, #t29) in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart
index afa9f53..c842e0a 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -19,312 +21,312 @@
abstract class Test1 extends Base<int, int> {
void test() {
- var /*@ type=int* */ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=int* */ v4 =
+ var /*@type=int**/ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=int* */ v7 =
+ var /*@type=int**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=int* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=int**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=num.+*/ ++;
}
}
abstract class Test2 extends Base<int, num> {
void test() {
- var /*@ type=int* */ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
- var /*@ type=int* */ v4 =
+ var /*@type=int**/ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 =
+ var /*@type=num**/ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getDouble();
- var /*@ type=int* */ v7 =
+ var /*@type=int**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=int* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=int**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=num.+*/ ++;
}
}
abstract class Test3 extends Base<int, double> {
void test() {
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 =
+ var /*@type=num**/ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getDouble();
- var /*@ type=int* */ v7 =
+ var /*@type=int**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=int* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=int**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=num.+*/ ++;
}
}
abstract class Test4 extends Base<num, int> {
void test() {
- var /*@ type=int* */ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=num* */ v4 =
+ var /*@type=num**/ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v7 =
+ var /*@type=num**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=num* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=num**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=num.+*/ ++;
}
}
abstract class Test5 extends Base<num, num> {
void test() {
- var /*@ type=int* */ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v4 =
+ var /*@type=num**/ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 =
+ var /*@type=num**/ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getDouble();
- var /*@ type=num* */ v7 =
+ var /*@type=num**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 =
+ var /*@type=num**/ v9 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=num* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=num**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=num.+*/ ++;
}
}
abstract class Test6 extends Base<num, double> {
void test() {
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 =
+ var /*@type=num**/ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getDouble();
- var /*@ type=num* */ v7 =
+ var /*@type=num**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 =
+ var /*@type=num**/ v9 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=num* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=num**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=num.+*/ ++;
}
}
abstract class Test7 extends Base<double, int> {
void test() {
- var /*@ type=int* */ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=num* */ v4 =
+ var /*@type=num**/ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v7 =
+ var /*@type=double**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=double* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=double**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=double.+*/ ++;
}
}
abstract class Test8 extends Base<double, num> {
void test() {
- var /*@ type=int* */ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v4 =
+ var /*@type=num**/ v4 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v6 =
+ var /*@type=double**/ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getDouble();
- var /*@ type=double* */ v7 =
+ var /*@type=double**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=double* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=double**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=double.+*/ ++;
}
}
abstract class Test9 extends Base<double, double> {
void test() {
- var /*@ type=num* */ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 =
+ var /*@type=num**/ v5 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v6 =
+ var /*@type=double**/ v6 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
??= getDouble();
- var /*@ type=double* */ v7 =
+ var /*@type=double**/ v7 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double**/ v8 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
super /*@target=Base.[]*/ /*@target=Base.[]=*/ ['x']
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++super
/*@target=Base.[]*/ /*@target=Base.[]=*/ ['x'];
- var /*@ type=double* */ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ var /*@type=double**/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
['x'] /*@target=double.+*/ ++;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.expect
index 92e9469..d972f1a 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.expect
@@ -2,31 +2,31 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:106:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:108:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:116:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
-// var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:118:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// var /*@type=int**/ v10 = /*@target=num.+*/ ++super
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:120:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:122:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// ['x'] /*@target=num.+*/ ++;
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:244:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:246:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:248:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getNum();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:252:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// var /*@type=double**/ v10 = /*@target=double.+*/ ++super
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:254:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:256:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// ['x'] /*@target=double.+*/ ++;
// ^
//
@@ -96,15 +96,15 @@
core::double* v3 = let final core::String* #t66 = "x" in let final core::double* #t67 = self::getDouble() in let final void #t68 = super.{self::Base::[]=}(#t66, #t67) in #t67;
core::num* v5 = let final core::String* #t69 = "x" in let final core::int* #t70 = super.{self::Base::[]}(#t69) in #t70 == null ?{core::num*} let final core::num* #t71 = self::getNum() as{TypeError} core::double* in let final void #t72 = super.{self::Base::[]=}(#t69, #t71) in #t71 : #t70;
core::num* v6 = let final core::String* #t73 = "x" in let final core::int* #t74 = super.{self::Base::[]}(#t73) in #t74 == null ?{core::num*} let final core::double* #t75 = self::getDouble() in let final void #t76 = super.{self::Base::[]=}(#t73, #t75) in #t75 : #t74;
- core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:106:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:108:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ += getInt();
^" in super.{self::Base::[]}(#t77).{core::num::+}(self::getInt()){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t79 = super.{self::Base::[]=}(#t77, #t78) in #t78;
core::num* v8 = let final core::String* #t80 = "x" in let final core::num* #t81 = super.{self::Base::[]}(#t80).{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::double* in let final void #t82 = super.{self::Base::[]=}(#t80, #t81) in #t81;
core::double* v9 = let final core::String* #t83 = "x" in let final core::double* #t84 = super.{self::Base::[]}(#t83).{core::num::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t85 = super.{self::Base::[]=}(#t83, #t84) in #t84;
- core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:116:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
- ^" in super.{self::Base::[]}(#t86).{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = super.{self::Base::[]=}(#t86, #t87) in #t87;
- core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = super.{self::Base::[]}(#t89) in let final void #t91 = super.{self::Base::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:120:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:118:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++super
+ ^" in super.{self::Base::[]}(#t86).{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = super.{self::Base::[]=}(#t86, #t87) in #t87;
+ core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = super.{self::Base::[]}(#t89) in let final void #t91 = super.{self::Base::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:122:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
['x'] /*@target=num.+*/ ++;
^" in #t90.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double*) in #t90;
}
@@ -167,16 +167,16 @@
core::num* v2 = let final core::String* #t186 = "x" in let final core::num* #t187 = self::getNum() as{TypeError} core::int* in let final void #t188 = super.{self::Base::[]=}(#t186, #t187) in #t187;
core::num* v4 = let final core::String* #t189 = "x" in let final core::double* #t190 = super.{self::Base::[]}(#t189) in #t190 == null ?{core::num*} let final core::int* #t191 = self::getInt() in let final void #t192 = super.{self::Base::[]=}(#t189, #t191) in #t191 : #t190;
core::num* v5 = let final core::String* #t193 = "x" in let final core::double* #t194 = super.{self::Base::[]}(#t193) in #t194 == null ?{core::num*} let final core::num* #t195 = self::getNum() as{TypeError} core::int* in let final void #t196 = super.{self::Base::[]=}(#t193, #t195) in #t195 : #t194;
- core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:244:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:246:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getInt();
^" in super.{self::Base::[]}(#t197).{core::double::+}(self::getInt()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t199 = super.{self::Base::[]=}(#t197, #t198) in #t198;
- core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:248:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getNum();
^" in super.{self::Base::[]}(#t200).{core::double::+}(self::getNum()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t202 = super.{self::Base::[]=}(#t200, #t201) in #t201;
- core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
- ^" in super.{self::Base::[]}(#t203).{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = super.{self::Base::[]=}(#t203, #t204) in #t204;
- core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = super.{self::Base::[]}(#t206) in let final void #t208 = super.{self::Base::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:254:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:252:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++super
+ ^" in super.{self::Base::[]}(#t203).{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = super.{self::Base::[]=}(#t203, #t204) in #t204;
+ core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = super.{self::Base::[]}(#t206) in let final void #t208 = super.{self::Base::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:256:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
['x'] /*@target=double.+*/ ++;
^" in #t207.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int*) in #t207;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.modular.expect
index 92e9469..d972f1a 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart.weak.modular.expect
@@ -2,31 +2,31 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:106:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:108:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:116:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
-// var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:118:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// var /*@type=int**/ v10 = /*@target=num.+*/ ++super
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:120:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:122:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// ['x'] /*@target=num.+*/ ++;
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:244:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:246:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:248:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getNum();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:252:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// var /*@type=double**/ v10 = /*@target=double.+*/ ++super
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:254:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:256:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// ['x'] /*@target=double.+*/ ++;
// ^
//
@@ -96,15 +96,15 @@
core::double* v3 = let final core::String* #t66 = "x" in let final core::double* #t67 = self::getDouble() in let final void #t68 = super.{self::Base::[]=}(#t66, #t67) in #t67;
core::num* v5 = let final core::String* #t69 = "x" in let final core::int* #t70 = super.{self::Base::[]}(#t69) in #t70 == null ?{core::num*} let final core::num* #t71 = self::getNum() as{TypeError} core::double* in let final void #t72 = super.{self::Base::[]=}(#t69, #t71) in #t71 : #t70;
core::num* v6 = let final core::String* #t73 = "x" in let final core::int* #t74 = super.{self::Base::[]}(#t73) in #t74 == null ?{core::num*} let final core::double* #t75 = self::getDouble() in let final void #t76 = super.{self::Base::[]=}(#t73, #t75) in #t75 : #t74;
- core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:106:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:108:31: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ += getInt();
^" in super.{self::Base::[]}(#t77).{core::num::+}(self::getInt()){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t79 = super.{self::Base::[]=}(#t77, #t78) in #t78;
core::num* v8 = let final core::String* #t80 = "x" in let final core::num* #t81 = super.{self::Base::[]}(#t80).{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::double* in let final void #t82 = super.{self::Base::[]=}(#t80, #t81) in #t81;
core::double* v9 = let final core::String* #t83 = "x" in let final core::double* #t84 = super.{self::Base::[]}(#t83).{core::num::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t85 = super.{self::Base::[]=}(#t83, #t84) in #t84;
- core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:116:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
- ^" in super.{self::Base::[]}(#t86).{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = super.{self::Base::[]=}(#t86, #t87) in #t87;
- core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = super.{self::Base::[]}(#t89) in let final void #t91 = super.{self::Base::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:120:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:118:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++super
+ ^" in super.{self::Base::[]}(#t86).{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = super.{self::Base::[]=}(#t86, #t87) in #t87;
+ core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = super.{self::Base::[]}(#t89) in let final void #t91 = super.{self::Base::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:122:33: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
['x'] /*@target=num.+*/ ++;
^" in #t90.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double*) in #t90;
}
@@ -167,16 +167,16 @@
core::num* v2 = let final core::String* #t186 = "x" in let final core::num* #t187 = self::getNum() as{TypeError} core::int* in let final void #t188 = super.{self::Base::[]=}(#t186, #t187) in #t187;
core::num* v4 = let final core::String* #t189 = "x" in let final core::double* #t190 = super.{self::Base::[]}(#t189) in #t190 == null ?{core::num*} let final core::int* #t191 = self::getInt() in let final void #t192 = super.{self::Base::[]=}(#t189, #t191) in #t191 : #t190;
core::num* v5 = let final core::String* #t193 = "x" in let final core::double* #t194 = super.{self::Base::[]}(#t193) in #t194 == null ?{core::num*} let final core::num* #t195 = self::getNum() as{TypeError} core::int* in let final void #t196 = super.{self::Base::[]=}(#t193, #t195) in #t195 : #t194;
- core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:244:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:246:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getInt();
^" in super.{self::Base::[]}(#t197).{core::double::+}(self::getInt()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t199 = super.{self::Base::[]=}(#t197, #t198) in #t198;
- core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:248:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:34: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getNum();
^" in super.{self::Base::[]}(#t200).{core::double::+}(self::getNum()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t202 = super.{self::Base::[]=}(#t200, #t201) in #t201;
- core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:250:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++super
- ^" in super.{self::Base::[]}(#t203).{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = super.{self::Base::[]=}(#t203, #t204) in #t204;
- core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = super.{self::Base::[]}(#t206) in let final void #t208 = super.{self::Base::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:254:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:252:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++super
+ ^" in super.{self::Base::[]}(#t203).{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = super.{self::Base::[]=}(#t203, #t204) in #t204;
+ core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = super.{self::Base::[]}(#t206) in let final void #t208 = super.{self::Base::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards.dart:256:36: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
['x'] /*@target=double.+*/ ++;
^" in #t207.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int*) in #t207;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart
new file mode 100644
index 0000000..418e77a
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart
@@ -0,0 +1,260 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+abstract class Base<T, U> {
+ T operator [](String s) => /*@target=Base.getValue*/ getValue(s);
+ void operator []=(String s, U v) => /*@target=Base.setValue*/ setValue(s, v);
+
+ T getValue(String s);
+ void setValue(String s, U v);
+}
+
+abstract class Base2<T, U> {
+ T? operator [](String s) => /*@target=Base2.getValue*/ getValue(s);
+ void operator []=(
+ String s, U? v) => /*@target=Base2.setValue*/ setValue(s, v);
+
+ T? getValue(String s);
+ void setValue(String s, U? v);
+}
+
+abstract class Test1a extends Base<int, int> {
+ void test() {
+ var /*@type=int*/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+
+ var /*@type=int*/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=int*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test1b extends Base2<int, int> {
+ void test() {
+ var /*@type=int*/ v4 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getInt();
+ }
+}
+
+abstract class Test2a extends Base<int, num> {
+ void test() {
+ var /*@type=int*/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+
+ var /*@type=int*/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=int*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test2b extends Base2<int, num> {
+ void test() {
+ var /*@type=int*/ v4 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=num*/ v6 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test3a extends Base<int, double> {
+ void test() {
+ var /*@type=double*/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v9 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=num.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=int*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test3b extends Base2<int, double> {
+ void test() {
+ var /*@type=num*/ v6 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test4a extends Base<num, int> {
+ void test() {
+ var /*@type=int*/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ }
+}
+
+abstract class Test4b extends Base2<num, int> {
+ void test() {
+ var /*@type=num*/ v4 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getInt();
+ }
+}
+
+abstract class Test5a extends Base<num, num> {
+ void test() {
+ var /*@type=int*/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+
+ var /*@type=num*/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=num*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test5b extends Base2<num, num> {
+ void test() {
+ var /*@type=num*/ v4 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=num*/ v6 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test6a extends Base<num, double> {
+ void test() {
+ var /*@type=double*/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v9 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=num.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=num*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test6b extends Base2<num, double> {
+ void test() {
+ var /*@type=num*/ v6 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test7a extends Base<double, int> {
+ void test() {
+ var /*@type=int*/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+ }
+}
+
+abstract class Test7b extends Base2<double, int> {
+ void test() {
+ var /*@type=num*/ v4 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getInt();
+ }
+}
+
+abstract class Test8a extends Base<double, num> {
+ void test() {
+ var /*@type=int*/ v1 = super /*@target=Base.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = super /*@target=Base.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v7 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=double.+*/ += getInt();
+
+ var /*@type=double*/ v8 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=double*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=double.+*/ ++;
+ }
+}
+
+abstract class Test8b extends Base2<double, num> {
+ void test() {
+ var /*@type=num*/ v4 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=double*/ v6 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test9a extends Base<double, double> {
+ void test() {
+ var /*@type=double*/ v3 = super /*@target=Base.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v8 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 = super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'] /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++super /*@target=Base.[]*/ /*@target=Base.[]=*/ [
+ 'x'];
+
+ var /*@type=double*/ v11 = super /*@target=Base.[]*/ /*@target=Base.[]=*/
+ ['x'] /*@target=double.+*/ ++;
+ }
+}
+
+abstract class Test9b extends Base2<double, double> {
+ void test() {
+ var /*@type=double*/ v6 =
+ super /*@target=Base2.[]*/ /*@target=Base2.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..5799605
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.textual_outline.expect
@@ -0,0 +1,93 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+abstract class Base<T, U> {
+ T operator [](String s) => getValue(s);
+ void operator []=(String s, U v) => setValue(s, v);
+ T getValue(String s);
+ void setValue(String s, U v);
+}
+
+abstract class Base2<T, U> {
+ T? operator [](String s) => getValue(s);
+ void operator []=(String s, U? v) => setValue(s, v);
+ T? getValue(String s);
+ void setValue(String s, U? v);
+}
+
+abstract class Test1a extends Base<int, int> {
+ void test() {}
+}
+
+abstract class Test1b extends Base2<int, int> {
+ void test() {}
+}
+
+abstract class Test2a extends Base<int, num> {
+ void test() {}
+}
+
+abstract class Test2b extends Base2<int, num> {
+ void test() {}
+}
+
+abstract class Test3a extends Base<int, double> {
+ void test() {}
+}
+
+abstract class Test3b extends Base2<int, double> {
+ void test() {}
+}
+
+abstract class Test4a extends Base<num, int> {
+ void test() {}
+}
+
+abstract class Test4b extends Base2<num, int> {
+ void test() {}
+}
+
+abstract class Test5a extends Base<num, num> {
+ void test() {}
+}
+
+abstract class Test5b extends Base2<num, num> {
+ void test() {}
+}
+
+abstract class Test6a extends Base<num, double> {
+ void test() {}
+}
+
+abstract class Test6b extends Base2<num, double> {
+ void test() {}
+}
+
+abstract class Test7a extends Base<double, int> {
+ void test() {}
+}
+
+abstract class Test7b extends Base2<double, int> {
+ void test() {}
+}
+
+abstract class Test8a extends Base<double, num> {
+ void test() {}
+}
+
+abstract class Test8b extends Base2<double, num> {
+ void test() {}
+}
+
+abstract class Test9a extends Base<double, double> {
+ void test() {}
+}
+
+abstract class Test9b extends Base2<double, double> {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..a310fca
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,92 @@
+library test;
+
+abstract class Base<T, U> {
+ T getValue(String s);
+ T operator [](String s) => getValue(s);
+ void operator []=(String s, U v) => setValue(s, v);
+ void setValue(String s, U v);
+}
+
+abstract class Base2<T, U> {
+ T? getValue(String s);
+ T? operator [](String s) => getValue(s);
+ void operator []=(String s, U? v) => setValue(s, v);
+ void setValue(String s, U? v);
+}
+
+abstract class Test1a extends Base<int, int> {
+ void test() {}
+}
+
+abstract class Test1b extends Base2<int, int> {
+ void test() {}
+}
+
+abstract class Test2a extends Base<int, num> {
+ void test() {}
+}
+
+abstract class Test2b extends Base2<int, num> {
+ void test() {}
+}
+
+abstract class Test3a extends Base<int, double> {
+ void test() {}
+}
+
+abstract class Test3b extends Base2<int, double> {
+ void test() {}
+}
+
+abstract class Test4a extends Base<num, int> {
+ void test() {}
+}
+
+abstract class Test4b extends Base2<num, int> {
+ void test() {}
+}
+
+abstract class Test5a extends Base<num, num> {
+ void test() {}
+}
+
+abstract class Test5b extends Base2<num, num> {
+ void test() {}
+}
+
+abstract class Test6a extends Base<num, double> {
+ void test() {}
+}
+
+abstract class Test6b extends Base2<num, double> {
+ void test() {}
+}
+
+abstract class Test7a extends Base<double, int> {
+ void test() {}
+}
+
+abstract class Test7b extends Base2<double, int> {
+ void test() {}
+}
+
+abstract class Test8a extends Base<double, num> {
+ void test() {}
+}
+
+abstract class Test8b extends Base2<double, num> {
+ void test() {}
+}
+
+abstract class Test9a extends Base<double, double> {
+ void test() {}
+}
+
+abstract class Test9b extends Base2<double, double> {
+ void test() {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.expect
new file mode 100644
index 0000000..3dbc4a9
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.expect
@@ -0,0 +1,217 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Base<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base<self::Base::T%, self::Base::U%>
+ : super core::Object::•()
+ ;
+ operator [](core::String s) → self::Base::T%
+ return this.{self::Base::getValue}(s){(core::String) → self::Base::T%};
+ operator []=(core::String s, covariant-by-class self::Base::U% v) → void
+ return this.{self::Base::setValue}(s, v){(core::String, self::Base::U%) → void};
+ abstract method getValue(core::String s) → self::Base::T%;
+ abstract method setValue(core::String s, covariant-by-class self::Base::U% v) → void;
+}
+abstract class Base2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base2<self::Base2::T%, self::Base2::U%>
+ : super core::Object::•()
+ ;
+ operator [](core::String s) → self::Base2::T?
+ return this.{self::Base2::getValue}(s){(core::String) → self::Base2::T?};
+ operator []=(core::String s, covariant-by-class self::Base2::U? v) → void
+ return this.{self::Base2::setValue}(s, v){(core::String, self::Base2::U?) → void};
+ abstract method getValue(core::String s) → self::Base2::T?;
+ abstract method setValue(core::String s, covariant-by-class self::Base2::U? v) → void;
+}
+abstract class Test1a extends self::Base<core::int, core::int> {
+ synthetic constructor •() → self::Test1a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = super.{self::Base::[]=}(#t1, #t2) in #t2;
+ core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = super.{self::Base::[]}(#t4).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = super.{self::Base::[]}(#t7).{core::num::+}(1){(core::num) → core::int} in let final void #t9 = super.{self::Base::[]=}(#t7, #t8) in #t8;
+ core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = super.{self::Base::[]}(#t10) in let final void #t12 = super.{self::Base::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}) in #t11;
+ }
+}
+abstract class Test1b extends self::Base2<core::int, core::int> {
+ synthetic constructor •() → self::Test1b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = super.{self::Base2::[]}(#t13) in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = super.{self::Base2::[]=}(#t13, #t15) in #t15 : #t14{core::int};
+ }
+}
+abstract class Test2a extends self::Base<core::int, core::num> {
+ synthetic constructor •() → self::Test2a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = super.{self::Base::[]=}(#t23, #t24) in #t24;
+ core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = super.{self::Base::[]}(#t26).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = super.{self::Base::[]=}(#t26, #t27) in #t27;
+ core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = super.{self::Base::[]}(#t29).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = super.{self::Base::[]=}(#t29, #t30) in #t30;
+ core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = super.{self::Base::[]}(#t32).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = super.{self::Base::[]=}(#t32, #t33) in #t33;
+ core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = super.{self::Base::[]}(#t35).{core::num::+}(1){(core::num) → core::int} in let final void #t37 = super.{self::Base::[]=}(#t35, #t36) in #t36;
+ core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = super.{self::Base::[]}(#t38) in let final void #t40 = super.{self::Base::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}) in #t39;
+ }
+}
+abstract class Test2b extends self::Base2<core::int, core::num> {
+ synthetic constructor •() → self::Test2b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = super.{self::Base2::[]}(#t41) in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = super.{self::Base2::[]=}(#t41, #t43) in #t43 : #t42{core::int};
+ core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = super.{self::Base2::[]}(#t45) in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = super.{self::Base2::[]=}(#t45, #t47) in #t47 : #t46{core::int};
+ core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = super.{self::Base2::[]}(#t49) in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = super.{self::Base2::[]=}(#t49, #t51) in #t51 : #t50{core::int};
+ }
+}
+abstract class Test3a extends self::Base<core::int, core::double> {
+ synthetic constructor •() → self::Test3a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = super.{self::Base::[]=}(#t53, #t54) in #t54;
+ core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = super.{self::Base::[]}(#t56).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = super.{self::Base::[]=}(#t56, #t57) in #t57;
+ core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = super.{self::Base::[]}(#t59).{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = super.{self::Base::[]=}(#t59, #t60) in #t60;
+ core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = super.{self::Base::[]}(#t62) in let final void #t64 = super.{self::Base::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}) in #t63;
+ }
+}
+abstract class Test3b extends self::Base2<core::int, core::double> {
+ synthetic constructor •() → self::Test3b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = super.{self::Base2::[]}(#t65) in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = super.{self::Base2::[]=}(#t65, #t67) in #t67 : #t66{core::int};
+ }
+}
+abstract class Test4a extends self::Base<core::num, core::int> {
+ synthetic constructor •() → self::Test4a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = super.{self::Base::[]=}(#t69, #t70) in #t70;
+ }
+}
+abstract class Test4b extends self::Base2<core::num, core::int> {
+ synthetic constructor •() → self::Test4b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = super.{self::Base2::[]}(#t72) in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = super.{self::Base2::[]=}(#t72, #t74) in #t74 : #t73{core::num};
+ }
+}
+abstract class Test5a extends self::Base<core::num, core::num> {
+ synthetic constructor •() → self::Test5a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = super.{self::Base::[]=}(#t76, #t77) in #t77;
+ core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = super.{self::Base::[]=}(#t79, #t80) in #t80;
+ core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = super.{self::Base::[]=}(#t82, #t83) in #t83;
+ core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = super.{self::Base::[]}(#t85).{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = super.{self::Base::[]=}(#t85, #t86) in #t86;
+ core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = super.{self::Base::[]}(#t88).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = super.{self::Base::[]=}(#t88, #t89) in #t89;
+ core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = super.{self::Base::[]}(#t91).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = super.{self::Base::[]=}(#t91, #t92) in #t92;
+ core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = super.{self::Base::[]}(#t94).{core::num::+}(1){(core::num) → core::num} in let final void #t96 = super.{self::Base::[]=}(#t94, #t95) in #t95;
+ core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = super.{self::Base::[]}(#t97) in let final void #t99 = super.{self::Base::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}) in #t98;
+ }
+}
+abstract class Test5b extends self::Base2<core::num, core::num> {
+ synthetic constructor •() → self::Test5b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = super.{self::Base2::[]}(#t100) in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = super.{self::Base2::[]=}(#t100, #t102) in #t102 : #t101{core::num};
+ core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = super.{self::Base2::[]}(#t104) in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = super.{self::Base2::[]=}(#t104, #t106) in #t106 : #t105{core::num};
+ core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = super.{self::Base2::[]}(#t108) in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = super.{self::Base2::[]=}(#t108, #t110) in #t110 : #t109{core::num};
+ }
+}
+abstract class Test6a extends self::Base<core::num, core::double> {
+ synthetic constructor •() → self::Test6a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = super.{self::Base::[]=}(#t112, #t113) in #t113;
+ core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = super.{self::Base::[]}(#t115).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = super.{self::Base::[]=}(#t115, #t116) in #t116;
+ core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = super.{self::Base::[]}(#t118).{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = super.{self::Base::[]=}(#t118, #t119) in #t119;
+ core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = super.{self::Base::[]}(#t121) in let final void #t123 = super.{self::Base::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}) in #t122;
+ }
+}
+abstract class Test6b extends self::Base2<core::num, core::double> {
+ synthetic constructor •() → self::Test6b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = super.{self::Base2::[]}(#t124) in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = super.{self::Base2::[]=}(#t124, #t126) in #t126 : #t125{core::num};
+ }
+}
+abstract class Test7a extends self::Base<core::double, core::int> {
+ synthetic constructor •() → self::Test7a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = super.{self::Base::[]=}(#t128, #t129) in #t129;
+ }
+}
+abstract class Test7b extends self::Base2<core::double, core::int> {
+ synthetic constructor •() → self::Test7b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = super.{self::Base2::[]}(#t131) in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = super.{self::Base2::[]=}(#t131, #t133) in #t133 : #t132{core::double};
+ }
+}
+abstract class Test8a extends self::Base<core::double, core::num> {
+ synthetic constructor •() → self::Test8a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = super.{self::Base::[]=}(#t135, #t136) in #t136;
+ core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = super.{self::Base::[]=}(#t138, #t139) in #t139;
+ core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = super.{self::Base::[]=}(#t141, #t142) in #t142;
+ core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = super.{self::Base::[]}(#t144).{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = super.{self::Base::[]=}(#t144, #t145) in #t145;
+ core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = super.{self::Base::[]}(#t147).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = super.{self::Base::[]=}(#t147, #t148) in #t148;
+ core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = super.{self::Base::[]}(#t150).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = super.{self::Base::[]=}(#t150, #t151) in #t151;
+ core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = super.{self::Base::[]}(#t153).{core::double::+}(1){(core::num) → core::double} in let final void #t155 = super.{self::Base::[]=}(#t153, #t154) in #t154;
+ core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = super.{self::Base::[]}(#t156) in let final void #t158 = super.{self::Base::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}) in #t157;
+ }
+}
+abstract class Test8b extends self::Base2<core::double, core::num> {
+ synthetic constructor •() → self::Test8b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = super.{self::Base2::[]}(#t159) in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = super.{self::Base2::[]=}(#t159, #t161) in #t161 : #t160{core::double};
+ core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = super.{self::Base2::[]}(#t163) in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = super.{self::Base2::[]=}(#t163, #t165) in #t165 : #t164{core::double};
+ core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = super.{self::Base2::[]}(#t167) in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = super.{self::Base2::[]=}(#t167, #t169) in #t169 : #t168{core::double};
+ }
+}
+abstract class Test9a extends self::Base<core::double, core::double> {
+ synthetic constructor •() → self::Test9a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = super.{self::Base::[]=}(#t171, #t172) in #t172;
+ core::double v8 = let final core::String #t174 = "x" in let final core::double #t175 = super.{self::Base::[]}(#t174).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t176 = super.{self::Base::[]=}(#t174, #t175) in #t175;
+ core::double v9 = let final core::String #t177 = "x" in let final core::double #t178 = super.{self::Base::[]}(#t177).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t179 = super.{self::Base::[]=}(#t177, #t178) in #t178;
+ core::double v10 = let final core::String #t180 = "x" in let final core::double #t181 = super.{self::Base::[]}(#t180).{core::double::+}(1){(core::num) → core::double} in let final void #t182 = super.{self::Base::[]=}(#t180, #t181) in #t181;
+ core::double v11 = let final core::String #t183 = "x" in let final core::double #t184 = super.{self::Base::[]}(#t183) in let final void #t185 = super.{self::Base::[]=}(#t183, #t184.{core::double::+}(1){(core::num) → core::double}) in #t184;
+ }
+}
+abstract class Test9b extends self::Base2<core::double, core::double> {
+ synthetic constructor •() → self::Test9b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::double v6 = let final core::String #t186 = "x" in let final core::double? #t187 = super.{self::Base2::[]}(#t186) in #t187 == null ?{core::double} let final core::double #t188 = self::getDouble() in let final void #t189 = super.{self::Base2::[]=}(#t186, #t188) in #t188 : #t187{core::double};
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..3dbc4a9
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.modular.expect
@@ -0,0 +1,217 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Base<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base<self::Base::T%, self::Base::U%>
+ : super core::Object::•()
+ ;
+ operator [](core::String s) → self::Base::T%
+ return this.{self::Base::getValue}(s){(core::String) → self::Base::T%};
+ operator []=(core::String s, covariant-by-class self::Base::U% v) → void
+ return this.{self::Base::setValue}(s, v){(core::String, self::Base::U%) → void};
+ abstract method getValue(core::String s) → self::Base::T%;
+ abstract method setValue(core::String s, covariant-by-class self::Base::U% v) → void;
+}
+abstract class Base2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base2<self::Base2::T%, self::Base2::U%>
+ : super core::Object::•()
+ ;
+ operator [](core::String s) → self::Base2::T?
+ return this.{self::Base2::getValue}(s){(core::String) → self::Base2::T?};
+ operator []=(core::String s, covariant-by-class self::Base2::U? v) → void
+ return this.{self::Base2::setValue}(s, v){(core::String, self::Base2::U?) → void};
+ abstract method getValue(core::String s) → self::Base2::T?;
+ abstract method setValue(core::String s, covariant-by-class self::Base2::U? v) → void;
+}
+abstract class Test1a extends self::Base<core::int, core::int> {
+ synthetic constructor •() → self::Test1a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = super.{self::Base::[]=}(#t1, #t2) in #t2;
+ core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = super.{self::Base::[]}(#t4).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = super.{self::Base::[]}(#t7).{core::num::+}(1){(core::num) → core::int} in let final void #t9 = super.{self::Base::[]=}(#t7, #t8) in #t8;
+ core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = super.{self::Base::[]}(#t10) in let final void #t12 = super.{self::Base::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}) in #t11;
+ }
+}
+abstract class Test1b extends self::Base2<core::int, core::int> {
+ synthetic constructor •() → self::Test1b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = super.{self::Base2::[]}(#t13) in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = super.{self::Base2::[]=}(#t13, #t15) in #t15 : #t14{core::int};
+ }
+}
+abstract class Test2a extends self::Base<core::int, core::num> {
+ synthetic constructor •() → self::Test2a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = super.{self::Base::[]=}(#t23, #t24) in #t24;
+ core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = super.{self::Base::[]}(#t26).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = super.{self::Base::[]=}(#t26, #t27) in #t27;
+ core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = super.{self::Base::[]}(#t29).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = super.{self::Base::[]=}(#t29, #t30) in #t30;
+ core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = super.{self::Base::[]}(#t32).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = super.{self::Base::[]=}(#t32, #t33) in #t33;
+ core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = super.{self::Base::[]}(#t35).{core::num::+}(1){(core::num) → core::int} in let final void #t37 = super.{self::Base::[]=}(#t35, #t36) in #t36;
+ core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = super.{self::Base::[]}(#t38) in let final void #t40 = super.{self::Base::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}) in #t39;
+ }
+}
+abstract class Test2b extends self::Base2<core::int, core::num> {
+ synthetic constructor •() → self::Test2b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = super.{self::Base2::[]}(#t41) in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = super.{self::Base2::[]=}(#t41, #t43) in #t43 : #t42{core::int};
+ core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = super.{self::Base2::[]}(#t45) in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = super.{self::Base2::[]=}(#t45, #t47) in #t47 : #t46{core::int};
+ core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = super.{self::Base2::[]}(#t49) in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = super.{self::Base2::[]=}(#t49, #t51) in #t51 : #t50{core::int};
+ }
+}
+abstract class Test3a extends self::Base<core::int, core::double> {
+ synthetic constructor •() → self::Test3a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = super.{self::Base::[]=}(#t53, #t54) in #t54;
+ core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = super.{self::Base::[]}(#t56).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = super.{self::Base::[]=}(#t56, #t57) in #t57;
+ core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = super.{self::Base::[]}(#t59).{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = super.{self::Base::[]=}(#t59, #t60) in #t60;
+ core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = super.{self::Base::[]}(#t62) in let final void #t64 = super.{self::Base::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}) in #t63;
+ }
+}
+abstract class Test3b extends self::Base2<core::int, core::double> {
+ synthetic constructor •() → self::Test3b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = super.{self::Base2::[]}(#t65) in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = super.{self::Base2::[]=}(#t65, #t67) in #t67 : #t66{core::int};
+ }
+}
+abstract class Test4a extends self::Base<core::num, core::int> {
+ synthetic constructor •() → self::Test4a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = super.{self::Base::[]=}(#t69, #t70) in #t70;
+ }
+}
+abstract class Test4b extends self::Base2<core::num, core::int> {
+ synthetic constructor •() → self::Test4b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = super.{self::Base2::[]}(#t72) in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = super.{self::Base2::[]=}(#t72, #t74) in #t74 : #t73{core::num};
+ }
+}
+abstract class Test5a extends self::Base<core::num, core::num> {
+ synthetic constructor •() → self::Test5a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = super.{self::Base::[]=}(#t76, #t77) in #t77;
+ core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = super.{self::Base::[]=}(#t79, #t80) in #t80;
+ core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = super.{self::Base::[]=}(#t82, #t83) in #t83;
+ core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = super.{self::Base::[]}(#t85).{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = super.{self::Base::[]=}(#t85, #t86) in #t86;
+ core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = super.{self::Base::[]}(#t88).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = super.{self::Base::[]=}(#t88, #t89) in #t89;
+ core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = super.{self::Base::[]}(#t91).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = super.{self::Base::[]=}(#t91, #t92) in #t92;
+ core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = super.{self::Base::[]}(#t94).{core::num::+}(1){(core::num) → core::num} in let final void #t96 = super.{self::Base::[]=}(#t94, #t95) in #t95;
+ core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = super.{self::Base::[]}(#t97) in let final void #t99 = super.{self::Base::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}) in #t98;
+ }
+}
+abstract class Test5b extends self::Base2<core::num, core::num> {
+ synthetic constructor •() → self::Test5b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = super.{self::Base2::[]}(#t100) in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = super.{self::Base2::[]=}(#t100, #t102) in #t102 : #t101{core::num};
+ core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = super.{self::Base2::[]}(#t104) in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = super.{self::Base2::[]=}(#t104, #t106) in #t106 : #t105{core::num};
+ core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = super.{self::Base2::[]}(#t108) in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = super.{self::Base2::[]=}(#t108, #t110) in #t110 : #t109{core::num};
+ }
+}
+abstract class Test6a extends self::Base<core::num, core::double> {
+ synthetic constructor •() → self::Test6a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = super.{self::Base::[]=}(#t112, #t113) in #t113;
+ core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = super.{self::Base::[]}(#t115).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = super.{self::Base::[]=}(#t115, #t116) in #t116;
+ core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = super.{self::Base::[]}(#t118).{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = super.{self::Base::[]=}(#t118, #t119) in #t119;
+ core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = super.{self::Base::[]}(#t121) in let final void #t123 = super.{self::Base::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}) in #t122;
+ }
+}
+abstract class Test6b extends self::Base2<core::num, core::double> {
+ synthetic constructor •() → self::Test6b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = super.{self::Base2::[]}(#t124) in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = super.{self::Base2::[]=}(#t124, #t126) in #t126 : #t125{core::num};
+ }
+}
+abstract class Test7a extends self::Base<core::double, core::int> {
+ synthetic constructor •() → self::Test7a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = super.{self::Base::[]=}(#t128, #t129) in #t129;
+ }
+}
+abstract class Test7b extends self::Base2<core::double, core::int> {
+ synthetic constructor •() → self::Test7b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = super.{self::Base2::[]}(#t131) in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = super.{self::Base2::[]=}(#t131, #t133) in #t133 : #t132{core::double};
+ }
+}
+abstract class Test8a extends self::Base<core::double, core::num> {
+ synthetic constructor •() → self::Test8a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = super.{self::Base::[]=}(#t135, #t136) in #t136;
+ core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = super.{self::Base::[]=}(#t138, #t139) in #t139;
+ core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = super.{self::Base::[]=}(#t141, #t142) in #t142;
+ core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = super.{self::Base::[]}(#t144).{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = super.{self::Base::[]=}(#t144, #t145) in #t145;
+ core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = super.{self::Base::[]}(#t147).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = super.{self::Base::[]=}(#t147, #t148) in #t148;
+ core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = super.{self::Base::[]}(#t150).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = super.{self::Base::[]=}(#t150, #t151) in #t151;
+ core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = super.{self::Base::[]}(#t153).{core::double::+}(1){(core::num) → core::double} in let final void #t155 = super.{self::Base::[]=}(#t153, #t154) in #t154;
+ core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = super.{self::Base::[]}(#t156) in let final void #t158 = super.{self::Base::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}) in #t157;
+ }
+}
+abstract class Test8b extends self::Base2<core::double, core::num> {
+ synthetic constructor •() → self::Test8b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = super.{self::Base2::[]}(#t159) in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = super.{self::Base2::[]=}(#t159, #t161) in #t161 : #t160{core::double};
+ core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = super.{self::Base2::[]}(#t163) in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = super.{self::Base2::[]=}(#t163, #t165) in #t165 : #t164{core::double};
+ core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = super.{self::Base2::[]}(#t167) in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = super.{self::Base2::[]=}(#t167, #t169) in #t169 : #t168{core::double};
+ }
+}
+abstract class Test9a extends self::Base<core::double, core::double> {
+ synthetic constructor •() → self::Test9a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = super.{self::Base::[]=}(#t171, #t172) in #t172;
+ core::double v8 = let final core::String #t174 = "x" in let final core::double #t175 = super.{self::Base::[]}(#t174).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t176 = super.{self::Base::[]=}(#t174, #t175) in #t175;
+ core::double v9 = let final core::String #t177 = "x" in let final core::double #t178 = super.{self::Base::[]}(#t177).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t179 = super.{self::Base::[]=}(#t177, #t178) in #t178;
+ core::double v10 = let final core::String #t180 = "x" in let final core::double #t181 = super.{self::Base::[]}(#t180).{core::double::+}(1){(core::num) → core::double} in let final void #t182 = super.{self::Base::[]=}(#t180, #t181) in #t181;
+ core::double v11 = let final core::String #t183 = "x" in let final core::double #t184 = super.{self::Base::[]}(#t183) in let final void #t185 = super.{self::Base::[]=}(#t183, #t184.{core::double::+}(1){(core::num) → core::double}) in #t184;
+ }
+}
+abstract class Test9b extends self::Base2<core::double, core::double> {
+ synthetic constructor •() → self::Test9b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::double v6 = let final core::String #t186 = "x" in let final core::double? #t187 = super.{self::Base2::[]}(#t186) in #t187 == null ?{core::double} let final core::double #t188 = self::getDouble() in let final void #t189 = super.{self::Base2::[]=}(#t186, #t188) in #t188 : #t187{core::double};
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..b0f1f8a
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.outline.expect
@@ -0,0 +1,140 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Base<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base<self::Base::T%, self::Base::U%>
+ ;
+ operator [](core::String s) → self::Base::T%
+ ;
+ operator []=(core::String s, covariant-by-class self::Base::U% v) → void
+ ;
+ abstract method getValue(core::String s) → self::Base::T%;
+ abstract method setValue(core::String s, covariant-by-class self::Base::U% v) → void;
+}
+abstract class Base2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base2<self::Base2::T%, self::Base2::U%>
+ ;
+ operator [](core::String s) → self::Base2::T?
+ ;
+ operator []=(core::String s, covariant-by-class self::Base2::U? v) → void
+ ;
+ abstract method getValue(core::String s) → self::Base2::T?;
+ abstract method setValue(core::String s, covariant-by-class self::Base2::U? v) → void;
+}
+abstract class Test1a extends self::Base<core::int, core::int> {
+ synthetic constructor •() → self::Test1a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test1b extends self::Base2<core::int, core::int> {
+ synthetic constructor •() → self::Test1b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test2a extends self::Base<core::int, core::num> {
+ synthetic constructor •() → self::Test2a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test2b extends self::Base2<core::int, core::num> {
+ synthetic constructor •() → self::Test2b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test3a extends self::Base<core::int, core::double> {
+ synthetic constructor •() → self::Test3a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test3b extends self::Base2<core::int, core::double> {
+ synthetic constructor •() → self::Test3b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test4a extends self::Base<core::num, core::int> {
+ synthetic constructor •() → self::Test4a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test4b extends self::Base2<core::num, core::int> {
+ synthetic constructor •() → self::Test4b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test5a extends self::Base<core::num, core::num> {
+ synthetic constructor •() → self::Test5a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test5b extends self::Base2<core::num, core::num> {
+ synthetic constructor •() → self::Test5b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test6a extends self::Base<core::num, core::double> {
+ synthetic constructor •() → self::Test6a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test6b extends self::Base2<core::num, core::double> {
+ synthetic constructor •() → self::Test6b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test7a extends self::Base<core::double, core::int> {
+ synthetic constructor •() → self::Test7a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test7b extends self::Base2<core::double, core::int> {
+ synthetic constructor •() → self::Test7b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test8a extends self::Base<core::double, core::num> {
+ synthetic constructor •() → self::Test8a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test8b extends self::Base2<core::double, core::num> {
+ synthetic constructor •() → self::Test8b
+ ;
+ method test() → void
+ ;
+}
+abstract class Test9a extends self::Base<core::double, core::double> {
+ synthetic constructor •() → self::Test9a
+ ;
+ method test() → void
+ ;
+}
+abstract class Test9b extends self::Base2<core::double, core::double> {
+ synthetic constructor •() → self::Test9b
+ ;
+ method test() → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..27278ff
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_super_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,322 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Base<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base<self::Base::T%, self::Base::U%>
+ : super core::Object::•()
+ ;
+ operator [](core::String s) → self::Base::T%
+ return this.{self::Base::getValue}(s){(core::String) → self::Base::T%};
+ operator []=(core::String s, covariant-by-class self::Base::U% v) → void
+ return this.{self::Base::setValue}(s, v){(core::String, self::Base::U%) → void};
+ abstract method getValue(core::String s) → self::Base::T%;
+ abstract method setValue(core::String s, covariant-by-class self::Base::U% v) → void;
+}
+abstract class Base2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Base2<self::Base2::T%, self::Base2::U%>
+ : super core::Object::•()
+ ;
+ operator [](core::String s) → self::Base2::T?
+ return this.{self::Base2::getValue}(s){(core::String) → self::Base2::T?};
+ operator []=(core::String s, covariant-by-class self::Base2::U? v) → void
+ return this.{self::Base2::setValue}(s, v){(core::String, self::Base2::U?) → void};
+ abstract method getValue(core::String s) → self::Base2::T?;
+ abstract method setValue(core::String s, covariant-by-class self::Base2::U? v) → void;
+}
+abstract class Test1a extends self::Base<core::int, core::int> {
+ synthetic constructor •() → self::Test1a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = super.{self::Base::[]=}(#t1, #t2) in #t2;
+ core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = super.{self::Base::[]}(#t4).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = super.{self::Base::[]=}(#t4, #t5) in #t5;
+ core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = super.{self::Base::[]}(#t7).{core::num::+}(1){(core::num) → core::int} in let final void #t9 = super.{self::Base::[]=}(#t7, #t8) in #t8;
+ core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = super.{self::Base::[]}(#t10) in let final void #t12 = super.{self::Base::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}) in #t11;
+ }
+}
+abstract class Test1b extends self::Base2<core::int, core::int> {
+ synthetic constructor •() → self::Test1b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = super.{self::Base2::[]}(#t13) in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = super.{self::Base2::[]=}(#t13, #t15) in #t15 : #t14{core::int};
+ }
+}
+abstract class Test2a extends self::Base<core::int, core::num> {
+ synthetic constructor •() → self::Test2a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = super.{self::Base::[]=}(#t17, #t18) in #t18;
+ core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = super.{self::Base::[]=}(#t20, #t21) in #t21;
+ core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = super.{self::Base::[]=}(#t23, #t24) in #t24;
+ core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = super.{self::Base::[]}(#t26).{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = super.{self::Base::[]=}(#t26, #t27) in #t27;
+ core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = super.{self::Base::[]}(#t29).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = super.{self::Base::[]=}(#t29, #t30) in #t30;
+ core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = super.{self::Base::[]}(#t32).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = super.{self::Base::[]=}(#t32, #t33) in #t33;
+ core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = super.{self::Base::[]}(#t35).{core::num::+}(1){(core::num) → core::int} in let final void #t37 = super.{self::Base::[]=}(#t35, #t36) in #t36;
+ core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = super.{self::Base::[]}(#t38) in let final void #t40 = super.{self::Base::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}) in #t39;
+ }
+}
+abstract class Test2b extends self::Base2<core::int, core::num> {
+ synthetic constructor •() → self::Test2b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = super.{self::Base2::[]}(#t41) in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = super.{self::Base2::[]=}(#t41, #t43) in #t43 : #t42{core::int};
+ core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = super.{self::Base2::[]}(#t45) in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = super.{self::Base2::[]=}(#t45, #t47) in #t47 : #t46{core::int};
+ core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = super.{self::Base2::[]}(#t49) in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = super.{self::Base2::[]=}(#t49, #t51) in #t51 : #t50{core::int};
+ }
+}
+abstract class Test3a extends self::Base<core::int, core::double> {
+ synthetic constructor •() → self::Test3a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = super.{self::Base::[]=}(#t53, #t54) in #t54;
+ core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = super.{self::Base::[]}(#t56).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = super.{self::Base::[]=}(#t56, #t57) in #t57;
+ core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = super.{self::Base::[]}(#t59).{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = super.{self::Base::[]=}(#t59, #t60) in #t60;
+ core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = super.{self::Base::[]}(#t62) in let final void #t64 = super.{self::Base::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}) in #t63;
+ }
+}
+abstract class Test3b extends self::Base2<core::int, core::double> {
+ synthetic constructor •() → self::Test3b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = super.{self::Base2::[]}(#t65) in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = super.{self::Base2::[]=}(#t65, #t67) in #t67 : #t66{core::int};
+ }
+}
+abstract class Test4a extends self::Base<core::num, core::int> {
+ synthetic constructor •() → self::Test4a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = super.{self::Base::[]=}(#t69, #t70) in #t70;
+ }
+}
+abstract class Test4b extends self::Base2<core::num, core::int> {
+ synthetic constructor •() → self::Test4b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = super.{self::Base2::[]}(#t72) in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = super.{self::Base2::[]=}(#t72, #t74) in #t74 : #t73{core::num};
+ }
+}
+abstract class Test5a extends self::Base<core::num, core::num> {
+ synthetic constructor •() → self::Test5a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = super.{self::Base::[]=}(#t76, #t77) in #t77;
+ core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = super.{self::Base::[]=}(#t79, #t80) in #t80;
+ core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = super.{self::Base::[]=}(#t82, #t83) in #t83;
+ core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = super.{self::Base::[]}(#t85).{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = super.{self::Base::[]=}(#t85, #t86) in #t86;
+ core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = super.{self::Base::[]}(#t88).{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = super.{self::Base::[]=}(#t88, #t89) in #t89;
+ core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = super.{self::Base::[]}(#t91).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = super.{self::Base::[]=}(#t91, #t92) in #t92;
+ core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = super.{self::Base::[]}(#t94).{core::num::+}(1){(core::num) → core::num} in let final void #t96 = super.{self::Base::[]=}(#t94, #t95) in #t95;
+ core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = super.{self::Base::[]}(#t97) in let final void #t99 = super.{self::Base::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}) in #t98;
+ }
+}
+abstract class Test5b extends self::Base2<core::num, core::num> {
+ synthetic constructor •() → self::Test5b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = super.{self::Base2::[]}(#t100) in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = super.{self::Base2::[]=}(#t100, #t102) in #t102 : #t101{core::num};
+ core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = super.{self::Base2::[]}(#t104) in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = super.{self::Base2::[]=}(#t104, #t106) in #t106 : #t105{core::num};
+ core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = super.{self::Base2::[]}(#t108) in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = super.{self::Base2::[]=}(#t108, #t110) in #t110 : #t109{core::num};
+ }
+}
+abstract class Test6a extends self::Base<core::num, core::double> {
+ synthetic constructor •() → self::Test6a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = super.{self::Base::[]=}(#t112, #t113) in #t113;
+ core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = super.{self::Base::[]}(#t115).{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = super.{self::Base::[]=}(#t115, #t116) in #t116;
+ core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = super.{self::Base::[]}(#t118).{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = super.{self::Base::[]=}(#t118, #t119) in #t119;
+ core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = super.{self::Base::[]}(#t121) in let final void #t123 = super.{self::Base::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}) in #t122;
+ }
+}
+abstract class Test6b extends self::Base2<core::num, core::double> {
+ synthetic constructor •() → self::Test6b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = super.{self::Base2::[]}(#t124) in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = super.{self::Base2::[]=}(#t124, #t126) in #t126 : #t125{core::num};
+ }
+}
+abstract class Test7a extends self::Base<core::double, core::int> {
+ synthetic constructor •() → self::Test7a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = super.{self::Base::[]=}(#t128, #t129) in #t129;
+ }
+}
+abstract class Test7b extends self::Base2<core::double, core::int> {
+ synthetic constructor •() → self::Test7b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = super.{self::Base2::[]}(#t131) in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = super.{self::Base2::[]=}(#t131, #t133) in #t133 : #t132{core::double};
+ }
+}
+abstract class Test8a extends self::Base<core::double, core::num> {
+ synthetic constructor •() → self::Test8a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = super.{self::Base::[]=}(#t135, #t136) in #t136;
+ core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = super.{self::Base::[]=}(#t138, #t139) in #t139;
+ core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = super.{self::Base::[]=}(#t141, #t142) in #t142;
+ core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = super.{self::Base::[]}(#t144).{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = super.{self::Base::[]=}(#t144, #t145) in #t145;
+ core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = super.{self::Base::[]}(#t147).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = super.{self::Base::[]=}(#t147, #t148) in #t148;
+ core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = super.{self::Base::[]}(#t150).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = super.{self::Base::[]=}(#t150, #t151) in #t151;
+ core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = super.{self::Base::[]}(#t153).{core::double::+}(1){(core::num) → core::double} in let final void #t155 = super.{self::Base::[]=}(#t153, #t154) in #t154;
+ core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = super.{self::Base::[]}(#t156) in let final void #t158 = super.{self::Base::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}) in #t157;
+ }
+}
+abstract class Test8b extends self::Base2<core::double, core::num> {
+ synthetic constructor •() → self::Test8b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = super.{self::Base2::[]}(#t159) in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = super.{self::Base2::[]=}(#t159, #t161) in #t161 : #t160{core::double};
+ core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = super.{self::Base2::[]}(#t163) in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = super.{self::Base2::[]=}(#t163, #t165) in #t165 : #t164{core::double};
+ core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = super.{self::Base2::[]}(#t167) in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = super.{self::Base2::[]=}(#t167, #t169) in #t169 : #t168{core::double};
+ }
+}
+abstract class Test9a extends self::Base<core::double, core::double> {
+ synthetic constructor •() → self::Test9a
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = super.{self::Base::[]=}(#t171, #t172) in #t172;
+ core::double v8 = let final core::String #t174 = "x" in let final core::double #t175 = super.{self::Base::[]}(#t174).{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t176 = super.{self::Base::[]=}(#t174, #t175) in #t175;
+ core::double v9 = let final core::String #t177 = "x" in let final core::double #t178 = super.{self::Base::[]}(#t177).{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t179 = super.{self::Base::[]=}(#t177, #t178) in #t178;
+ core::double v10 = let final core::String #t180 = "x" in let final core::double #t181 = super.{self::Base::[]}(#t180).{core::double::+}(1){(core::num) → core::double} in let final void #t182 = super.{self::Base::[]=}(#t180, #t181) in #t181;
+ core::double v11 = let final core::String #t183 = "x" in let final core::double #t184 = super.{self::Base::[]}(#t183) in let final void #t185 = super.{self::Base::[]=}(#t183, #t184.{core::double::+}(1){(core::num) → core::double}) in #t184;
+ }
+}
+abstract class Test9b extends self::Base2<core::double, core::double> {
+ synthetic constructor •() → self::Test9b
+ : super self::Base2::•()
+ ;
+ method test() → void {
+ core::double v6 = let final core::String #t186 = "x" in let final core::double? #t187 = super.{self::Base2::[]}(#t186) in #t187 == null ?{core::double} let final core::double #t188 = self::getDouble() in let final void #t189 = super.{self::Base2::[]=}(#t186, #t188) in #t188 : #t187{core::double};
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
+
+
+Extra constant evaluation status:
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:31:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:34:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:34:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:37:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:37:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:40:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:40:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:47:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:47:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:53:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:55:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:57:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:60:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:60:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:63:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:63:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:66:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:66:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:69:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:69:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:72:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:72:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:79:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:79:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:82:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:82:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:85:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:85:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:91:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:94:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:94:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:97:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:97:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:100:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:100:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:107:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:107:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:113:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:120:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:120:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:126:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:128:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:130:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:133:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:133:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:136:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:136:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:139:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:139:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:142:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:142:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:145:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:145:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:152:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:152:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:155:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:155:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:158:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:158:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:164:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:167:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:167:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:170:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:170:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:173:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:173:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:180:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:180:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:186:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:193:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:193:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:199:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:201:56 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:203:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:206:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:206:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:209:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:209:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:212:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:212:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:215:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:215:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:218:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:218:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:225:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:225:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:228:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:228:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:231:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:231:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:237:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:240:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:240:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:243:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:243:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:246:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:246:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:249:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:249:10 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:256:59 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_super_upwards2.dart:256:59 -> StringConstant("x")
+Extra constant evaluation: evaluated: 653, effectively constant: 101
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this.dart
index e0b9ec5..69e955d0 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -26,55 +28,55 @@
void test() {
this /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index**/ f()] = /*@typeArgs=B**/ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index**/ f()]
+ ??= /*@typeArgs=B**/ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
/*@target=B.-*/ --this /*@target=Test.[]*/ /*@target=Test.[]=*/
- [/*@ typeArgs=Index* */ f()];
+ [/*@typeArgs=Index**/ f()];
this /*@target=Test.[]*/ /*@target=Test.[]=*/
- [/*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ [/*@typeArgs=Index**/ f()] /*@target=B.-*/ --;
- var /*@ type=B* */ v1 = this /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()] = /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v1 = this /*@target=Test.[]=*/ [
+ /*@typeArgs=Index**/ f()] = /*@typeArgs=B**/ f();
- var /*@ type=B* */ v2 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- ??= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v2 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ ??= /*@typeArgs=B**/ f();
- var /*@ type=A* */ v3 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@type=A**/ v3 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
- var /*@ type=B* */ v4 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v4 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
- var /*@ type=C* */ v5 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
- /*@ typeArgs=Index* */ f()]
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@type=C**/ v5 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index**/ f()]
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
- var /*@ type=B* */ v6 =
+ var /*@type=B**/ v6 =
/*@target=B.-*/ --this /*@target=Test.[]*/ /*@target=Test.[]=*/
- [/*@ typeArgs=Index* */ f()];
+ [/*@typeArgs=Index**/ f()];
- var /*@ type=B* */ v7 = this /*@target=Test.[]*/ /*@target=Test.[]=*/
- [/*@ typeArgs=Index* */ f()] /*@target=B.-*/ --;
+ var /*@type=B**/ v7 = this /*@target=Test.[]*/ /*@target=Test.[]=*/
+ [/*@typeArgs=Index**/ f()] /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart
new file mode 100644
index 0000000..c45071b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart
@@ -0,0 +1,79 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+
+ void test() {
+ this /*@target=Test.[]=*/ [/*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --this /*@target=Test.[]*/ /*@target=Test.[]=*/
+ [/*@typeArgs=Index*/ f()];
+
+ this /*@target=Test.[]*/ /*@target=Test.[]=*/
+ [/*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = this /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] = /*@typeArgs=B*/ f();
+
+ var /*@type=B*/ v3 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = this /*@target=Test.[]*/ /*@target=Test.[]=*/ [
+ /*@typeArgs=Index*/ f()] /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 =
+ /*@target=B.-*/ --this /*@target=Test.[]*/ /*@target=Test.[]=*/
+ [/*@typeArgs=Index*/ f()];
+
+ var /*@type=B*/ v7 = this /*@target=Test.[]*/ /*@target=Test.[]=*/
+ [/*@typeArgs=Index*/ f()] /*@target=B.-*/ --;
+ }
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+
+ void test() {
+ this /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B?*/ v2 = this /*@target=Test2.[]*/ /*@target=Test2.[]=*/ [
+ /*@typeArgs=Index*/ f()] ??= /*@typeArgs=B?*/ f();
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.textual_outline.expect
new file mode 100644
index 0000000..52bbd2c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.textual_outline.expect
@@ -0,0 +1,30 @@
+library test;
+
+class Index {}
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+ void test() {}
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3c0c624
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.textual_outline_modelled.expect
@@ -0,0 +1,30 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+class Index {}
+
+class Test {
+ B operator [](Index i) => throw '';
+ void operator []=(Index i, B v) {}
+ void test() {}
+}
+
+class Test2 {
+ B? operator [](Index i) => throw '';
+ void operator []=(Index i, B? v) {}
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.expect
new file mode 100644
index 0000000..cb7ea47
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.expect
@@ -0,0 +1,69 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+ method test() → void {
+ this.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Index #t1 = self::f<self::Index>() in this.{self::Test::[]=}(#t1, this.{self::Test::[]}(#t1){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t2 = self::f<self::Index>() in this.{self::Test::[]=}(#t2, this.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t3 = self::f<self::Index>() in this.{self::Test::[]=}(#t3, this.{self::Test::[]}(#t3){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = this.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t6 = this.{self::Test::[]=}(#t4, #t5){(self::Index, self::B) → void} in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in this.{self::Test::[]=}(#t7, this.{self::Test::[]}(#t7){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = this.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = this.{self::Test::[]}(#t11){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = this.{self::Test::[]=}(#t11, #t12){(self::Index, self::B) → void} in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = this.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = this.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = this.{self::Test::[]}(#t17){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = this.{self::Test::[]=}(#t17, #t18){(self::Index, self::B) → void} in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = this.{self::Test::[]}(#t20){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t22 = this.{self::Test::[]=}(#t20, #t21){(self::Index, self::B) → void} in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = this.{self::Test::[]}(#t23){(self::Index) → self::B} in let final void #t25 = this.{self::Test::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t24;
+ }
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in this.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::B?} this.{self::Test2::[]=}(#t26, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = this.{self::Test2::[]}(#t27){(self::Index) → self::B?} in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = this.{self::Test2::[]=}(#t27, #t29){(self::Index, self::B?) → void} in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.modular.expect
new file mode 100644
index 0000000..cb7ea47
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.modular.expect
@@ -0,0 +1,69 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+ method test() → void {
+ this.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Index #t1 = self::f<self::Index>() in this.{self::Test::[]=}(#t1, this.{self::Test::[]}(#t1){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t2 = self::f<self::Index>() in this.{self::Test::[]=}(#t2, this.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t3 = self::f<self::Index>() in this.{self::Test::[]=}(#t3, this.{self::Test::[]}(#t3){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = this.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t6 = this.{self::Test::[]=}(#t4, #t5){(self::Index, self::B) → void} in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in this.{self::Test::[]=}(#t7, this.{self::Test::[]}(#t7){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = this.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = this.{self::Test::[]}(#t11){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = this.{self::Test::[]=}(#t11, #t12){(self::Index, self::B) → void} in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = this.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = this.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = this.{self::Test::[]}(#t17){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = this.{self::Test::[]=}(#t17, #t18){(self::Index, self::B) → void} in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = this.{self::Test::[]}(#t20){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t22 = this.{self::Test::[]=}(#t20, #t21){(self::Index, self::B) → void} in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = this.{self::Test::[]}(#t23){(self::Index) → self::B} in let final void #t25 = this.{self::Test::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t24;
+ }
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in this.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::B?} this.{self::Test2::[]=}(#t26, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = this.{self::Test2::[]}(#t27){(self::Index) → self::B?} in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = this.{self::Test2::[]=}(#t27, #t29){(self::Index, self::B?) → void} in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.outline.expect
new file mode 100644
index 0000000..03e4c14
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.outline.expect
@@ -0,0 +1,52 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ ;
+ operator [](self::Index i) → self::B
+ ;
+ operator []=(self::Index i, self::B v) → void
+ ;
+ method test() → void
+ ;
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ ;
+ operator [](self::Index i) → self::B?
+ ;
+ operator []=(self::Index i, self::B? v) → void
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.transformed.expect
new file mode 100644
index 0000000..cb7ea47
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this2.dart.weak.transformed.expect
@@ -0,0 +1,69 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Index extends core::Object {
+ synthetic constructor •() → self::Index
+ : super core::Object::•()
+ ;
+}
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B
+ return throw "";
+ operator []=(self::Index i, self::B v) → void {}
+ method test() → void {
+ this.{self::Test::[]=}(self::f<self::Index>(), self::f<self::B>()){(self::Index, self::B) → void};
+ let final self::Index #t1 = self::f<self::Index>() in this.{self::Test::[]=}(#t1, this.{self::Test::[]}(#t1){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t2 = self::f<self::Index>() in this.{self::Test::[]=}(#t2, this.{self::Test::[]}(#t2){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B}){(self::Index, self::B) → void};
+ let final self::Index #t3 = self::f<self::Index>() in this.{self::Test::[]=}(#t3, this.{self::Test::[]}(#t3){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C}){(self::Index, self::B) → void};
+ let final self::Index #t4 = self::f<self::Index>() in let final self::B #t5 = this.{self::Test::[]}(#t4){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t6 = this.{self::Test::[]=}(#t4, #t5){(self::Index, self::B) → void} in #t5;
+ let final self::Index #t7 = self::f<self::Index>() in this.{self::Test::[]=}(#t7, this.{self::Test::[]}(#t7){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void};
+ self::B v1 = let final self::Index #t8 = self::f<self::Index>() in let final self::B #t9 = self::f<self::B>() in let final void #t10 = this.{self::Test::[]=}(#t8, #t9){(self::Index, self::B) → void} in #t9;
+ self::B v3 = let final self::Index #t11 = self::f<self::Index>() in let final self::B #t12 = this.{self::Test::[]}(#t11){(self::Index) → self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t13 = this.{self::Test::[]=}(#t11, #t12){(self::Index, self::B) → void} in #t12;
+ self::B v4 = let final self::Index #t14 = self::f<self::Index>() in let final self::B #t15 = this.{self::Test::[]}(#t14){(self::Index) → self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t16 = this.{self::Test::[]=}(#t14, #t15){(self::Index, self::B) → void} in #t15;
+ self::C v5 = let final self::Index #t17 = self::f<self::Index>() in let final self::C #t18 = this.{self::Test::[]}(#t17){(self::Index) → self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t19 = this.{self::Test::[]=}(#t17, #t18){(self::Index, self::B) → void} in #t18;
+ self::B v6 = let final self::Index #t20 = self::f<self::Index>() in let final self::B #t21 = this.{self::Test::[]}(#t20){(self::Index) → self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t22 = this.{self::Test::[]=}(#t20, #t21){(self::Index, self::B) → void} in #t21;
+ self::B v7 = let final self::Index #t23 = self::f<self::Index>() in let final self::B #t24 = this.{self::Test::[]}(#t23){(self::Index) → self::B} in let final void #t25 = this.{self::Test::[]=}(#t23, #t24.{self::B::-}(1){(core::int) → self::B}){(self::Index, self::B) → void} in #t24;
+ }
+}
+class Test2 extends core::Object {
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ operator [](self::Index i) → self::B?
+ return throw "";
+ operator []=(self::Index i, self::B? v) → void {}
+ method test() → void {
+ let final self::Index #t26 = self::f<self::Index>() in this.{self::Test2::[]}(#t26){(self::Index) → self::B?} == null ?{self::B?} this.{self::Test2::[]=}(#t26, self::f<self::B?>()){(self::Index, self::B?) → void} : null;
+ self::B? v2 = let final self::Index #t27 = self::f<self::Index>() in let final self::B? #t28 = this.{self::Test2::[]}(#t27){(self::Index) → self::B?} in #t28 == null ?{self::B?} let final self::B? #t29 = self::f<self::B?>() in let final void #t30 = this.{self::Test2::[]=}(#t27, #t29){(self::Index, self::B?) → void} in #t29 : #t28{self::B};
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart
index f6d9aab..129dcb0 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -14,30 +16,30 @@
void operator []=(String s, int v);
void test() {
- var /*@ type=int* */ v1 = this /*@target=Test1.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = this /*@target=Test1.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = this /*@target=Test1.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test1.[]=*/ ['x'] = getNum();
- var /*@ type=int* */ v4 = this
+ var /*@type=int**/ v4 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
??= getNum();
- var /*@ type=int* */ v7 = this
+ var /*@type=int**/ v7 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = this
+ var /*@type=num**/ v8 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x'];
- var /*@ type=int* */ v11 = this
+ var /*@type=int**/ v11 = this
/*@target=Test1.[]*/ /*@target=Test1.[]=*/ ['x']
/*@target=num.+*/ ++;
}
@@ -48,40 +50,40 @@
void operator []=(String s, num v);
void test() {
- var /*@ type=int* */ v1 = this /*@target=Test2.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = this /*@target=Test2.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = this /*@target=Test2.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test2.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = this /*@target=Test2.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = this /*@target=Test2.[]=*/ ['x'] = getDouble();
- var /*@ type=int* */ v4 = this
+ var /*@type=int**/ v4 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = this
+ var /*@type=num**/ v6 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
??= getDouble();
- var /*@ type=int* */ v7 = this
+ var /*@type=int**/ v7 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = this
+ var /*@type=num**/ v8 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=double* */ v9 = this
+ var /*@type=double**/ v9 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'];
- var /*@ type=int* */ v11 = this
+ var /*@type=int**/ v11 = this
/*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x']
/*@target=num.+*/ ++;
}
@@ -92,34 +94,34 @@
void operator []=(String s, double v);
void test() {
- var /*@ type=num* */ v2 = this /*@target=Test3.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test3.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = this /*@target=Test3.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = this /*@target=Test3.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = this
+ var /*@type=num**/ v6 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
??= getDouble();
- var /*@ type=int* */ v7 = this
+ var /*@type=int**/ v7 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = this
+ var /*@type=num**/ v8 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=double* */ v9 = this
+ var /*@type=double**/ v9 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x'];
- var /*@ type=int* */ v11 = this
+ var /*@type=int**/ v11 = this
/*@target=Test3.[]*/ /*@target=Test3.[]=*/ ['x']
/*@target=num.+*/ ++;
}
@@ -130,30 +132,30 @@
void operator []=(String s, int v);
void test() {
- var /*@ type=int* */ v1 = this /*@target=Test4.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = this /*@target=Test4.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = this /*@target=Test4.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test4.[]=*/ ['x'] = getNum();
- var /*@ type=num* */ v4 = this
+ var /*@type=num**/ v4 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v7 = this
+ var /*@type=num**/ v7 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = this
+ var /*@type=num**/ v8 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++this
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x'];
- var /*@ type=num* */ v11 = this
+ var /*@type=num**/ v11 = this
/*@target=Test4.[]*/ /*@target=Test4.[]=*/ ['x']
/*@target=num.+*/ ++;
}
@@ -164,40 +166,40 @@
void operator []=(String s, num v);
void test() {
- var /*@ type=int* */ v1 = this /*@target=Test5.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = this /*@target=Test5.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = this /*@target=Test5.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test5.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = this /*@target=Test5.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = this /*@target=Test5.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v4 = this
+ var /*@type=num**/ v4 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = this
+ var /*@type=num**/ v6 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
??= getDouble();
- var /*@ type=num* */ v7 = this
+ var /*@type=num**/ v7 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = this
+ var /*@type=num**/ v8 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = this
+ var /*@type=num**/ v9 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++this
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x'];
- var /*@ type=num* */ v11 = this
+ var /*@type=num**/ v11 = this
/*@target=Test5.[]*/ /*@target=Test5.[]=*/ ['x']
/*@target=num.+*/ ++;
}
@@ -208,34 +210,34 @@
void operator []=(String s, double v);
void test() {
- var /*@ type=num* */ v2 = this /*@target=Test6.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test6.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = this /*@target=Test6.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = this /*@target=Test6.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = this
+ var /*@type=num**/ v6 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
??= getDouble();
- var /*@ type=num* */ v7 = this
+ var /*@type=num**/ v7 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = this
+ var /*@type=num**/ v8 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = this
+ var /*@type=num**/ v9 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++this
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x'];
- var /*@ type=num* */ v11 = this
+ var /*@type=num**/ v11 = this
/*@target=Test6.[]*/ /*@target=Test6.[]=*/ ['x']
/*@target=num.+*/ ++;
}
@@ -246,31 +248,31 @@
void operator []=(String s, int v);
void test() {
- var /*@ type=int* */ v1 = this /*@target=Test7.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = this /*@target=Test7.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = this
+ var /*@type=num**/ v2 = this
/*@target=Test7.[]=*/ ['x'] = getNum();
- var /*@ type=num* */ v4 = this
+ var /*@type=num**/ v4 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v7 = this
+ var /*@type=double**/ v7 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = this
+ var /*@type=double**/ v8 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x'];
- var /*@ type=double* */ v11 = this
+ var /*@type=double**/ v11 = this
/*@target=Test7.[]*/ /*@target=Test7.[]=*/ ['x']
/*@target=double.+*/ ++;
}
@@ -281,42 +283,42 @@
void operator []=(String s, num v);
void test() {
- var /*@ type=int* */ v1 = this /*@target=Test8.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = this /*@target=Test8.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = this
+ var /*@type=num**/ v2 = this
/*@target=Test8.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = this
+ var /*@type=double**/ v3 = this
/*@target=Test8.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v4 = this
+ var /*@type=num**/ v4 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v6 = this
+ var /*@type=double**/ v6 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
??= getDouble();
- var /*@ type=double* */ v7 = this
+ var /*@type=double**/ v7 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = this
+ var /*@type=double**/ v8 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = this
+ var /*@type=double**/ v9 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x']
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ ['x'];
- var /*@ type=double* */ v11 = this
+ var /*@type=double**/ v11 = this
/*@target=Test8.[]*/ /*@target=Test8.[]=*/ [
'x'] /*@target=double.+*/ ++;
}
@@ -327,35 +329,35 @@
void operator []=(String s, double v);
void test() {
- var /*@ type=num* */ v2 = this /*@target=Test9.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = this /*@target=Test9.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = this
+ var /*@type=double**/ v3 = this
/*@target=Test9.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 = this
+ var /*@type=num**/ v5 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v6 = this
+ var /*@type=double**/ v6 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
??= getDouble();
- var /*@ type=double* */ v7 = this
+ var /*@type=double**/ v7 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = this
+ var /*@type=double**/ v8 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = this
+ var /*@type=double**/ v9 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x'];
- var /*@ type=double* */ v11 = this
+ var /*@type=double**/ v11 = this
/*@target=Test9.[]*/ /*@target=Test9.[]=*/ ['x']
/*@target=double.+*/ ++;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.expect
index 99a0822..b06b8ef 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.expect
@@ -2,31 +2,31 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:109:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:111:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:119:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
-// var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:121:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// var /*@type=int**/ v10 = /*@target=num.+*/ ++this
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:124:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:126:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ ++;
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:264:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:266:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:268:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getNum();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:272:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// var /*@type=double**/ v10 = /*@target=double.+*/ ++this
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:275:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:277:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ ++;
// ^
//
@@ -101,15 +101,15 @@
core::double* v3 = let final core::String* #t66 = "x" in let final core::double* #t67 = self::getDouble() in let final void #t68 = this.{self::Test3::[]=}(#t66, #t67){(core::String*, core::double*) →* void} in #t67;
core::num* v5 = let final core::String* #t69 = "x" in let final core::int* #t70 = this.{self::Test3::[]}(#t69){(core::String*) →* core::int*} in #t70 == null ?{core::num*} let final core::num* #t71 = self::getNum() as{TypeError} core::double* in let final void #t72 = this.{self::Test3::[]=}(#t69, #t71){(core::String*, core::double*) →* void} in #t71 : #t70;
core::num* v6 = let final core::String* #t73 = "x" in let final core::int* #t74 = this.{self::Test3::[]}(#t73){(core::String*) →* core::int*} in #t74 == null ?{core::num*} let final core::double* #t75 = self::getDouble() in let final void #t76 = this.{self::Test3::[]=}(#t73, #t75){(core::String*, core::double*) →* void} in #t75 : #t74;
- core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:109:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:111:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ += getInt();
^" in this.{self::Test3::[]}(#t77){(core::String*) →* core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t79 = this.{self::Test3::[]=}(#t77, #t78){(core::String*, core::double*) →* void} in #t78;
core::num* v8 = let final core::String* #t80 = "x" in let final core::num* #t81 = this.{self::Test3::[]}(#t80){(core::String*) →* core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::double* in let final void #t82 = this.{self::Test3::[]=}(#t80, #t81){(core::String*, core::double*) →* void} in #t81;
core::double* v9 = let final core::String* #t83 = "x" in let final core::double* #t84 = this.{self::Test3::[]}(#t83){(core::String*) →* core::int*}.{core::num::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t85 = this.{self::Test3::[]=}(#t83, #t84){(core::String*, core::double*) →* void} in #t84;
- core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:119:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
- ^" in this.{self::Test3::[]}(#t86){(core::String*) →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = this.{self::Test3::[]=}(#t86, #t87){(core::String*, core::double*) →* void} in #t87;
- core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = this.{self::Test3::[]}(#t89){(core::String*) →* core::int*} in let final void #t91 = this.{self::Test3::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:124:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:121:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++this
+ ^" in this.{self::Test3::[]}(#t86){(core::String*) →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = this.{self::Test3::[]=}(#t86, #t87){(core::String*, core::double*) →* void} in #t87;
+ core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = this.{self::Test3::[]}(#t89){(core::String*) →* core::int*} in let final void #t91 = this.{self::Test3::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:126:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ ++;
^" in #t90.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double*){(core::String*, core::double*) →* void} in #t90;
}
@@ -220,16 +220,16 @@
core::num* v2 = let final core::String* #t186 = "x" in let final core::num* #t187 = self::getNum() as{TypeError} core::int* in let final void #t188 = this.{self::Test7::[]=}(#t186, #t187){(core::String*, core::int*) →* void} in #t187;
core::num* v4 = let final core::String* #t189 = "x" in let final core::double* #t190 = this.{self::Test7::[]}(#t189){(core::String*) →* core::double*} in #t190 == null ?{core::num*} let final core::int* #t191 = self::getInt() in let final void #t192 = this.{self::Test7::[]=}(#t189, #t191){(core::String*, core::int*) →* void} in #t191 : #t190;
core::num* v5 = let final core::String* #t193 = "x" in let final core::double* #t194 = this.{self::Test7::[]}(#t193){(core::String*) →* core::double*} in #t194 == null ?{core::num*} let final core::num* #t195 = self::getNum() as{TypeError} core::int* in let final void #t196 = this.{self::Test7::[]=}(#t193, #t195){(core::String*, core::int*) →* void} in #t195 : #t194;
- core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:264:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:266:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getInt();
^" in this.{self::Test7::[]}(#t197){(core::String*) →* core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t199 = this.{self::Test7::[]=}(#t197, #t198){(core::String*, core::int*) →* void} in #t198;
- core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:268:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getNum();
^" in this.{self::Test7::[]}(#t200){(core::String*) →* core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t202 = this.{self::Test7::[]=}(#t200, #t201){(core::String*, core::int*) →* void} in #t201;
- core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
- ^" in this.{self::Test7::[]}(#t203){(core::String*) →* core::double*}.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = this.{self::Test7::[]=}(#t203, #t204){(core::String*, core::int*) →* void} in #t204;
- core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = this.{self::Test7::[]}(#t206){(core::String*) →* core::double*} in let final void #t208 = this.{self::Test7::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:275:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:272:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++this
+ ^" in this.{self::Test7::[]}(#t203){(core::String*) →* core::double*}.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = this.{self::Test7::[]=}(#t203, #t204){(core::String*, core::int*) →* void} in #t204;
+ core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = this.{self::Test7::[]}(#t206){(core::String*) →* core::double*} in let final void #t208 = this.{self::Test7::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:277:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ ++;
^" in #t207.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int*){(core::String*, core::int*) →* void} in #t207;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.modular.expect
index 99a0822..b06b8ef 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart.weak.modular.expect
@@ -2,31 +2,31 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:109:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:111:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:119:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
-// var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:121:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// var /*@type=int**/ v10 = /*@target=num.+*/ ++this
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:124:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:126:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ ++;
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:264:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:266:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getInt();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:268:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ += getNum();
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
-// var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
-// ^
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:272:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// var /*@type=double**/ v10 = /*@target=double.+*/ ++this
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:275:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:277:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ ++;
// ^
//
@@ -101,15 +101,15 @@
core::double* v3 = let final core::String* #t66 = "x" in let final core::double* #t67 = self::getDouble() in let final void #t68 = this.{self::Test3::[]=}(#t66, #t67){(core::String*, core::double*) →* void} in #t67;
core::num* v5 = let final core::String* #t69 = "x" in let final core::int* #t70 = this.{self::Test3::[]}(#t69){(core::String*) →* core::int*} in #t70 == null ?{core::num*} let final core::num* #t71 = self::getNum() as{TypeError} core::double* in let final void #t72 = this.{self::Test3::[]=}(#t69, #t71){(core::String*, core::double*) →* void} in #t71 : #t70;
core::num* v6 = let final core::String* #t73 = "x" in let final core::int* #t74 = this.{self::Test3::[]}(#t73){(core::String*) →* core::int*} in #t74 == null ?{core::num*} let final core::double* #t75 = self::getDouble() in let final void #t76 = this.{self::Test3::[]=}(#t73, #t75){(core::String*, core::double*) →* void} in #t75 : #t74;
- core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:109:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v7 = let final core::String* #t77 = "x" in let final core::int* #t78 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:111:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ += getInt();
^" in this.{self::Test3::[]}(#t77){(core::String*) →* core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t79 = this.{self::Test3::[]=}(#t77, #t78){(core::String*, core::double*) →* void} in #t78;
core::num* v8 = let final core::String* #t80 = "x" in let final core::num* #t81 = this.{self::Test3::[]}(#t80){(core::String*) →* core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::double* in let final void #t82 = this.{self::Test3::[]=}(#t80, #t81){(core::String*, core::double*) →* void} in #t81;
core::double* v9 = let final core::String* #t83 = "x" in let final core::double* #t84 = this.{self::Test3::[]}(#t83){(core::String*) →* core::int*}.{core::num::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t85 = this.{self::Test3::[]=}(#t83, #t84){(core::String*, core::double*) →* void} in #t84;
- core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:119:50: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++this
- ^" in this.{self::Test3::[]}(#t86){(core::String*) →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = this.{self::Test3::[]=}(#t86, #t87){(core::String*, core::double*) →* void} in #t87;
- core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = this.{self::Test3::[]}(#t89){(core::String*) →* core::int*} in let final void #t91 = this.{self::Test3::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:124:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v10 = let final core::String* #t86 = "x" in let final core::int* #t87 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:121:48: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++this
+ ^" in this.{self::Test3::[]}(#t86){(core::String*) →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t88 = this.{self::Test3::[]=}(#t86, #t87){(core::String*, core::double*) →* void} in #t87;
+ core::int* v11 = let final core::String* #t89 = "x" in let final core::int* #t90 = this.{self::Test3::[]}(#t89){(core::String*) →* core::int*} in let final void #t91 = this.{self::Test3::[]=}(#t89, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:126:27: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ ++;
^" in #t90.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double*){(core::String*, core::double*) →* void} in #t90;
}
@@ -220,16 +220,16 @@
core::num* v2 = let final core::String* #t186 = "x" in let final core::num* #t187 = self::getNum() as{TypeError} core::int* in let final void #t188 = this.{self::Test7::[]=}(#t186, #t187){(core::String*, core::int*) →* void} in #t187;
core::num* v4 = let final core::String* #t189 = "x" in let final core::double* #t190 = this.{self::Test7::[]}(#t189){(core::String*) →* core::double*} in #t190 == null ?{core::num*} let final core::int* #t191 = self::getInt() in let final void #t192 = this.{self::Test7::[]=}(#t189, #t191){(core::String*, core::int*) →* void} in #t191 : #t190;
core::num* v5 = let final core::String* #t193 = "x" in let final core::double* #t194 = this.{self::Test7::[]}(#t193){(core::String*) →* core::double*} in #t194 == null ?{core::num*} let final core::num* #t195 = self::getNum() as{TypeError} core::int* in let final void #t196 = this.{self::Test7::[]=}(#t193, #t195){(core::String*, core::int*) →* void} in #t195 : #t194;
- core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:264:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v7 = let final core::String* #t197 = "x" in let final core::double* #t198 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:266:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getInt();
^" in this.{self::Test7::[]}(#t197){(core::String*) →* core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t199 = this.{self::Test7::[]=}(#t197, #t198){(core::String*, core::int*) →* void} in #t198;
- core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:268:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v8 = let final core::String* #t200 = "x" in let final core::double* #t201 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ += getNum();
^" in this.{self::Test7::[]}(#t200){(core::String*) →* core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t202 = this.{self::Test7::[]=}(#t200, #t201){(core::String*, core::int*) →* void} in #t201;
- core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:270:56: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++this
- ^" in this.{self::Test7::[]}(#t203){(core::String*) →* core::double*}.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = this.{self::Test7::[]=}(#t203, #t204){(core::String*, core::int*) →* void} in #t204;
- core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = this.{self::Test7::[]}(#t206){(core::String*) →* core::double*} in let final void #t208 = this.{self::Test7::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:275:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v10 = let final core::String* #t203 = "x" in let final core::double* #t204 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:272:54: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++this
+ ^" in this.{self::Test7::[]}(#t203){(core::String*) →* core::double*}.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t205 = this.{self::Test7::[]=}(#t203, #t204){(core::String*, core::int*) →* void} in #t204;
+ core::double* v11 = let final core::String* #t206 = "x" in let final core::double* #t207 = this.{self::Test7::[]}(#t206){(core::String*) →* core::double*} in let final void #t208 = this.{self::Test7::[]=}(#t206, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards.dart:277:30: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ ++;
^" in #t207.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int*){(core::String*, core::int*) →* void} in #t207;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart
new file mode 100644
index 0000000..4e1244c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart
@@ -0,0 +1,312 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+abstract class Test1a {
+ int operator [](String s);
+ void operator []=(String s, int v);
+
+ void test() {
+ var /*@type=int*/ v1 = this /*@target=Test1a.[]=*/ ['x'] = getInt();
+
+ var /*@type=int*/ v7 = this /*@target=Test1a.[]*/ /*@target=Test1a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++this /*@target=Test1a.[]*/ /*@target=Test1a.[]=*/ [
+ 'x'];
+
+ var /*@type=int*/ v11 = this /*@target=Test1a.[]*/ /*@target=Test1a.[]=*/ [
+ 'x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test1b {
+ int? operator [](String s);
+ void operator []=(String s, int? v);
+
+ void test() {
+ var /*@type=int*/ v4 =
+ this /*@target=Test1b.[]*/ /*@target=Test1b.[]=*/ ['x'] ??= getInt();
+ }
+}
+
+abstract class Test2a {
+ int operator [](String s);
+ void operator []=(String s, num v);
+
+ void test() {
+ var /*@type=int*/ v1 = this /*@target=Test2a.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = this /*@target=Test2a.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = this /*@target=Test2a.[]=*/ ['x'] = getDouble();
+
+ var /*@type=int*/ v7 = this /*@target=Test2a.[]*/ /*@target=Test2a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 = this /*@target=Test2a.[]*/ /*@target=Test2a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 =
+ this /*@target=Test2a.[]*/ /*@target=Test2a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++this /*@target=Test2a.[]*/ /*@target=Test2a.[]=*/ [
+ 'x'];
+
+ var /*@type=int*/ v11 = this /*@target=Test2a.[]*/ /*@target=Test2a.[]=*/ [
+ 'x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test2b {
+ int? operator [](String s);
+ void operator []=(String s, num? v);
+
+ void test() {
+ var /*@type=int*/ v4 =
+ this /*@target=Test2b.[]*/ /*@target=Test2b.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ this /*@target=Test2b.[]*/ /*@target=Test2b.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=num*/ v6 =
+ this /*@target=Test2b.[]*/ /*@target=Test2b.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test3a {
+ int operator [](String s);
+ void operator []=(String s, double v);
+
+ void test() {
+ var /*@type=double*/ v3 = this /*@target=Test3a.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v9 =
+ this /*@target=Test3a.[]*/ /*@target=Test3a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=num.+*/ ++this /*@target=Test3a.[]*/ /*@target=Test3a.[]=*/ [
+ 'x'];
+
+ var /*@type=int*/ v11 = this /*@target=Test3a.[]*/ /*@target=Test3a.[]=*/ [
+ 'x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test3b {
+ int? operator [](String s);
+ void operator []=(String s, double? v);
+
+ void test() {
+ var /*@type=num*/ v6 =
+ this /*@target=Test3b.[]*/ /*@target=Test3b.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test4a {
+ num operator [](String s);
+ void operator []=(String s, int v);
+
+ void test() {
+ var /*@type=int*/ v1 = this /*@target=Test4a.[]=*/ ['x'] = getInt();
+ }
+}
+
+abstract class Test4b {
+ num? operator [](String s);
+ void operator []=(String s, int? v);
+
+ void test() {
+ var /*@type=num*/ v4 =
+ this /*@target=Test4b.[]*/ /*@target=Test4b.[]=*/ ['x'] ??= getInt();
+ }
+}
+
+abstract class Test5a {
+ num operator [](String s);
+ void operator []=(String s, num v);
+
+ void test() {
+ var /*@type=int*/ v1 = this /*@target=Test5a.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = this /*@target=Test5a.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = this /*@target=Test5a.[]=*/ ['x'] = getDouble();
+
+ var /*@type=num*/ v7 = this /*@target=Test5a.[]*/ /*@target=Test5a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 = this /*@target=Test5a.[]*/ /*@target=Test5a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 =
+ this /*@target=Test5a.[]*/ /*@target=Test5a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++this /*@target=Test5a.[]*/ /*@target=Test5a.[]=*/ [
+ 'x'];
+
+ var /*@type=num*/ v11 = this /*@target=Test5a.[]*/ /*@target=Test5a.[]=*/ [
+ 'x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test5b {
+ num? operator [](String s);
+ void operator []=(String s, num? v);
+
+ void test() {
+ var /*@type=num*/ v4 =
+ this /*@target=Test5b.[]*/ /*@target=Test5b.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ this /*@target=Test5b.[]*/ /*@target=Test5b.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=num*/ v6 =
+ this /*@target=Test5b.[]*/ /*@target=Test5b.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test6a {
+ num operator [](String s);
+ void operator []=(String s, double v);
+
+ void test() {
+ var /*@type=double*/ v3 = this /*@target=Test6a.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v9 =
+ this /*@target=Test6a.[]*/ /*@target=Test6a.[]=*/ [
+ 'x'] /*@target=num.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=num.+*/ ++this /*@target=Test6a.[]*/ /*@target=Test6a.[]=*/ [
+ 'x'];
+
+ var /*@type=num*/ v11 = this /*@target=Test6a.[]*/ /*@target=Test6a.[]=*/ [
+ 'x'] /*@target=num.+*/ ++;
+ }
+}
+
+abstract class Test6b {
+ num? operator [](String s);
+ void operator []=(String s, double? v);
+
+ void test() {
+ var /*@type=num*/ v6 =
+ this /*@target=Test6b.[]*/ /*@target=Test6b.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test7a {
+ double operator [](String s);
+ void operator []=(String s, int v);
+
+ void test() {
+ var /*@type=int*/ v1 = this /*@target=Test7a.[]=*/ ['x'] = getInt();
+ }
+}
+
+abstract class Test7b {
+ double? operator [](String s);
+ void operator []=(String s, int? v);
+
+ void test() {
+ var /*@type=num*/ v4 =
+ this /*@target=Test7b.[]*/ /*@target=Test7b.[]=*/ ['x'] ??= getInt();
+ }
+}
+
+abstract class Test8a {
+ double operator [](String s);
+ void operator []=(String s, num v);
+
+ void test() {
+ var /*@type=int*/ v1 = this /*@target=Test8a.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = this /*@target=Test8a.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = this /*@target=Test8a.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v7 =
+ this /*@target=Test8a.[]*/ /*@target=Test8a.[]=*/ [
+ 'x'] /*@target=double.+*/ += getInt();
+
+ var /*@type=double*/ v8 =
+ this /*@target=Test8a.[]*/ /*@target=Test8a.[]=*/ [
+ 'x'] /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 =
+ this /*@target=Test8a.[]*/ /*@target=Test8a.[]=*/ [
+ 'x'] /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++this /*@target=Test8a.[]*/ /*@target=Test8a.[]=*/ [
+ 'x'];
+
+ var /*@type=double*/ v11 =
+ this /*@target=Test8a.[]*/ /*@target=Test8a.[]=*/ [
+ 'x'] /*@target=double.+*/ ++;
+ }
+}
+
+abstract class Test8b {
+ double? operator [](String s);
+ void operator []=(String s, num? v);
+
+ void test() {
+ var /*@type=num*/ v4 =
+ this /*@target=Test8b.[]*/ /*@target=Test8b.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ this /*@target=Test8b.[]*/ /*@target=Test8b.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=double*/ v6 =
+ this /*@target=Test8b.[]*/ /*@target=Test8b.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+abstract class Test9a {
+ double operator [](String s);
+ void operator []=(String s, double v);
+
+ void test() {
+ var /*@type=double*/ v3 = this /*@target=Test9a.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v7 =
+ this /*@target=Test9a.[]*/ /*@target=Test9a.[]=*/ [
+ 'x'] /*@target=double.+*/ += getInt();
+
+ var /*@type=double*/ v8 =
+ this /*@target=Test9a.[]*/ /*@target=Test9a.[]=*/ [
+ 'x'] /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 =
+ this /*@target=Test9a.[]*/ /*@target=Test9a.[]=*/ [
+ 'x'] /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++this /*@target=Test9a.[]*/ /*@target=Test9a.[]=*/ [
+ 'x'];
+
+ var /*@type=double*/ v11 =
+ this /*@target=Test9a.[]*/ /*@target=Test9a.[]=*/ [
+ 'x'] /*@target=double.+*/ ++;
+ }
+}
+
+abstract class Test9b {
+ double? operator [](String s);
+ void operator []=(String s, double? v);
+
+ void test() {
+ var /*@type=double*/ v6 =
+ this /*@target=Test9b.[]*/ /*@target=Test9b.[]=*/ ['x'] ??= getDouble();
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..d10dc87
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.textual_outline.expect
@@ -0,0 +1,115 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+abstract class Test1a {
+ int operator [](String s);
+ void operator []=(String s, int v);
+ void test() {}
+}
+
+abstract class Test1b {
+ int? operator [](String s);
+ void operator []=(String s, int? v);
+ void test() {}
+}
+
+abstract class Test2a {
+ int operator [](String s);
+ void operator []=(String s, num v);
+ void test() {}
+}
+
+abstract class Test2b {
+ int? operator [](String s);
+ void operator []=(String s, num? v);
+ void test() {}
+}
+
+abstract class Test3a {
+ int operator [](String s);
+ void operator []=(String s, double v);
+ void test() {}
+}
+
+abstract class Test3b {
+ int? operator [](String s);
+ void operator []=(String s, double? v);
+ void test() {}
+}
+
+abstract class Test4a {
+ num operator [](String s);
+ void operator []=(String s, int v);
+ void test() {}
+}
+
+abstract class Test4b {
+ num? operator [](String s);
+ void operator []=(String s, int? v);
+ void test() {}
+}
+
+abstract class Test5a {
+ num operator [](String s);
+ void operator []=(String s, num v);
+ void test() {}
+}
+
+abstract class Test5b {
+ num? operator [](String s);
+ void operator []=(String s, num? v);
+ void test() {}
+}
+
+abstract class Test6a {
+ num operator [](String s);
+ void operator []=(String s, double v);
+ void test() {}
+}
+
+abstract class Test6b {
+ num? operator [](String s);
+ void operator []=(String s, double? v);
+ void test() {}
+}
+
+abstract class Test7a {
+ double operator [](String s);
+ void operator []=(String s, int v);
+ void test() {}
+}
+
+abstract class Test7b {
+ double? operator [](String s);
+ void operator []=(String s, int? v);
+ void test() {}
+}
+
+abstract class Test8a {
+ double operator [](String s);
+ void operator []=(String s, num v);
+ void test() {}
+}
+
+abstract class Test8b {
+ double? operator [](String s);
+ void operator []=(String s, num? v);
+ void test() {}
+}
+
+abstract class Test9a {
+ double operator [](String s);
+ void operator []=(String s, double v);
+ void test() {}
+}
+
+abstract class Test9b {
+ double? operator [](String s);
+ void operator []=(String s, double? v);
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..7d8b7c8
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,114 @@
+library test;
+
+abstract class Test1a {
+ int operator [](String s);
+ void operator []=(String s, int v);
+ void test() {}
+}
+
+abstract class Test1b {
+ int? operator [](String s);
+ void operator []=(String s, int? v);
+ void test() {}
+}
+
+abstract class Test2a {
+ int operator [](String s);
+ void operator []=(String s, num v);
+ void test() {}
+}
+
+abstract class Test2b {
+ int? operator [](String s);
+ void operator []=(String s, num? v);
+ void test() {}
+}
+
+abstract class Test3a {
+ int operator [](String s);
+ void operator []=(String s, double v);
+ void test() {}
+}
+
+abstract class Test3b {
+ int? operator [](String s);
+ void operator []=(String s, double? v);
+ void test() {}
+}
+
+abstract class Test4a {
+ num operator [](String s);
+ void operator []=(String s, int v);
+ void test() {}
+}
+
+abstract class Test4b {
+ num? operator [](String s);
+ void operator []=(String s, int? v);
+ void test() {}
+}
+
+abstract class Test5a {
+ num operator [](String s);
+ void operator []=(String s, num v);
+ void test() {}
+}
+
+abstract class Test5b {
+ num? operator [](String s);
+ void operator []=(String s, num? v);
+ void test() {}
+}
+
+abstract class Test6a {
+ num operator [](String s);
+ void operator []=(String s, double v);
+ void test() {}
+}
+
+abstract class Test6b {
+ num? operator [](String s);
+ void operator []=(String s, double? v);
+ void test() {}
+}
+
+abstract class Test7a {
+ double operator [](String s);
+ void operator []=(String s, int v);
+ void test() {}
+}
+
+abstract class Test7b {
+ double? operator [](String s);
+ void operator []=(String s, int? v);
+ void test() {}
+}
+
+abstract class Test8a {
+ double operator [](String s);
+ void operator []=(String s, num v);
+ void test() {}
+}
+
+abstract class Test8b {
+ double? operator [](String s);
+ void operator []=(String s, num? v);
+ void test() {}
+}
+
+abstract class Test9a {
+ double operator [](String s);
+ void operator []=(String s, double v);
+ void test() {}
+}
+
+abstract class Test9b {
+ double? operator [](String s);
+ void operator []=(String s, double? v);
+ void test() {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.expect
new file mode 100644
index 0000000..92dd762
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.expect
@@ -0,0 +1,232 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Test1a extends core::Object {
+ synthetic constructor •() → self::Test1a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = this.{self::Test1a::[]=}(#t1, #t2){(core::String, core::int) → void} in #t2;
+ core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = this.{self::Test1a::[]}(#t4){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = this.{self::Test1a::[]=}(#t4, #t5){(core::String, core::int) → void} in #t5;
+ core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = this.{self::Test1a::[]}(#t7){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = this.{self::Test1a::[]=}(#t7, #t8){(core::String, core::int) → void} in #t8;
+ core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = this.{self::Test1a::[]}(#t10){(core::String) → core::int} in let final void #t12 = this.{self::Test1a::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}){(core::String, core::int) → void} in #t11;
+ }
+}
+abstract class Test1b extends core::Object {
+ synthetic constructor •() → self::Test1b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = this.{self::Test1b::[]}(#t13){(core::String) → core::int?} in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = this.{self::Test1b::[]=}(#t13, #t15){(core::String, core::int?) → void} in #t15 : #t14{core::int};
+ }
+}
+abstract class Test2a extends core::Object {
+ synthetic constructor •() → self::Test2a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = this.{self::Test2a::[]=}(#t17, #t18){(core::String, core::num) → void} in #t18;
+ core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = this.{self::Test2a::[]=}(#t20, #t21){(core::String, core::num) → void} in #t21;
+ core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = this.{self::Test2a::[]=}(#t23, #t24){(core::String, core::num) → void} in #t24;
+ core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = this.{self::Test2a::[]}(#t26){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = this.{self::Test2a::[]=}(#t26, #t27){(core::String, core::num) → void} in #t27;
+ core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = this.{self::Test2a::[]}(#t29){(core::String) → core::int}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = this.{self::Test2a::[]=}(#t29, #t30){(core::String, core::num) → void} in #t30;
+ core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = this.{self::Test2a::[]}(#t32){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = this.{self::Test2a::[]=}(#t32, #t33){(core::String, core::num) → void} in #t33;
+ core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = this.{self::Test2a::[]}(#t35){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t37 = this.{self::Test2a::[]=}(#t35, #t36){(core::String, core::num) → void} in #t36;
+ core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = this.{self::Test2a::[]}(#t38){(core::String) → core::int} in let final void #t40 = this.{self::Test2a::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}){(core::String, core::num) → void} in #t39;
+ }
+}
+abstract class Test2b extends core::Object {
+ synthetic constructor •() → self::Test2b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = this.{self::Test2b::[]}(#t41){(core::String) → core::int?} in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = this.{self::Test2b::[]=}(#t41, #t43){(core::String, core::num?) → void} in #t43 : #t42{core::int};
+ core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = this.{self::Test2b::[]}(#t45){(core::String) → core::int?} in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = this.{self::Test2b::[]=}(#t45, #t47){(core::String, core::num?) → void} in #t47 : #t46{core::int};
+ core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = this.{self::Test2b::[]}(#t49){(core::String) → core::int?} in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = this.{self::Test2b::[]=}(#t49, #t51){(core::String, core::num?) → void} in #t51 : #t50{core::int};
+ }
+}
+abstract class Test3a extends core::Object {
+ synthetic constructor •() → self::Test3a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = this.{self::Test3a::[]=}(#t53, #t54){(core::String, core::double) → void} in #t54;
+ core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = this.{self::Test3a::[]}(#t56){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = this.{self::Test3a::[]=}(#t56, #t57){(core::String, core::double) → void} in #t57;
+ core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = this.{self::Test3a::[]}(#t59){(core::String) → core::int}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = this.{self::Test3a::[]=}(#t59, #t60){(core::String, core::double) → void} in #t60;
+ core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = this.{self::Test3a::[]}(#t62){(core::String) → core::int} in let final void #t64 = this.{self::Test3a::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t63;
+ }
+}
+abstract class Test3b extends core::Object {
+ synthetic constructor •() → self::Test3b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = this.{self::Test3b::[]}(#t65){(core::String) → core::int?} in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = this.{self::Test3b::[]=}(#t65, #t67){(core::String, core::double?) → void} in #t67 : #t66{core::int};
+ }
+}
+abstract class Test4a extends core::Object {
+ synthetic constructor •() → self::Test4a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = this.{self::Test4a::[]=}(#t69, #t70){(core::String, core::int) → void} in #t70;
+ }
+}
+abstract class Test4b extends core::Object {
+ synthetic constructor •() → self::Test4b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = this.{self::Test4b::[]}(#t72){(core::String) → core::num?} in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = this.{self::Test4b::[]=}(#t72, #t74){(core::String, core::int?) → void} in #t74 : #t73{core::num};
+ }
+}
+abstract class Test5a extends core::Object {
+ synthetic constructor •() → self::Test5a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = this.{self::Test5a::[]=}(#t76, #t77){(core::String, core::num) → void} in #t77;
+ core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = this.{self::Test5a::[]=}(#t79, #t80){(core::String, core::num) → void} in #t80;
+ core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = this.{self::Test5a::[]=}(#t82, #t83){(core::String, core::num) → void} in #t83;
+ core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = this.{self::Test5a::[]}(#t85){(core::String) → core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = this.{self::Test5a::[]=}(#t85, #t86){(core::String, core::num) → void} in #t86;
+ core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = this.{self::Test5a::[]}(#t88){(core::String) → core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = this.{self::Test5a::[]=}(#t88, #t89){(core::String, core::num) → void} in #t89;
+ core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = this.{self::Test5a::[]}(#t91){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = this.{self::Test5a::[]=}(#t91, #t92){(core::String, core::num) → void} in #t92;
+ core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = this.{self::Test5a::[]}(#t94){(core::String) → core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t96 = this.{self::Test5a::[]=}(#t94, #t95){(core::String, core::num) → void} in #t95;
+ core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = this.{self::Test5a::[]}(#t97){(core::String) → core::num} in let final void #t99 = this.{self::Test5a::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}){(core::String, core::num) → void} in #t98;
+ }
+}
+abstract class Test5b extends core::Object {
+ synthetic constructor •() → self::Test5b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = this.{self::Test5b::[]}(#t100){(core::String) → core::num?} in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = this.{self::Test5b::[]=}(#t100, #t102){(core::String, core::num?) → void} in #t102 : #t101{core::num};
+ core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = this.{self::Test5b::[]}(#t104){(core::String) → core::num?} in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = this.{self::Test5b::[]=}(#t104, #t106){(core::String, core::num?) → void} in #t106 : #t105{core::num};
+ core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = this.{self::Test5b::[]}(#t108){(core::String) → core::num?} in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = this.{self::Test5b::[]=}(#t108, #t110){(core::String, core::num?) → void} in #t110 : #t109{core::num};
+ }
+}
+abstract class Test6a extends core::Object {
+ synthetic constructor •() → self::Test6a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = this.{self::Test6a::[]=}(#t112, #t113){(core::String, core::double) → void} in #t113;
+ core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = this.{self::Test6a::[]}(#t115){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = this.{self::Test6a::[]=}(#t115, #t116){(core::String, core::double) → void} in #t116;
+ core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = this.{self::Test6a::[]}(#t118){(core::String) → core::num}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = this.{self::Test6a::[]=}(#t118, #t119){(core::String, core::double) → void} in #t119;
+ core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = this.{self::Test6a::[]}(#t121){(core::String) → core::num} in let final void #t123 = this.{self::Test6a::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t122;
+ }
+}
+abstract class Test6b extends core::Object {
+ synthetic constructor •() → self::Test6b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = this.{self::Test6b::[]}(#t124){(core::String) → core::num?} in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = this.{self::Test6b::[]=}(#t124, #t126){(core::String, core::double?) → void} in #t126 : #t125{core::num};
+ }
+}
+abstract class Test7a extends core::Object {
+ synthetic constructor •() → self::Test7a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = this.{self::Test7a::[]=}(#t128, #t129){(core::String, core::int) → void} in #t129;
+ }
+}
+abstract class Test7b extends core::Object {
+ synthetic constructor •() → self::Test7b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = this.{self::Test7b::[]}(#t131){(core::String) → core::double?} in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = this.{self::Test7b::[]=}(#t131, #t133){(core::String, core::int?) → void} in #t133 : #t132{core::double};
+ }
+}
+abstract class Test8a extends core::Object {
+ synthetic constructor •() → self::Test8a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = this.{self::Test8a::[]=}(#t135, #t136){(core::String, core::num) → void} in #t136;
+ core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = this.{self::Test8a::[]=}(#t138, #t139){(core::String, core::num) → void} in #t139;
+ core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = this.{self::Test8a::[]=}(#t141, #t142){(core::String, core::num) → void} in #t142;
+ core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = this.{self::Test8a::[]}(#t144){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = this.{self::Test8a::[]=}(#t144, #t145){(core::String, core::num) → void} in #t145;
+ core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = this.{self::Test8a::[]}(#t147){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = this.{self::Test8a::[]=}(#t147, #t148){(core::String, core::num) → void} in #t148;
+ core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = this.{self::Test8a::[]}(#t150){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = this.{self::Test8a::[]=}(#t150, #t151){(core::String, core::num) → void} in #t151;
+ core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = this.{self::Test8a::[]}(#t153){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t155 = this.{self::Test8a::[]=}(#t153, #t154){(core::String, core::num) → void} in #t154;
+ core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = this.{self::Test8a::[]}(#t156){(core::String) → core::double} in let final void #t158 = this.{self::Test8a::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}){(core::String, core::num) → void} in #t157;
+ }
+}
+abstract class Test8b extends core::Object {
+ synthetic constructor •() → self::Test8b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = this.{self::Test8b::[]}(#t159){(core::String) → core::double?} in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = this.{self::Test8b::[]=}(#t159, #t161){(core::String, core::num?) → void} in #t161 : #t160{core::double};
+ core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = this.{self::Test8b::[]}(#t163){(core::String) → core::double?} in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = this.{self::Test8b::[]=}(#t163, #t165){(core::String, core::num?) → void} in #t165 : #t164{core::double};
+ core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = this.{self::Test8b::[]}(#t167){(core::String) → core::double?} in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = this.{self::Test8b::[]=}(#t167, #t169){(core::String, core::num?) → void} in #t169 : #t168{core::double};
+ }
+}
+abstract class Test9a extends core::Object {
+ synthetic constructor •() → self::Test9a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = this.{self::Test9a::[]=}(#t171, #t172){(core::String, core::double) → void} in #t172;
+ core::double v7 = let final core::String #t174 = "x" in let final core::double #t175 = this.{self::Test9a::[]}(#t174){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t176 = this.{self::Test9a::[]=}(#t174, #t175){(core::String, core::double) → void} in #t175;
+ core::double v8 = let final core::String #t177 = "x" in let final core::double #t178 = this.{self::Test9a::[]}(#t177){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t179 = this.{self::Test9a::[]=}(#t177, #t178){(core::String, core::double) → void} in #t178;
+ core::double v9 = let final core::String #t180 = "x" in let final core::double #t181 = this.{self::Test9a::[]}(#t180){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t182 = this.{self::Test9a::[]=}(#t180, #t181){(core::String, core::double) → void} in #t181;
+ core::double v10 = let final core::String #t183 = "x" in let final core::double #t184 = this.{self::Test9a::[]}(#t183){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t185 = this.{self::Test9a::[]=}(#t183, #t184){(core::String, core::double) → void} in #t184;
+ core::double v11 = let final core::String #t186 = "x" in let final core::double #t187 = this.{self::Test9a::[]}(#t186){(core::String) → core::double} in let final void #t188 = this.{self::Test9a::[]=}(#t186, #t187.{core::double::+}(1){(core::num) → core::double}){(core::String, core::double) → void} in #t187;
+ }
+}
+abstract class Test9b extends core::Object {
+ synthetic constructor •() → self::Test9b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::double v6 = let final core::String #t189 = "x" in let final core::double? #t190 = this.{self::Test9b::[]}(#t189){(core::String) → core::double?} in #t190 == null ?{core::double} let final core::double #t191 = self::getDouble() in let final void #t192 = this.{self::Test9b::[]=}(#t189, #t191){(core::String, core::double?) → void} in #t191 : #t190{core::double};
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..92dd762
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.modular.expect
@@ -0,0 +1,232 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Test1a extends core::Object {
+ synthetic constructor •() → self::Test1a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = this.{self::Test1a::[]=}(#t1, #t2){(core::String, core::int) → void} in #t2;
+ core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = this.{self::Test1a::[]}(#t4){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = this.{self::Test1a::[]=}(#t4, #t5){(core::String, core::int) → void} in #t5;
+ core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = this.{self::Test1a::[]}(#t7){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = this.{self::Test1a::[]=}(#t7, #t8){(core::String, core::int) → void} in #t8;
+ core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = this.{self::Test1a::[]}(#t10){(core::String) → core::int} in let final void #t12 = this.{self::Test1a::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}){(core::String, core::int) → void} in #t11;
+ }
+}
+abstract class Test1b extends core::Object {
+ synthetic constructor •() → self::Test1b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = this.{self::Test1b::[]}(#t13){(core::String) → core::int?} in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = this.{self::Test1b::[]=}(#t13, #t15){(core::String, core::int?) → void} in #t15 : #t14{core::int};
+ }
+}
+abstract class Test2a extends core::Object {
+ synthetic constructor •() → self::Test2a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = this.{self::Test2a::[]=}(#t17, #t18){(core::String, core::num) → void} in #t18;
+ core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = this.{self::Test2a::[]=}(#t20, #t21){(core::String, core::num) → void} in #t21;
+ core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = this.{self::Test2a::[]=}(#t23, #t24){(core::String, core::num) → void} in #t24;
+ core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = this.{self::Test2a::[]}(#t26){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = this.{self::Test2a::[]=}(#t26, #t27){(core::String, core::num) → void} in #t27;
+ core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = this.{self::Test2a::[]}(#t29){(core::String) → core::int}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = this.{self::Test2a::[]=}(#t29, #t30){(core::String, core::num) → void} in #t30;
+ core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = this.{self::Test2a::[]}(#t32){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = this.{self::Test2a::[]=}(#t32, #t33){(core::String, core::num) → void} in #t33;
+ core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = this.{self::Test2a::[]}(#t35){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t37 = this.{self::Test2a::[]=}(#t35, #t36){(core::String, core::num) → void} in #t36;
+ core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = this.{self::Test2a::[]}(#t38){(core::String) → core::int} in let final void #t40 = this.{self::Test2a::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}){(core::String, core::num) → void} in #t39;
+ }
+}
+abstract class Test2b extends core::Object {
+ synthetic constructor •() → self::Test2b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = this.{self::Test2b::[]}(#t41){(core::String) → core::int?} in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = this.{self::Test2b::[]=}(#t41, #t43){(core::String, core::num?) → void} in #t43 : #t42{core::int};
+ core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = this.{self::Test2b::[]}(#t45){(core::String) → core::int?} in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = this.{self::Test2b::[]=}(#t45, #t47){(core::String, core::num?) → void} in #t47 : #t46{core::int};
+ core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = this.{self::Test2b::[]}(#t49){(core::String) → core::int?} in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = this.{self::Test2b::[]=}(#t49, #t51){(core::String, core::num?) → void} in #t51 : #t50{core::int};
+ }
+}
+abstract class Test3a extends core::Object {
+ synthetic constructor •() → self::Test3a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = this.{self::Test3a::[]=}(#t53, #t54){(core::String, core::double) → void} in #t54;
+ core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = this.{self::Test3a::[]}(#t56){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = this.{self::Test3a::[]=}(#t56, #t57){(core::String, core::double) → void} in #t57;
+ core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = this.{self::Test3a::[]}(#t59){(core::String) → core::int}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = this.{self::Test3a::[]=}(#t59, #t60){(core::String, core::double) → void} in #t60;
+ core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = this.{self::Test3a::[]}(#t62){(core::String) → core::int} in let final void #t64 = this.{self::Test3a::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t63;
+ }
+}
+abstract class Test3b extends core::Object {
+ synthetic constructor •() → self::Test3b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = this.{self::Test3b::[]}(#t65){(core::String) → core::int?} in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = this.{self::Test3b::[]=}(#t65, #t67){(core::String, core::double?) → void} in #t67 : #t66{core::int};
+ }
+}
+abstract class Test4a extends core::Object {
+ synthetic constructor •() → self::Test4a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = this.{self::Test4a::[]=}(#t69, #t70){(core::String, core::int) → void} in #t70;
+ }
+}
+abstract class Test4b extends core::Object {
+ synthetic constructor •() → self::Test4b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = this.{self::Test4b::[]}(#t72){(core::String) → core::num?} in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = this.{self::Test4b::[]=}(#t72, #t74){(core::String, core::int?) → void} in #t74 : #t73{core::num};
+ }
+}
+abstract class Test5a extends core::Object {
+ synthetic constructor •() → self::Test5a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = this.{self::Test5a::[]=}(#t76, #t77){(core::String, core::num) → void} in #t77;
+ core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = this.{self::Test5a::[]=}(#t79, #t80){(core::String, core::num) → void} in #t80;
+ core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = this.{self::Test5a::[]=}(#t82, #t83){(core::String, core::num) → void} in #t83;
+ core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = this.{self::Test5a::[]}(#t85){(core::String) → core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = this.{self::Test5a::[]=}(#t85, #t86){(core::String, core::num) → void} in #t86;
+ core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = this.{self::Test5a::[]}(#t88){(core::String) → core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = this.{self::Test5a::[]=}(#t88, #t89){(core::String, core::num) → void} in #t89;
+ core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = this.{self::Test5a::[]}(#t91){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = this.{self::Test5a::[]=}(#t91, #t92){(core::String, core::num) → void} in #t92;
+ core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = this.{self::Test5a::[]}(#t94){(core::String) → core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t96 = this.{self::Test5a::[]=}(#t94, #t95){(core::String, core::num) → void} in #t95;
+ core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = this.{self::Test5a::[]}(#t97){(core::String) → core::num} in let final void #t99 = this.{self::Test5a::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}){(core::String, core::num) → void} in #t98;
+ }
+}
+abstract class Test5b extends core::Object {
+ synthetic constructor •() → self::Test5b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = this.{self::Test5b::[]}(#t100){(core::String) → core::num?} in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = this.{self::Test5b::[]=}(#t100, #t102){(core::String, core::num?) → void} in #t102 : #t101{core::num};
+ core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = this.{self::Test5b::[]}(#t104){(core::String) → core::num?} in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = this.{self::Test5b::[]=}(#t104, #t106){(core::String, core::num?) → void} in #t106 : #t105{core::num};
+ core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = this.{self::Test5b::[]}(#t108){(core::String) → core::num?} in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = this.{self::Test5b::[]=}(#t108, #t110){(core::String, core::num?) → void} in #t110 : #t109{core::num};
+ }
+}
+abstract class Test6a extends core::Object {
+ synthetic constructor •() → self::Test6a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = this.{self::Test6a::[]=}(#t112, #t113){(core::String, core::double) → void} in #t113;
+ core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = this.{self::Test6a::[]}(#t115){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = this.{self::Test6a::[]=}(#t115, #t116){(core::String, core::double) → void} in #t116;
+ core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = this.{self::Test6a::[]}(#t118){(core::String) → core::num}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = this.{self::Test6a::[]=}(#t118, #t119){(core::String, core::double) → void} in #t119;
+ core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = this.{self::Test6a::[]}(#t121){(core::String) → core::num} in let final void #t123 = this.{self::Test6a::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t122;
+ }
+}
+abstract class Test6b extends core::Object {
+ synthetic constructor •() → self::Test6b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = this.{self::Test6b::[]}(#t124){(core::String) → core::num?} in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = this.{self::Test6b::[]=}(#t124, #t126){(core::String, core::double?) → void} in #t126 : #t125{core::num};
+ }
+}
+abstract class Test7a extends core::Object {
+ synthetic constructor •() → self::Test7a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = this.{self::Test7a::[]=}(#t128, #t129){(core::String, core::int) → void} in #t129;
+ }
+}
+abstract class Test7b extends core::Object {
+ synthetic constructor •() → self::Test7b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = this.{self::Test7b::[]}(#t131){(core::String) → core::double?} in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = this.{self::Test7b::[]=}(#t131, #t133){(core::String, core::int?) → void} in #t133 : #t132{core::double};
+ }
+}
+abstract class Test8a extends core::Object {
+ synthetic constructor •() → self::Test8a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = this.{self::Test8a::[]=}(#t135, #t136){(core::String, core::num) → void} in #t136;
+ core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = this.{self::Test8a::[]=}(#t138, #t139){(core::String, core::num) → void} in #t139;
+ core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = this.{self::Test8a::[]=}(#t141, #t142){(core::String, core::num) → void} in #t142;
+ core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = this.{self::Test8a::[]}(#t144){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = this.{self::Test8a::[]=}(#t144, #t145){(core::String, core::num) → void} in #t145;
+ core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = this.{self::Test8a::[]}(#t147){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = this.{self::Test8a::[]=}(#t147, #t148){(core::String, core::num) → void} in #t148;
+ core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = this.{self::Test8a::[]}(#t150){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = this.{self::Test8a::[]=}(#t150, #t151){(core::String, core::num) → void} in #t151;
+ core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = this.{self::Test8a::[]}(#t153){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t155 = this.{self::Test8a::[]=}(#t153, #t154){(core::String, core::num) → void} in #t154;
+ core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = this.{self::Test8a::[]}(#t156){(core::String) → core::double} in let final void #t158 = this.{self::Test8a::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}){(core::String, core::num) → void} in #t157;
+ }
+}
+abstract class Test8b extends core::Object {
+ synthetic constructor •() → self::Test8b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = this.{self::Test8b::[]}(#t159){(core::String) → core::double?} in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = this.{self::Test8b::[]=}(#t159, #t161){(core::String, core::num?) → void} in #t161 : #t160{core::double};
+ core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = this.{self::Test8b::[]}(#t163){(core::String) → core::double?} in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = this.{self::Test8b::[]=}(#t163, #t165){(core::String, core::num?) → void} in #t165 : #t164{core::double};
+ core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = this.{self::Test8b::[]}(#t167){(core::String) → core::double?} in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = this.{self::Test8b::[]=}(#t167, #t169){(core::String, core::num?) → void} in #t169 : #t168{core::double};
+ }
+}
+abstract class Test9a extends core::Object {
+ synthetic constructor •() → self::Test9a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = this.{self::Test9a::[]=}(#t171, #t172){(core::String, core::double) → void} in #t172;
+ core::double v7 = let final core::String #t174 = "x" in let final core::double #t175 = this.{self::Test9a::[]}(#t174){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t176 = this.{self::Test9a::[]=}(#t174, #t175){(core::String, core::double) → void} in #t175;
+ core::double v8 = let final core::String #t177 = "x" in let final core::double #t178 = this.{self::Test9a::[]}(#t177){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t179 = this.{self::Test9a::[]=}(#t177, #t178){(core::String, core::double) → void} in #t178;
+ core::double v9 = let final core::String #t180 = "x" in let final core::double #t181 = this.{self::Test9a::[]}(#t180){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t182 = this.{self::Test9a::[]=}(#t180, #t181){(core::String, core::double) → void} in #t181;
+ core::double v10 = let final core::String #t183 = "x" in let final core::double #t184 = this.{self::Test9a::[]}(#t183){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t185 = this.{self::Test9a::[]=}(#t183, #t184){(core::String, core::double) → void} in #t184;
+ core::double v11 = let final core::String #t186 = "x" in let final core::double #t187 = this.{self::Test9a::[]}(#t186){(core::String) → core::double} in let final void #t188 = this.{self::Test9a::[]=}(#t186, #t187.{core::double::+}(1){(core::num) → core::double}){(core::String, core::double) → void} in #t187;
+ }
+}
+abstract class Test9b extends core::Object {
+ synthetic constructor •() → self::Test9b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::double v6 = let final core::String #t189 = "x" in let final core::double? #t190 = this.{self::Test9b::[]}(#t189){(core::String) → core::double?} in #t190 == null ?{core::double} let final core::double #t191 = self::getDouble() in let final void #t192 = this.{self::Test9b::[]=}(#t189, #t191){(core::String, core::double?) → void} in #t191 : #t190{core::double};
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..f1fc4fc
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.outline.expect
@@ -0,0 +1,156 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Test1a extends core::Object {
+ synthetic constructor •() → self::Test1a
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void
+ ;
+}
+abstract class Test1b extends core::Object {
+ synthetic constructor •() → self::Test1b
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test2a extends core::Object {
+ synthetic constructor •() → self::Test2a
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void
+ ;
+}
+abstract class Test2b extends core::Object {
+ synthetic constructor •() → self::Test2b
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test3a extends core::Object {
+ synthetic constructor •() → self::Test3a
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void
+ ;
+}
+abstract class Test3b extends core::Object {
+ synthetic constructor •() → self::Test3b
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test4a extends core::Object {
+ synthetic constructor •() → self::Test4a
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void
+ ;
+}
+abstract class Test4b extends core::Object {
+ synthetic constructor •() → self::Test4b
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test5a extends core::Object {
+ synthetic constructor •() → self::Test5a
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void
+ ;
+}
+abstract class Test5b extends core::Object {
+ synthetic constructor •() → self::Test5b
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test6a extends core::Object {
+ synthetic constructor •() → self::Test6a
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void
+ ;
+}
+abstract class Test6b extends core::Object {
+ synthetic constructor •() → self::Test6b
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test7a extends core::Object {
+ synthetic constructor •() → self::Test7a
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void
+ ;
+}
+abstract class Test7b extends core::Object {
+ synthetic constructor •() → self::Test7b
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test8a extends core::Object {
+ synthetic constructor •() → self::Test8a
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void
+ ;
+}
+abstract class Test8b extends core::Object {
+ synthetic constructor •() → self::Test8b
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void
+ ;
+}
+abstract class Test9a extends core::Object {
+ synthetic constructor •() → self::Test9a
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void
+ ;
+}
+abstract class Test9b extends core::Object {
+ synthetic constructor •() → self::Test9b
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..ec83945
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_this_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,339 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Test1a extends core::Object {
+ synthetic constructor •() → self::Test1a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t1 = "x" in let final core::int #t2 = self::getInt() in let final void #t3 = this.{self::Test1a::[]=}(#t1, #t2){(core::String, core::int) → void} in #t2;
+ core::int v7 = let final core::String #t4 = "x" in let final core::int #t5 = this.{self::Test1a::[]}(#t4){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = this.{self::Test1a::[]=}(#t4, #t5){(core::String, core::int) → void} in #t5;
+ core::int v10 = let final core::String #t7 = "x" in let final core::int #t8 = this.{self::Test1a::[]}(#t7){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = this.{self::Test1a::[]=}(#t7, #t8){(core::String, core::int) → void} in #t8;
+ core::int v11 = let final core::String #t10 = "x" in let final core::int #t11 = this.{self::Test1a::[]}(#t10){(core::String) → core::int} in let final void #t12 = this.{self::Test1a::[]=}(#t10, #t11.{core::num::+}(1){(core::num) → core::int}){(core::String, core::int) → void} in #t11;
+ }
+}
+abstract class Test1b extends core::Object {
+ synthetic constructor •() → self::Test1b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::int v4 = let final core::String #t13 = "x" in let final core::int? #t14 = this.{self::Test1b::[]}(#t13){(core::String) → core::int?} in #t14 == null ?{core::int} let final core::int #t15 = self::getInt() in let final void #t16 = this.{self::Test1b::[]=}(#t13, #t15){(core::String, core::int?) → void} in #t15 : #t14{core::int};
+ }
+}
+abstract class Test2a extends core::Object {
+ synthetic constructor •() → self::Test2a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t17 = "x" in let final core::int #t18 = self::getInt() in let final void #t19 = this.{self::Test2a::[]=}(#t17, #t18){(core::String, core::num) → void} in #t18;
+ core::num v2 = let final core::String #t20 = "x" in let final core::num #t21 = self::getNum() in let final void #t22 = this.{self::Test2a::[]=}(#t20, #t21){(core::String, core::num) → void} in #t21;
+ core::double v3 = let final core::String #t23 = "x" in let final core::double #t24 = self::getDouble() in let final void #t25 = this.{self::Test2a::[]=}(#t23, #t24){(core::String, core::num) → void} in #t24;
+ core::int v7 = let final core::String #t26 = "x" in let final core::int #t27 = this.{self::Test2a::[]}(#t26){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t28 = this.{self::Test2a::[]=}(#t26, #t27){(core::String, core::num) → void} in #t27;
+ core::num v8 = let final core::String #t29 = "x" in let final core::num #t30 = this.{self::Test2a::[]}(#t29){(core::String) → core::int}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t31 = this.{self::Test2a::[]=}(#t29, #t30){(core::String, core::num) → void} in #t30;
+ core::double v9 = let final core::String #t32 = "x" in let final core::double #t33 = this.{self::Test2a::[]}(#t32){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t34 = this.{self::Test2a::[]=}(#t32, #t33){(core::String, core::num) → void} in #t33;
+ core::int v10 = let final core::String #t35 = "x" in let final core::int #t36 = this.{self::Test2a::[]}(#t35){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t37 = this.{self::Test2a::[]=}(#t35, #t36){(core::String, core::num) → void} in #t36;
+ core::int v11 = let final core::String #t38 = "x" in let final core::int #t39 = this.{self::Test2a::[]}(#t38){(core::String) → core::int} in let final void #t40 = this.{self::Test2a::[]=}(#t38, #t39.{core::num::+}(1){(core::num) → core::int}){(core::String, core::num) → void} in #t39;
+ }
+}
+abstract class Test2b extends core::Object {
+ synthetic constructor •() → self::Test2b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::int v4 = let final core::String #t41 = "x" in let final core::int? #t42 = this.{self::Test2b::[]}(#t41){(core::String) → core::int?} in #t42 == null ?{core::int} let final core::int #t43 = self::getInt() in let final void #t44 = this.{self::Test2b::[]=}(#t41, #t43){(core::String, core::num?) → void} in #t43 : #t42{core::int};
+ core::num v5 = let final core::String #t45 = "x" in let final core::int? #t46 = this.{self::Test2b::[]}(#t45){(core::String) → core::int?} in #t46 == null ?{core::num} let final core::num #t47 = self::getNum() in let final void #t48 = this.{self::Test2b::[]=}(#t45, #t47){(core::String, core::num?) → void} in #t47 : #t46{core::int};
+ core::num v6 = let final core::String #t49 = "x" in let final core::int? #t50 = this.{self::Test2b::[]}(#t49){(core::String) → core::int?} in #t50 == null ?{core::num} let final core::double #t51 = self::getDouble() in let final void #t52 = this.{self::Test2b::[]=}(#t49, #t51){(core::String, core::num?) → void} in #t51 : #t50{core::int};
+ }
+}
+abstract class Test3a extends core::Object {
+ synthetic constructor •() → self::Test3a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t53 = "x" in let final core::double #t54 = self::getDouble() in let final void #t55 = this.{self::Test3a::[]=}(#t53, #t54){(core::String, core::double) → void} in #t54;
+ core::double v9 = let final core::String #t56 = "x" in let final core::double #t57 = this.{self::Test3a::[]}(#t56){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t58 = this.{self::Test3a::[]=}(#t56, #t57){(core::String, core::double) → void} in #t57;
+ core::double v10 = let final core::String #t59 = "x" in let final core::double #t60 = this.{self::Test3a::[]}(#t59){(core::String) → core::int}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t61 = this.{self::Test3a::[]=}(#t59, #t60){(core::String, core::double) → void} in #t60;
+ core::int v11 = let final core::String #t62 = "x" in let final core::int #t63 = this.{self::Test3a::[]}(#t62){(core::String) → core::int} in let final void #t64 = this.{self::Test3a::[]=}(#t62, #t63.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t63;
+ }
+}
+abstract class Test3b extends core::Object {
+ synthetic constructor •() → self::Test3b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::int?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::num v6 = let final core::String #t65 = "x" in let final core::int? #t66 = this.{self::Test3b::[]}(#t65){(core::String) → core::int?} in #t66 == null ?{core::num} let final core::double #t67 = self::getDouble() in let final void #t68 = this.{self::Test3b::[]=}(#t65, #t67){(core::String, core::double?) → void} in #t67 : #t66{core::int};
+ }
+}
+abstract class Test4a extends core::Object {
+ synthetic constructor •() → self::Test4a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t69 = "x" in let final core::int #t70 = self::getInt() in let final void #t71 = this.{self::Test4a::[]=}(#t69, #t70){(core::String, core::int) → void} in #t70;
+ }
+}
+abstract class Test4b extends core::Object {
+ synthetic constructor •() → self::Test4b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t72 = "x" in let final core::num? #t73 = this.{self::Test4b::[]}(#t72){(core::String) → core::num?} in #t73 == null ?{core::num} let final core::int #t74 = self::getInt() in let final void #t75 = this.{self::Test4b::[]=}(#t72, #t74){(core::String, core::int?) → void} in #t74 : #t73{core::num};
+ }
+}
+abstract class Test5a extends core::Object {
+ synthetic constructor •() → self::Test5a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t76 = "x" in let final core::int #t77 = self::getInt() in let final void #t78 = this.{self::Test5a::[]=}(#t76, #t77){(core::String, core::num) → void} in #t77;
+ core::num v2 = let final core::String #t79 = "x" in let final core::num #t80 = self::getNum() in let final void #t81 = this.{self::Test5a::[]=}(#t79, #t80){(core::String, core::num) → void} in #t80;
+ core::double v3 = let final core::String #t82 = "x" in let final core::double #t83 = self::getDouble() in let final void #t84 = this.{self::Test5a::[]=}(#t82, #t83){(core::String, core::num) → void} in #t83;
+ core::num v7 = let final core::String #t85 = "x" in let final core::num #t86 = this.{self::Test5a::[]}(#t85){(core::String) → core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t87 = this.{self::Test5a::[]=}(#t85, #t86){(core::String, core::num) → void} in #t86;
+ core::num v8 = let final core::String #t88 = "x" in let final core::num #t89 = this.{self::Test5a::[]}(#t88){(core::String) → core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t90 = this.{self::Test5a::[]=}(#t88, #t89){(core::String, core::num) → void} in #t89;
+ core::double v9 = let final core::String #t91 = "x" in let final core::double #t92 = this.{self::Test5a::[]}(#t91){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t93 = this.{self::Test5a::[]=}(#t91, #t92){(core::String, core::num) → void} in #t92;
+ core::num v10 = let final core::String #t94 = "x" in let final core::num #t95 = this.{self::Test5a::[]}(#t94){(core::String) → core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t96 = this.{self::Test5a::[]=}(#t94, #t95){(core::String, core::num) → void} in #t95;
+ core::num v11 = let final core::String #t97 = "x" in let final core::num #t98 = this.{self::Test5a::[]}(#t97){(core::String) → core::num} in let final void #t99 = this.{self::Test5a::[]=}(#t97, #t98.{core::num::+}(1){(core::num) → core::num}){(core::String, core::num) → void} in #t98;
+ }
+}
+abstract class Test5b extends core::Object {
+ synthetic constructor •() → self::Test5b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t100 = "x" in let final core::num? #t101 = this.{self::Test5b::[]}(#t100){(core::String) → core::num?} in #t101 == null ?{core::num} let final core::int #t102 = self::getInt() in let final void #t103 = this.{self::Test5b::[]=}(#t100, #t102){(core::String, core::num?) → void} in #t102 : #t101{core::num};
+ core::num v5 = let final core::String #t104 = "x" in let final core::num? #t105 = this.{self::Test5b::[]}(#t104){(core::String) → core::num?} in #t105 == null ?{core::num} let final core::num #t106 = self::getNum() in let final void #t107 = this.{self::Test5b::[]=}(#t104, #t106){(core::String, core::num?) → void} in #t106 : #t105{core::num};
+ core::num v6 = let final core::String #t108 = "x" in let final core::num? #t109 = this.{self::Test5b::[]}(#t108){(core::String) → core::num?} in #t109 == null ?{core::num} let final core::double #t110 = self::getDouble() in let final void #t111 = this.{self::Test5b::[]=}(#t108, #t110){(core::String, core::num?) → void} in #t110 : #t109{core::num};
+ }
+}
+abstract class Test6a extends core::Object {
+ synthetic constructor •() → self::Test6a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t112 = "x" in let final core::double #t113 = self::getDouble() in let final void #t114 = this.{self::Test6a::[]=}(#t112, #t113){(core::String, core::double) → void} in #t113;
+ core::double v9 = let final core::String #t115 = "x" in let final core::double #t116 = this.{self::Test6a::[]}(#t115){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t117 = this.{self::Test6a::[]=}(#t115, #t116){(core::String, core::double) → void} in #t116;
+ core::double v10 = let final core::String #t118 = "x" in let final core::double #t119 = this.{self::Test6a::[]}(#t118){(core::String) → core::num}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t120 = this.{self::Test6a::[]=}(#t118, #t119){(core::String, core::double) → void} in #t119;
+ core::num v11 = let final core::String #t121 = "x" in let final core::num #t122 = this.{self::Test6a::[]}(#t121){(core::String) → core::num} in let final void #t123 = this.{self::Test6a::[]=}(#t121, #t122.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t122;
+ }
+}
+abstract class Test6b extends core::Object {
+ synthetic constructor •() → self::Test6b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::num?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::num v6 = let final core::String #t124 = "x" in let final core::num? #t125 = this.{self::Test6b::[]}(#t124){(core::String) → core::num?} in #t125 == null ?{core::num} let final core::double #t126 = self::getDouble() in let final void #t127 = this.{self::Test6b::[]=}(#t124, #t126){(core::String, core::double?) → void} in #t126 : #t125{core::num};
+ }
+}
+abstract class Test7a extends core::Object {
+ synthetic constructor •() → self::Test7a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::int v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t128 = "x" in let final core::int #t129 = self::getInt() in let final void #t130 = this.{self::Test7a::[]=}(#t128, #t129){(core::String, core::int) → void} in #t129;
+ }
+}
+abstract class Test7b extends core::Object {
+ synthetic constructor •() → self::Test7b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::int? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t131 = "x" in let final core::double? #t132 = this.{self::Test7b::[]}(#t131){(core::String) → core::double?} in #t132 == null ?{core::num} let final core::int #t133 = self::getInt() in let final void #t134 = this.{self::Test7b::[]=}(#t131, #t133){(core::String, core::int?) → void} in #t133 : #t132{core::double};
+ }
+}
+abstract class Test8a extends core::Object {
+ synthetic constructor •() → self::Test8a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::num v) → void;
+ method test() → void {
+ core::int v1 = let final core::String #t135 = "x" in let final core::int #t136 = self::getInt() in let final void #t137 = this.{self::Test8a::[]=}(#t135, #t136){(core::String, core::num) → void} in #t136;
+ core::num v2 = let final core::String #t138 = "x" in let final core::num #t139 = self::getNum() in let final void #t140 = this.{self::Test8a::[]=}(#t138, #t139){(core::String, core::num) → void} in #t139;
+ core::double v3 = let final core::String #t141 = "x" in let final core::double #t142 = self::getDouble() in let final void #t143 = this.{self::Test8a::[]=}(#t141, #t142){(core::String, core::num) → void} in #t142;
+ core::double v7 = let final core::String #t144 = "x" in let final core::double #t145 = this.{self::Test8a::[]}(#t144){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t146 = this.{self::Test8a::[]=}(#t144, #t145){(core::String, core::num) → void} in #t145;
+ core::double v8 = let final core::String #t147 = "x" in let final core::double #t148 = this.{self::Test8a::[]}(#t147){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t149 = this.{self::Test8a::[]=}(#t147, #t148){(core::String, core::num) → void} in #t148;
+ core::double v9 = let final core::String #t150 = "x" in let final core::double #t151 = this.{self::Test8a::[]}(#t150){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t152 = this.{self::Test8a::[]=}(#t150, #t151){(core::String, core::num) → void} in #t151;
+ core::double v10 = let final core::String #t153 = "x" in let final core::double #t154 = this.{self::Test8a::[]}(#t153){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t155 = this.{self::Test8a::[]=}(#t153, #t154){(core::String, core::num) → void} in #t154;
+ core::double v11 = let final core::String #t156 = "x" in let final core::double #t157 = this.{self::Test8a::[]}(#t156){(core::String) → core::double} in let final void #t158 = this.{self::Test8a::[]=}(#t156, #t157.{core::double::+}(1){(core::num) → core::double}){(core::String, core::num) → void} in #t157;
+ }
+}
+abstract class Test8b extends core::Object {
+ synthetic constructor •() → self::Test8b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::num? v) → void;
+ method test() → void {
+ core::num v4 = let final core::String #t159 = "x" in let final core::double? #t160 = this.{self::Test8b::[]}(#t159){(core::String) → core::double?} in #t160 == null ?{core::num} let final core::int #t161 = self::getInt() in let final void #t162 = this.{self::Test8b::[]=}(#t159, #t161){(core::String, core::num?) → void} in #t161 : #t160{core::double};
+ core::num v5 = let final core::String #t163 = "x" in let final core::double? #t164 = this.{self::Test8b::[]}(#t163){(core::String) → core::double?} in #t164 == null ?{core::num} let final core::num #t165 = self::getNum() in let final void #t166 = this.{self::Test8b::[]=}(#t163, #t165){(core::String, core::num?) → void} in #t165 : #t164{core::double};
+ core::double v6 = let final core::String #t167 = "x" in let final core::double? #t168 = this.{self::Test8b::[]}(#t167){(core::String) → core::double?} in #t168 == null ?{core::double} let final core::double #t169 = self::getDouble() in let final void #t170 = this.{self::Test8b::[]=}(#t167, #t169){(core::String, core::num?) → void} in #t169 : #t168{core::double};
+ }
+}
+abstract class Test9a extends core::Object {
+ synthetic constructor •() → self::Test9a
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double;
+ abstract operator []=(core::String s, core::double v) → void;
+ method test() → void {
+ core::double v3 = let final core::String #t171 = "x" in let final core::double #t172 = self::getDouble() in let final void #t173 = this.{self::Test9a::[]=}(#t171, #t172){(core::String, core::double) → void} in #t172;
+ core::double v7 = let final core::String #t174 = "x" in let final core::double #t175 = this.{self::Test9a::[]}(#t174){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t176 = this.{self::Test9a::[]=}(#t174, #t175){(core::String, core::double) → void} in #t175;
+ core::double v8 = let final core::String #t177 = "x" in let final core::double #t178 = this.{self::Test9a::[]}(#t177){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t179 = this.{self::Test9a::[]=}(#t177, #t178){(core::String, core::double) → void} in #t178;
+ core::double v9 = let final core::String #t180 = "x" in let final core::double #t181 = this.{self::Test9a::[]}(#t180){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t182 = this.{self::Test9a::[]=}(#t180, #t181){(core::String, core::double) → void} in #t181;
+ core::double v10 = let final core::String #t183 = "x" in let final core::double #t184 = this.{self::Test9a::[]}(#t183){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t185 = this.{self::Test9a::[]=}(#t183, #t184){(core::String, core::double) → void} in #t184;
+ core::double v11 = let final core::String #t186 = "x" in let final core::double #t187 = this.{self::Test9a::[]}(#t186){(core::String) → core::double} in let final void #t188 = this.{self::Test9a::[]=}(#t186, #t187.{core::double::+}(1){(core::num) → core::double}){(core::String, core::double) → void} in #t187;
+ }
+}
+abstract class Test9b extends core::Object {
+ synthetic constructor •() → self::Test9b
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → core::double?;
+ abstract operator []=(core::String s, core::double? v) → void;
+ method test() → void {
+ core::double v6 = let final core::String #t189 = "x" in let final core::double? #t190 = this.{self::Test9b::[]}(#t189){(core::String) → core::double?} in #t190 == null ?{core::double} let final core::double #t191 = self::getDouble() in let final void #t192 = this.{self::Test9b::[]=}(#t189, #t191){(core::String, core::double?) → void} in #t191 : #t190{core::double};
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
+
+
+Extra constant evaluation status:
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:17:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:20:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:20:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:23:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:23:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:26:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:26:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:36:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:36:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:45:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:47:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:49:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:52:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:52:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:55:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:55:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:59:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:59:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:62:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:62:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:65:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:65:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:75:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:75:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:78:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:78:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:81:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:81:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:90:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:94:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:94:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:97:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:97:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:100:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:100:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:110:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:110:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:119:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:129:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:129:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:138:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:140:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:142:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:145:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:145:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:148:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:148:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:152:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:152:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:155:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:155:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:158:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:158:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:168:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:168:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:171:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:171:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:174:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:174:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:183:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:187:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:187:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:190:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:190:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:193:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:193:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:203:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:203:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:212:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:222:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:222:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:231:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:233:57 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:235:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:239:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:239:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:243:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:243:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:247:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:247:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:250:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:250:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:254:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:254:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:264:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:264:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:267:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:267:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:270:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:270:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:279:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:283:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:283:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:287:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:287:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:291:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:291:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:294:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:294:9 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:298:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:298:13 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:308:60 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_this_upwards2.dart:308:60 -> StringConstant("x")
+Extra constant evaluation: evaluated: 753, effectively constant: 103
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart
index 7980f3f..73267db 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,278 +17,278 @@
}
void test1(Test<int, int> t) {
- var /*@ type=int* */ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=int* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=int**/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=int* */ v7 =
+ var /*@type=int**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getNum();
- var /*@ type=int* */ v10 =
+ var /*@type=int**/ v10 =
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=int* */ v11 =
+ var /*@type=int**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
}
void test2(Test<int, num> t) {
- var /*@ type=int* */ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
- var /*@ type=int* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=int**/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getDouble();
- var /*@ type=int* */ v7 =
+ var /*@type=int**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getDouble();
- var /*@ type=int* */ v10 =
+ var /*@type=int**/ v10 =
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=int* */ v11 =
+ var /*@type=int**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
}
void test3(Test<int, double> t) {
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getDouble();
- var /*@ type=int* */ v7 =
+ var /*@type=int**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getDouble();
- var /*@ type=int* */ v10 =
+ var /*@type=int**/ v10 =
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=int* */ v11 =
+ var /*@type=int**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
}
void test4(Test<num, int> t) {
- var /*@ type=int* */ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v7 =
+ var /*@type=num**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getNum();
- var /*@ type=num* */ v10 =
+ var /*@type=num**/ v10 =
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=num* */ v11 =
+ var /*@type=num**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
}
void test5(Test<num, num> t) {
- var /*@ type=int* */ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getDouble();
- var /*@ type=num* */ v7 =
+ var /*@type=num**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getNum();
- var /*@ type=num* */ v9 =
+ var /*@type=num**/ v9 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getDouble();
- var /*@ type=num* */ v10 =
+ var /*@type=num**/ v10 =
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=num* */ v11 =
+ var /*@type=num**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
}
void test6(Test<num, double> t) {
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=num* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getDouble();
- var /*@ type=num* */ v7 =
+ var /*@type=num**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getInt();
- var /*@ type=num* */ v8 =
+ var /*@type=num**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getNum();
- var /*@ type=num* */ v9 =
+ var /*@type=num**/ v9 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
getDouble();
- var /*@ type=num* */ v10 =
+ var /*@type=num**/ v10 =
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=num* */ v11 =
+ var /*@type=num**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
}
void test7(Test<double, int> t) {
- var /*@ type=int* */ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v7 =
+ var /*@type=double**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getNum();
- var /*@ type=double* */ v10 =
+ var /*@type=double**/ v10 =
/*@target=double.+*/ ++t
/*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=double* */ v11 =
+ var /*@type=double**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
}
void test8(Test<double, num> t) {
- var /*@ type=int* */ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+ var /*@type=int**/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v4 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getInt();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=double**/ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getDouble();
- var /*@ type=double* */ v7 =
+ var /*@type=double**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getDouble();
- var /*@ type=double* */ v10 =
+ var /*@type=double**/ v10 =
/*@target=double.+*/ ++t
/*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=double* */ v11 =
+ var /*@type=double**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
}
void test9(Test<double, double> t) {
- var /*@ type=num* */ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+ var /*@type=num**/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
- var /*@ type=double* */ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+ var /*@type=double**/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
- var /*@ type=num* */ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=num**/ v5 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getNum();
- var /*@ type=double* */ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
+ var /*@type=double**/ v6 = t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x']
??= getDouble();
- var /*@ type=double* */ v7 =
+ var /*@type=double**/ v7 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getInt();
- var /*@ type=double* */ v8 =
+ var /*@type=double**/ v8 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
getDouble();
- var /*@ type=double* */ v10 =
+ var /*@type=double**/ v10 =
/*@target=double.+*/ ++t
/*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
- var /*@ type=double* */ v11 =
+ var /*@type=double**/ v11 =
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.expect
index 895c644..4bb592eb 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.expect
@@ -2,31 +2,31 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:90:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:92:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:102:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:104:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:105:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:107:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:211:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:213:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:215:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:217:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:219:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:221:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ ++t
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:223:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:225:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
// ^
//
@@ -84,15 +84,15 @@
core::double* v3 = let final self::Test<core::int*, core::double*>* #t86 = t in let final core::String* #t87 = "x" in let final core::double* #t88 = self::getDouble() in let final void #t89 = #t86.{self::Test::[]=}(#t87, #t88){(core::String*, core::double*) →* void} in #t88;
core::num* v5 = let final self::Test<core::int*, core::double*>* #t90 = t in let final core::String* #t91 = "x" in let final core::int* #t92 = #t90.{self::Test::[]}(#t91){(core::String*) →* core::int*} in #t92 == null ?{core::num*} let final core::num* #t93 = self::getNum() as{TypeError} core::double* in let final void #t94 = #t90.{self::Test::[]=}(#t91, #t93){(core::String*, core::double*) →* void} in #t93 : #t92;
core::num* v6 = let final self::Test<core::int*, core::double*>* #t95 = t in let final core::String* #t96 = "x" in let final core::int* #t97 = #t95.{self::Test::[]}(#t96){(core::String*) →* core::int*} in #t97 == null ?{core::num*} let final core::double* #t98 = self::getDouble() in let final void #t99 = #t95.{self::Test::[]=}(#t96, #t98){(core::String*, core::double*) →* void} in #t98 : #t97;
- core::int* v7 = let final self::Test<core::int*, core::double*>* #t100 = t in let final core::String* #t101 = "x" in let final core::int* #t102 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:90:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v7 = let final self::Test<core::int*, core::double*>* #t100 = t in let final core::String* #t101 = "x" in let final core::int* #t102 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:92:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
^" in #t100.{self::Test::[]}(#t101){(core::String*) →* core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t103 = #t100.{self::Test::[]=}(#t101, #t102){(core::String*, core::double*) →* void} in #t102;
core::num* v8 = let final self::Test<core::int*, core::double*>* #t104 = t in let final core::String* #t105 = "x" in let final core::num* #t106 = #t104.{self::Test::[]}(#t105){(core::String*) →* core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::double* in let final void #t107 = #t104.{self::Test::[]=}(#t105, #t106){(core::String*, core::double*) →* void} in #t106;
core::double* v9 = let final self::Test<core::int*, core::double*>* #t108 = t in let final core::String* #t109 = "x" in let final core::double* #t110 = #t108.{self::Test::[]}(#t109){(core::String*) →* core::int*}.{core::num::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t111 = #t108.{self::Test::[]=}(#t109, #t110){(core::String*, core::double*) →* void} in #t110;
- core::int* v10 = let final self::Test<core::int*, core::double*>* #t112 = t in let final core::String* #t113 = "x" in let final core::int* #t114 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:102:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v10 = let final self::Test<core::int*, core::double*>* #t112 = t in let final core::String* #t113 = "x" in let final core::int* #t114 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:104:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
^" in #t112.{self::Test::[]}(#t113){(core::String*) →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t115 = #t112.{self::Test::[]=}(#t113, #t114){(core::String*, core::double*) →* void} in #t114;
- core::int* v11 = let final self::Test<core::int*, core::double*>* #t116 = t in let final core::String* #t117 = "x" in let final core::int* #t118 = #t116.{self::Test::[]}(#t117){(core::String*) →* core::int*} in let final void #t119 = #t116.{self::Test::[]=}(#t117, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:105:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v11 = let final self::Test<core::int*, core::double*>* #t116 = t in let final core::String* #t117 = "x" in let final core::int* #t118 = #t116.{self::Test::[]}(#t117){(core::String*) →* core::int*} in let final void #t119 = #t116.{self::Test::[]=}(#t117, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:107:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
^" in #t118.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double*){(core::String*, core::double*) →* void} in #t118;
}
@@ -135,16 +135,16 @@
core::num* v2 = let final self::Test<core::double*, core::int*>* #t243 = t in let final core::String* #t244 = "x" in let final core::num* #t245 = self::getNum() as{TypeError} core::int* in let final void #t246 = #t243.{self::Test::[]=}(#t244, #t245){(core::String*, core::int*) →* void} in #t245;
core::num* v4 = let final self::Test<core::double*, core::int*>* #t247 = t in let final core::String* #t248 = "x" in let final core::double* #t249 = #t247.{self::Test::[]}(#t248){(core::String*) →* core::double*} in #t249 == null ?{core::num*} let final core::int* #t250 = self::getInt() in let final void #t251 = #t247.{self::Test::[]=}(#t248, #t250){(core::String*, core::int*) →* void} in #t250 : #t249;
core::num* v5 = let final self::Test<core::double*, core::int*>* #t252 = t in let final core::String* #t253 = "x" in let final core::double* #t254 = #t252.{self::Test::[]}(#t253){(core::String*) →* core::double*} in #t254 == null ?{core::num*} let final core::num* #t255 = self::getNum() as{TypeError} core::int* in let final void #t256 = #t252.{self::Test::[]=}(#t253, #t255){(core::String*, core::int*) →* void} in #t255 : #t254;
- core::double* v7 = let final self::Test<core::double*, core::int*>* #t257 = t in let final core::String* #t258 = "x" in let final core::double* #t259 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:211:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v7 = let final self::Test<core::double*, core::int*>* #t257 = t in let final core::String* #t258 = "x" in let final core::double* #t259 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:213:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
^" in #t257.{self::Test::[]}(#t258){(core::String*) →* core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t260 = #t257.{self::Test::[]=}(#t258, #t259){(core::String*, core::int*) →* void} in #t259;
- core::double* v8 = let final self::Test<core::double*, core::int*>* #t261 = t in let final core::String* #t262 = "x" in let final core::double* #t263 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:215:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v8 = let final self::Test<core::double*, core::int*>* #t261 = t in let final core::String* #t262 = "x" in let final core::double* #t263 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:217:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
^" in #t261.{self::Test::[]}(#t262){(core::String*) →* core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t264 = #t261.{self::Test::[]=}(#t262, #t263){(core::String*, core::int*) →* void} in #t263;
- core::double* v10 = let final self::Test<core::double*, core::int*>* #t265 = t in let final core::String* #t266 = "x" in let final core::double* #t267 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:219:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v10 = let final self::Test<core::double*, core::int*>* #t265 = t in let final core::String* #t266 = "x" in let final core::double* #t267 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:221:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ ++t
^" in #t265.{self::Test::[]}(#t266){(core::String*) →* core::double*}.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t268 = #t265.{self::Test::[]=}(#t266, #t267){(core::String*, core::int*) →* void} in #t267;
- core::double* v11 = let final self::Test<core::double*, core::int*>* #t269 = t in let final core::String* #t270 = "x" in let final core::double* #t271 = #t269.{self::Test::[]}(#t270){(core::String*) →* core::double*} in let final void #t272 = #t269.{self::Test::[]=}(#t270, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:223:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v11 = let final self::Test<core::double*, core::int*>* #t269 = t in let final core::String* #t270 = "x" in let final core::double* #t271 = #t269.{self::Test::[]}(#t270){(core::String*) →* core::double*} in let final void #t272 = #t269.{self::Test::[]=}(#t270, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:225:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
^" in #t271.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int*){(core::String*, core::int*) →* void} in #t271;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.modular.expect
index 895c644..4bb592eb 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart.weak.modular.expect
@@ -2,31 +2,31 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:90:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:92:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:102:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:104:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:105:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:107:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:211:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:213:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:215:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:217:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:219:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:221:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// /*@target=double.+*/ ++t
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:223:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:225:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
// t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
// ^
//
@@ -84,15 +84,15 @@
core::double* v3 = let final self::Test<core::int*, core::double*>* #t86 = t in let final core::String* #t87 = "x" in let final core::double* #t88 = self::getDouble() in let final void #t89 = #t86.{self::Test::[]=}(#t87, #t88){(core::String*, core::double*) →* void} in #t88;
core::num* v5 = let final self::Test<core::int*, core::double*>* #t90 = t in let final core::String* #t91 = "x" in let final core::int* #t92 = #t90.{self::Test::[]}(#t91){(core::String*) →* core::int*} in #t92 == null ?{core::num*} let final core::num* #t93 = self::getNum() as{TypeError} core::double* in let final void #t94 = #t90.{self::Test::[]=}(#t91, #t93){(core::String*, core::double*) →* void} in #t93 : #t92;
core::num* v6 = let final self::Test<core::int*, core::double*>* #t95 = t in let final core::String* #t96 = "x" in let final core::int* #t97 = #t95.{self::Test::[]}(#t96){(core::String*) →* core::int*} in #t97 == null ?{core::num*} let final core::double* #t98 = self::getDouble() in let final void #t99 = #t95.{self::Test::[]=}(#t96, #t98){(core::String*, core::double*) →* void} in #t98 : #t97;
- core::int* v7 = let final self::Test<core::int*, core::double*>* #t100 = t in let final core::String* #t101 = "x" in let final core::int* #t102 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:90:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v7 = let final self::Test<core::int*, core::double*>* #t100 = t in let final core::String* #t101 = "x" in let final core::int* #t102 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:92:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
^" in #t100.{self::Test::[]}(#t101){(core::String*) →* core::int*}.{core::num::+}(self::getInt()){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t103 = #t100.{self::Test::[]=}(#t101, #t102){(core::String*, core::double*) →* void} in #t102;
core::num* v8 = let final self::Test<core::int*, core::double*>* #t104 = t in let final core::String* #t105 = "x" in let final core::num* #t106 = #t104.{self::Test::[]}(#t105){(core::String*) →* core::int*}.{core::num::+}(self::getNum()){(core::num*) →* core::num*} as{TypeError} core::double* in let final void #t107 = #t104.{self::Test::[]=}(#t105, #t106){(core::String*, core::double*) →* void} in #t106;
core::double* v9 = let final self::Test<core::int*, core::double*>* #t108 = t in let final core::String* #t109 = "x" in let final core::double* #t110 = #t108.{self::Test::[]}(#t109){(core::String*) →* core::int*}.{core::num::+}(self::getDouble()){(core::num*) →* core::double*} in let final void #t111 = #t108.{self::Test::[]=}(#t109, #t110){(core::String*, core::double*) →* void} in #t110;
- core::int* v10 = let final self::Test<core::int*, core::double*>* #t112 = t in let final core::String* #t113 = "x" in let final core::int* #t114 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:102:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v10 = let final self::Test<core::int*, core::double*>* #t112 = t in let final core::String* #t113 = "x" in let final core::int* #t114 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:104:25: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
/*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
^" in #t112.{self::Test::[]}(#t113){(core::String*) →* core::int*}.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double* in let final void #t115 = #t112.{self::Test::[]=}(#t113, #t114){(core::String*, core::double*) →* void} in #t114;
- core::int* v11 = let final self::Test<core::int*, core::double*>* #t116 = t in let final core::String* #t117 = "x" in let final core::int* #t118 = #t116.{self::Test::[]}(#t117){(core::String*) →* core::int*} in let final void #t119 = #t116.{self::Test::[]=}(#t117, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:105:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
+ core::int* v11 = let final self::Test<core::int*, core::double*>* #t116 = t in let final core::String* #t117 = "x" in let final core::int* #t118 = #t116.{self::Test::[]}(#t117){(core::String*) →* core::int*} in let final void #t119 = #t116.{self::Test::[]=}(#t117, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:107:74: Error: A value of type 'int' can't be assigned to a variable of type 'double'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
^" in #t118.{core::num::+}(1){(core::num*) →* core::int*} as{TypeError} core::double*){(core::String*, core::double*) →* void} in #t118;
}
@@ -135,16 +135,16 @@
core::num* v2 = let final self::Test<core::double*, core::int*>* #t243 = t in let final core::String* #t244 = "x" in let final core::num* #t245 = self::getNum() as{TypeError} core::int* in let final void #t246 = #t243.{self::Test::[]=}(#t244, #t245){(core::String*, core::int*) →* void} in #t245;
core::num* v4 = let final self::Test<core::double*, core::int*>* #t247 = t in let final core::String* #t248 = "x" in let final core::double* #t249 = #t247.{self::Test::[]}(#t248){(core::String*) →* core::double*} in #t249 == null ?{core::num*} let final core::int* #t250 = self::getInt() in let final void #t251 = #t247.{self::Test::[]=}(#t248, #t250){(core::String*, core::int*) →* void} in #t250 : #t249;
core::num* v5 = let final self::Test<core::double*, core::int*>* #t252 = t in let final core::String* #t253 = "x" in let final core::double* #t254 = #t252.{self::Test::[]}(#t253){(core::String*) →* core::double*} in #t254 == null ?{core::num*} let final core::num* #t255 = self::getNum() as{TypeError} core::int* in let final void #t256 = #t252.{self::Test::[]=}(#t253, #t255){(core::String*, core::int*) →* void} in #t255 : #t254;
- core::double* v7 = let final self::Test<core::double*, core::int*>* #t257 = t in let final core::String* #t258 = "x" in let final core::double* #t259 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:211:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v7 = let final self::Test<core::double*, core::int*>* #t257 = t in let final core::String* #t258 = "x" in let final core::double* #t259 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:213:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
^" in #t257.{self::Test::[]}(#t258){(core::String*) →* core::double*}.{core::double::+}(self::getInt()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t260 = #t257.{self::Test::[]=}(#t258, #t259){(core::String*, core::int*) →* void} in #t259;
- core::double* v8 = let final self::Test<core::double*, core::int*>* #t261 = t in let final core::String* #t262 = "x" in let final core::double* #t263 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:215:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v8 = let final self::Test<core::double*, core::int*>* #t261 = t in let final core::String* #t262 = "x" in let final core::double* #t263 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:217:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
^" in #t261.{self::Test::[]}(#t262){(core::String*) →* core::double*}.{core::double::+}(self::getNum()){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t264 = #t261.{self::Test::[]=}(#t262, #t263){(core::String*, core::int*) →* void} in #t263;
- core::double* v10 = let final self::Test<core::double*, core::int*>* #t265 = t in let final core::String* #t266 = "x" in let final core::double* #t267 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:219:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v10 = let final self::Test<core::double*, core::int*>* #t265 = t in let final core::String* #t266 = "x" in let final core::double* #t267 = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:221:28: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
/*@target=double.+*/ ++t
^" in #t265.{self::Test::[]}(#t266){(core::String*) →* core::double*}.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int* in let final void #t268 = #t265.{self::Test::[]=}(#t266, #t267){(core::String*, core::int*) →* void} in #t267;
- core::double* v11 = let final self::Test<core::double*, core::int*>* #t269 = t in let final core::String* #t270 = "x" in let final core::double* #t271 = #t269.{self::Test::[]}(#t270){(core::String*) →* core::double*} in let final void #t272 = #t269.{self::Test::[]=}(#t270, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:223:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
+ core::double* v11 = let final self::Test<core::double*, core::int*>* #t269 = t in let final core::String* #t270 = "x" in let final core::double* #t271 = #t269.{self::Test::[]}(#t270){(core::String*) →* core::double*} in let final void #t272 = #t269.{self::Test::[]=}(#t270, invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards.dart:225:77: Error: A value of type 'double' can't be assigned to a variable of type 'int'.
t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
^" in #t271.{core::double::+}(1){(core::num*) →* core::double*} as{TypeError} core::int*){(core::String*, core::int*) →* void} in #t271;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart
new file mode 100644
index 0000000..763f124
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart
@@ -0,0 +1,217 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+abstract class Test<T, U> {
+ T operator [](String s);
+ void operator []=(String s, U v);
+}
+
+abstract class Test2<T, U> {
+ T? operator [](String s);
+ void operator []=(String s, U? v);
+}
+
+void test1(Test<int, int> t, Test2<int, int> t2) {
+ var /*@type=int*/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+
+ var /*@type=int*/ v4 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=int*/ v7 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=int*/ v10 =
+ /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=int*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
+}
+
+void test2(Test<int, num> t, Test2<int, num> t2) {
+ var /*@type=int*/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+
+ var /*@type=int*/ v4 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=num*/ v6 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getDouble();
+
+ var /*@type=int*/ v7 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=num*/ v8 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getDouble();
+
+ var /*@type=int*/ v10 =
+ /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=int*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
+}
+
+void test3(Test<int, double> t, Test2<int, double> t2) {
+ var /*@type=double*/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+
+ var /*@type=num*/ v6 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getDouble();
+
+ var /*@type=double*/ v9 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getDouble();
+
+ var /*@type=double*/ v10 =
+ /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=int*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
+}
+
+void test4(Test<num, int> t, Test2<num, int> t2) {
+ var /*@type=int*/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v4 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getInt();
+}
+
+void test5(Test<num, num> t, Test2<num, num> t2) {
+ var /*@type=int*/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+
+ var /*@type=num*/ v4 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=num*/ v6 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getDouble();
+
+ var /*@type=num*/ v7 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=num*/ v8 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getDouble();
+
+ var /*@type=num*/ v10 =
+ /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=num*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
+}
+
+void test6(Test<num, double> t, Test2<num, double> t2) {
+ var /*@type=double*/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+
+ var /*@type=num*/ v6 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getDouble();
+
+ var /*@type=double*/ v9 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ +=
+ getDouble();
+
+ var /*@type=double*/ v10 =
+ /*@target=num.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=num*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=num.+*/ ++;
+}
+
+void test7(Test<double, int> t, Test2<double, int> t2) {
+ var /*@type=int*/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+
+ st var /*@type=num*/ v4 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getInt();
+}
+
+void test8(Test<double, num> t, Test2<double, num> t2) {
+ var /*@type=int*/ v1 = t /*@target=Test.[]=*/ ['x'] = getInt();
+
+ var /*@type=num*/ v2 = t /*@target=Test.[]=*/ ['x'] = getNum();
+
+ var /*@type=double*/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+
+ var /*@type=num*/ v4 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getInt();
+
+ var /*@type=num*/ v5 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getNum();
+
+ var /*@type=double*/ v6 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getDouble();
+
+ var /*@type=double*/ v7 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
+ getInt();
+
+ var /*@type=double*/ v8 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
+ getDouble();
+
+ var /*@type=double*/ v10 =
+ /*@target=double.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=double*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
+}
+
+void test9(Test<double, double> t, Test2<double, double> t2) {
+ var /*@type=double*/ v3 = t /*@target=Test.[]=*/ ['x'] = getDouble();
+
+ var /*@type=double*/ v6 =
+ t2 /*@target=Test2.[]*/ /*@target=Test2.[]=*/ ['x'] ??= getDouble();
+
+ var /*@type=double*/ v7 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
+ getInt();
+
+ var /*@type=double*/ v8 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
+ getNum();
+
+ var /*@type=double*/ v9 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ +=
+ getDouble();
+
+ var /*@type=double*/ v10 =
+ /*@target=double.+*/ ++t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'];
+
+ var /*@type=double*/ v11 =
+ t /*@target=Test.[]*/ /*@target=Test.[]=*/ ['x'] /*@target=double.+*/ ++;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..84519d5
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.textual_outline.expect
@@ -0,0 +1,26 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+abstract class Test<T, U> {
+ T operator [](String s);
+ void operator []=(String s, U v);
+}
+
+abstract class Test2<T, U> {
+ T? operator [](String s);
+ void operator []=(String s, U? v);
+}
+
+void test1(Test<int, int> t, Test2<int, int> t2) {}
+void test2(Test<int, num> t, Test2<int, num> t2) {}
+void test3(Test<int, double> t, Test2<int, double> t2) {}
+void test4(Test<num, int> t, Test2<num, int> t2) {}
+void test5(Test<num, num> t, Test2<num, num> t2) {}
+void test6(Test<num, double> t, Test2<num, double> t2) {}
+void test7(Test<double, int> t, Test2<double, int> t2) {}
+void test8(Test<double, num> t, Test2<double, num> t2) {}
+void test9(Test<double, double> t, Test2<double, double> t2) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..14dc23c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,25 @@
+library test;
+
+abstract class Test<T, U> {
+ T operator [](String s);
+ void operator []=(String s, U v);
+}
+
+abstract class Test2<T, U> {
+ T? operator [](String s);
+ void operator []=(String s, U? v);
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
+void test1(Test<int, int> t, Test2<int, int> t2) {}
+void test2(Test<int, num> t, Test2<int, num> t2) {}
+void test3(Test<int, double> t, Test2<int, double> t2) {}
+void test4(Test<num, int> t, Test2<num, int> t2) {}
+void test5(Test<num, num> t, Test2<num, num> t2) {}
+void test6(Test<num, double> t, Test2<num, double> t2) {}
+void test7(Test<double, int> t, Test2<double, int> t2) {}
+void test8(Test<double, num> t, Test2<double, num> t2) {}
+void test9(Test<double, double> t, Test2<double, double> t2) {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.expect
new file mode 100644
index 0000000..8489231
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.expect
@@ -0,0 +1,116 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Expected ';' after this.
+// st var /*@type=num*/ v4 =
+// ^^
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Undefined name 'st'.
+// st var /*@type=num*/ v4 =
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class Test<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test<self::Test::T%, self::Test::U%>
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → self::Test::T%;
+ abstract operator []=(core::String s, covariant-by-class self::Test::U% v) → void;
+}
+abstract class Test2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test2<self::Test2::T%, self::Test2::U%>
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → self::Test2::T?;
+ abstract operator []=(core::String s, covariant-by-class self::Test2::U? v) → void;
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1(self::Test<core::int, core::int> t, self::Test2<core::int, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::int, core::int> #t1 = t in let final core::String #t2 = "x" in let final core::int #t3 = self::getInt() in let final void #t4 = #t1.{self::Test::[]=}(#t2, #t3){(core::String, core::int) → void} in #t3;
+ core::int v4 = let final self::Test2<core::int, core::int> #t5 = t2 in let final core::String #t6 = "x" in let final core::int? #t7 = #t5.{self::Test2::[]}(#t6){(core::String) → core::int?} in #t7 == null ?{core::int} let final core::int #t8 = self::getInt() in let final void #t9 = #t5.{self::Test2::[]=}(#t6, #t8){(core::String, core::int?) → void} in #t8 : #t7{core::int};
+ core::int v7 = let final self::Test<core::int, core::int> #t10 = t in let final core::String #t11 = "x" in let final core::int #t12 = #t10.{self::Test::[]}(#t11){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t13 = #t10.{self::Test::[]=}(#t11, #t12){(core::String, core::int) → void} in #t12;
+ core::int v10 = let final self::Test<core::int, core::int> #t14 = t in let final core::String #t15 = "x" in let final core::int #t16 = #t14.{self::Test::[]}(#t15){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t17 = #t14.{self::Test::[]=}(#t15, #t16){(core::String, core::int) → void} in #t16;
+ core::int v11 = let final self::Test<core::int, core::int> #t18 = t in let final core::String #t19 = "x" in let final core::int #t20 = #t18.{self::Test::[]}(#t19){(core::String) → core::int} in let final void #t21 = #t18.{self::Test::[]=}(#t19, #t20.{core::num::+}(1){(core::num) → core::int}){(core::String, core::int) → void} in #t20;
+}
+static method test2(self::Test<core::int, core::num> t, self::Test2<core::int, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::int, core::num> #t22 = t in let final core::String #t23 = "x" in let final core::int #t24 = self::getInt() in let final void #t25 = #t22.{self::Test::[]=}(#t23, #t24){(core::String, core::num) → void} in #t24;
+ core::num v2 = let final self::Test<core::int, core::num> #t26 = t in let final core::String #t27 = "x" in let final core::num #t28 = self::getNum() in let final void #t29 = #t26.{self::Test::[]=}(#t27, #t28){(core::String, core::num) → void} in #t28;
+ core::double v3 = let final self::Test<core::int, core::num> #t30 = t in let final core::String #t31 = "x" in let final core::double #t32 = self::getDouble() in let final void #t33 = #t30.{self::Test::[]=}(#t31, #t32){(core::String, core::num) → void} in #t32;
+ core::int v4 = let final self::Test2<core::int, core::num> #t34 = t2 in let final core::String #t35 = "x" in let final core::int? #t36 = #t34.{self::Test2::[]}(#t35){(core::String) → core::int?} in #t36 == null ?{core::int} let final core::int #t37 = self::getInt() in let final void #t38 = #t34.{self::Test2::[]=}(#t35, #t37){(core::String, core::num?) → void} in #t37 : #t36{core::int};
+ core::num v5 = let final self::Test2<core::int, core::num> #t39 = t2 in let final core::String #t40 = "x" in let final core::int? #t41 = #t39.{self::Test2::[]}(#t40){(core::String) → core::int?} in #t41 == null ?{core::num} let final core::num #t42 = self::getNum() in let final void #t43 = #t39.{self::Test2::[]=}(#t40, #t42){(core::String, core::num?) → void} in #t42 : #t41{core::int};
+ core::num v6 = let final self::Test2<core::int, core::num> #t44 = t2 in let final core::String #t45 = "x" in let final core::int? #t46 = #t44.{self::Test2::[]}(#t45){(core::String) → core::int?} in #t46 == null ?{core::num} let final core::double #t47 = self::getDouble() in let final void #t48 = #t44.{self::Test2::[]=}(#t45, #t47){(core::String, core::num?) → void} in #t47 : #t46{core::int};
+ core::int v7 = let final self::Test<core::int, core::num> #t49 = t in let final core::String #t50 = "x" in let final core::int #t51 = #t49.{self::Test::[]}(#t50){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t52 = #t49.{self::Test::[]=}(#t50, #t51){(core::String, core::num) → void} in #t51;
+ core::num v8 = let final self::Test<core::int, core::num> #t53 = t in let final core::String #t54 = "x" in let final core::num #t55 = #t53.{self::Test::[]}(#t54){(core::String) → core::int}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t56 = #t53.{self::Test::[]=}(#t54, #t55){(core::String, core::num) → void} in #t55;
+ core::double v9 = let final self::Test<core::int, core::num> #t57 = t in let final core::String #t58 = "x" in let final core::double #t59 = #t57.{self::Test::[]}(#t58){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t60 = #t57.{self::Test::[]=}(#t58, #t59){(core::String, core::num) → void} in #t59;
+ core::int v10 = let final self::Test<core::int, core::num> #t61 = t in let final core::String #t62 = "x" in let final core::int #t63 = #t61.{self::Test::[]}(#t62){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t64 = #t61.{self::Test::[]=}(#t62, #t63){(core::String, core::num) → void} in #t63;
+ core::int v11 = let final self::Test<core::int, core::num> #t65 = t in let final core::String #t66 = "x" in let final core::int #t67 = #t65.{self::Test::[]}(#t66){(core::String) → core::int} in let final void #t68 = #t65.{self::Test::[]=}(#t66, #t67.{core::num::+}(1){(core::num) → core::int}){(core::String, core::num) → void} in #t67;
+}
+static method test3(self::Test<core::int, core::double> t, self::Test2<core::int, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::int, core::double> #t69 = t in let final core::String #t70 = "x" in let final core::double #t71 = self::getDouble() in let final void #t72 = #t69.{self::Test::[]=}(#t70, #t71){(core::String, core::double) → void} in #t71;
+ core::num v6 = let final self::Test2<core::int, core::double> #t73 = t2 in let final core::String #t74 = "x" in let final core::int? #t75 = #t73.{self::Test2::[]}(#t74){(core::String) → core::int?} in #t75 == null ?{core::num} let final core::double #t76 = self::getDouble() in let final void #t77 = #t73.{self::Test2::[]=}(#t74, #t76){(core::String, core::double?) → void} in #t76 : #t75{core::int};
+ core::double v9 = let final self::Test<core::int, core::double> #t78 = t in let final core::String #t79 = "x" in let final core::double #t80 = #t78.{self::Test::[]}(#t79){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t81 = #t78.{self::Test::[]=}(#t79, #t80){(core::String, core::double) → void} in #t80;
+ core::double v10 = let final self::Test<core::int, core::double> #t82 = t in let final core::String #t83 = "x" in let final core::double #t84 = #t82.{self::Test::[]}(#t83){(core::String) → core::int}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t85 = #t82.{self::Test::[]=}(#t83, #t84){(core::String, core::double) → void} in #t84;
+ core::int v11 = let final self::Test<core::int, core::double> #t86 = t in let final core::String #t87 = "x" in let final core::int #t88 = #t86.{self::Test::[]}(#t87){(core::String) → core::int} in let final void #t89 = #t86.{self::Test::[]=}(#t87, #t88.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t88;
+}
+static method test4(self::Test<core::num, core::int> t, self::Test2<core::num, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::num, core::int> #t90 = t in let final core::String #t91 = "x" in let final core::int #t92 = self::getInt() in let final void #t93 = #t90.{self::Test::[]=}(#t91, #t92){(core::String, core::int) → void} in #t92;
+ core::num v4 = let final self::Test2<core::num, core::int> #t94 = t2 in let final core::String #t95 = "x" in let final core::num? #t96 = #t94.{self::Test2::[]}(#t95){(core::String) → core::num?} in #t96 == null ?{core::num} let final core::int #t97 = self::getInt() in let final void #t98 = #t94.{self::Test2::[]=}(#t95, #t97){(core::String, core::int?) → void} in #t97 : #t96{core::num};
+}
+static method test5(self::Test<core::num, core::num> t, self::Test2<core::num, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::num, core::num> #t99 = t in let final core::String #t100 = "x" in let final core::int #t101 = self::getInt() in let final void #t102 = #t99.{self::Test::[]=}(#t100, #t101){(core::String, core::num) → void} in #t101;
+ core::num v2 = let final self::Test<core::num, core::num> #t103 = t in let final core::String #t104 = "x" in let final core::num #t105 = self::getNum() in let final void #t106 = #t103.{self::Test::[]=}(#t104, #t105){(core::String, core::num) → void} in #t105;
+ core::double v3 = let final self::Test<core::num, core::num> #t107 = t in let final core::String #t108 = "x" in let final core::double #t109 = self::getDouble() in let final void #t110 = #t107.{self::Test::[]=}(#t108, #t109){(core::String, core::num) → void} in #t109;
+ core::num v4 = let final self::Test2<core::num, core::num> #t111 = t2 in let final core::String #t112 = "x" in let final core::num? #t113 = #t111.{self::Test2::[]}(#t112){(core::String) → core::num?} in #t113 == null ?{core::num} let final core::int #t114 = self::getInt() in let final void #t115 = #t111.{self::Test2::[]=}(#t112, #t114){(core::String, core::num?) → void} in #t114 : #t113{core::num};
+ core::num v5 = let final self::Test2<core::num, core::num> #t116 = t2 in let final core::String #t117 = "x" in let final core::num? #t118 = #t116.{self::Test2::[]}(#t117){(core::String) → core::num?} in #t118 == null ?{core::num} let final core::num #t119 = self::getNum() in let final void #t120 = #t116.{self::Test2::[]=}(#t117, #t119){(core::String, core::num?) → void} in #t119 : #t118{core::num};
+ core::num v6 = let final self::Test2<core::num, core::num> #t121 = t2 in let final core::String #t122 = "x" in let final core::num? #t123 = #t121.{self::Test2::[]}(#t122){(core::String) → core::num?} in #t123 == null ?{core::num} let final core::double #t124 = self::getDouble() in let final void #t125 = #t121.{self::Test2::[]=}(#t122, #t124){(core::String, core::num?) → void} in #t124 : #t123{core::num};
+ core::num v7 = let final self::Test<core::num, core::num> #t126 = t in let final core::String #t127 = "x" in let final core::num #t128 = #t126.{self::Test::[]}(#t127){(core::String) → core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t129 = #t126.{self::Test::[]=}(#t127, #t128){(core::String, core::num) → void} in #t128;
+ core::num v8 = let final self::Test<core::num, core::num> #t130 = t in let final core::String #t131 = "x" in let final core::num #t132 = #t130.{self::Test::[]}(#t131){(core::String) → core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t133 = #t130.{self::Test::[]=}(#t131, #t132){(core::String, core::num) → void} in #t132;
+ core::double v9 = let final self::Test<core::num, core::num> #t134 = t in let final core::String #t135 = "x" in let final core::double #t136 = #t134.{self::Test::[]}(#t135){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t137 = #t134.{self::Test::[]=}(#t135, #t136){(core::String, core::num) → void} in #t136;
+ core::num v10 = let final self::Test<core::num, core::num> #t138 = t in let final core::String #t139 = "x" in let final core::num #t140 = #t138.{self::Test::[]}(#t139){(core::String) → core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t141 = #t138.{self::Test::[]=}(#t139, #t140){(core::String, core::num) → void} in #t140;
+ core::num v11 = let final self::Test<core::num, core::num> #t142 = t in let final core::String #t143 = "x" in let final core::num #t144 = #t142.{self::Test::[]}(#t143){(core::String) → core::num} in let final void #t145 = #t142.{self::Test::[]=}(#t143, #t144.{core::num::+}(1){(core::num) → core::num}){(core::String, core::num) → void} in #t144;
+}
+static method test6(self::Test<core::num, core::double> t, self::Test2<core::num, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::num, core::double> #t146 = t in let final core::String #t147 = "x" in let final core::double #t148 = self::getDouble() in let final void #t149 = #t146.{self::Test::[]=}(#t147, #t148){(core::String, core::double) → void} in #t148;
+ core::num v6 = let final self::Test2<core::num, core::double> #t150 = t2 in let final core::String #t151 = "x" in let final core::num? #t152 = #t150.{self::Test2::[]}(#t151){(core::String) → core::num?} in #t152 == null ?{core::num} let final core::double #t153 = self::getDouble() in let final void #t154 = #t150.{self::Test2::[]=}(#t151, #t153){(core::String, core::double?) → void} in #t153 : #t152{core::num};
+ core::double v9 = let final self::Test<core::num, core::double> #t155 = t in let final core::String #t156 = "x" in let final core::double #t157 = #t155.{self::Test::[]}(#t156){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t158 = #t155.{self::Test::[]=}(#t156, #t157){(core::String, core::double) → void} in #t157;
+ core::double v10 = let final self::Test<core::num, core::double> #t159 = t in let final core::String #t160 = "x" in let final core::double #t161 = #t159.{self::Test::[]}(#t160){(core::String) → core::num}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t162 = #t159.{self::Test::[]=}(#t160, #t161){(core::String, core::double) → void} in #t161;
+ core::num v11 = let final self::Test<core::num, core::double> #t163 = t in let final core::String #t164 = "x" in let final core::num #t165 = #t163.{self::Test::[]}(#t164){(core::String) → core::num} in let final void #t166 = #t163.{self::Test::[]=}(#t164, #t165.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t165;
+}
+static method test7(self::Test<core::double, core::int> t, self::Test2<core::double, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::double, core::int> #t167 = t in let final core::String #t168 = "x" in let final core::int #t169 = self::getInt() in let final void #t170 = #t167.{self::Test::[]=}(#t168, #t169){(core::String, core::int) → void} in #t169;
+ invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Undefined name 'st'.
+ st var /*@type=num*/ v4 =
+ ^^";
+ core::num v4 = let final self::Test2<core::double, core::int> #t171 = t2 in let final core::String #t172 = "x" in let final core::double? #t173 = #t171.{self::Test2::[]}(#t172){(core::String) → core::double?} in #t173 == null ?{core::num} let final core::int #t174 = self::getInt() in let final void #t175 = #t171.{self::Test2::[]=}(#t172, #t174){(core::String, core::int?) → void} in #t174 : #t173{core::double};
+}
+static method test8(self::Test<core::double, core::num> t, self::Test2<core::double, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::double, core::num> #t176 = t in let final core::String #t177 = "x" in let final core::int #t178 = self::getInt() in let final void #t179 = #t176.{self::Test::[]=}(#t177, #t178){(core::String, core::num) → void} in #t178;
+ core::num v2 = let final self::Test<core::double, core::num> #t180 = t in let final core::String #t181 = "x" in let final core::num #t182 = self::getNum() in let final void #t183 = #t180.{self::Test::[]=}(#t181, #t182){(core::String, core::num) → void} in #t182;
+ core::double v3 = let final self::Test<core::double, core::num> #t184 = t in let final core::String #t185 = "x" in let final core::double #t186 = self::getDouble() in let final void #t187 = #t184.{self::Test::[]=}(#t185, #t186){(core::String, core::num) → void} in #t186;
+ core::num v4 = let final self::Test2<core::double, core::num> #t188 = t2 in let final core::String #t189 = "x" in let final core::double? #t190 = #t188.{self::Test2::[]}(#t189){(core::String) → core::double?} in #t190 == null ?{core::num} let final core::int #t191 = self::getInt() in let final void #t192 = #t188.{self::Test2::[]=}(#t189, #t191){(core::String, core::num?) → void} in #t191 : #t190{core::double};
+ core::num v5 = let final self::Test2<core::double, core::num> #t193 = t2 in let final core::String #t194 = "x" in let final core::double? #t195 = #t193.{self::Test2::[]}(#t194){(core::String) → core::double?} in #t195 == null ?{core::num} let final core::num #t196 = self::getNum() in let final void #t197 = #t193.{self::Test2::[]=}(#t194, #t196){(core::String, core::num?) → void} in #t196 : #t195{core::double};
+ core::double v6 = let final self::Test2<core::double, core::num> #t198 = t2 in let final core::String #t199 = "x" in let final core::double? #t200 = #t198.{self::Test2::[]}(#t199){(core::String) → core::double?} in #t200 == null ?{core::double} let final core::double #t201 = self::getDouble() in let final void #t202 = #t198.{self::Test2::[]=}(#t199, #t201){(core::String, core::num?) → void} in #t201 : #t200{core::double};
+ core::double v7 = let final self::Test<core::double, core::num> #t203 = t in let final core::String #t204 = "x" in let final core::double #t205 = #t203.{self::Test::[]}(#t204){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t206 = #t203.{self::Test::[]=}(#t204, #t205){(core::String, core::num) → void} in #t205;
+ core::double v8 = let final self::Test<core::double, core::num> #t207 = t in let final core::String #t208 = "x" in let final core::double #t209 = #t207.{self::Test::[]}(#t208){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t210 = #t207.{self::Test::[]=}(#t208, #t209){(core::String, core::num) → void} in #t209;
+ core::double v9 = let final self::Test<core::double, core::num> #t211 = t in let final core::String #t212 = "x" in let final core::double #t213 = #t211.{self::Test::[]}(#t212){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t214 = #t211.{self::Test::[]=}(#t212, #t213){(core::String, core::num) → void} in #t213;
+ core::double v10 = let final self::Test<core::double, core::num> #t215 = t in let final core::String #t216 = "x" in let final core::double #t217 = #t215.{self::Test::[]}(#t216){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t218 = #t215.{self::Test::[]=}(#t216, #t217){(core::String, core::num) → void} in #t217;
+ core::double v11 = let final self::Test<core::double, core::num> #t219 = t in let final core::String #t220 = "x" in let final core::double #t221 = #t219.{self::Test::[]}(#t220){(core::String) → core::double} in let final void #t222 = #t219.{self::Test::[]=}(#t220, #t221.{core::double::+}(1){(core::num) → core::double}){(core::String, core::num) → void} in #t221;
+}
+static method test9(self::Test<core::double, core::double> t, self::Test2<core::double, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::double, core::double> #t223 = t in let final core::String #t224 = "x" in let final core::double #t225 = self::getDouble() in let final void #t226 = #t223.{self::Test::[]=}(#t224, #t225){(core::String, core::double) → void} in #t225;
+ core::double v6 = let final self::Test2<core::double, core::double> #t227 = t2 in let final core::String #t228 = "x" in let final core::double? #t229 = #t227.{self::Test2::[]}(#t228){(core::String) → core::double?} in #t229 == null ?{core::double} let final core::double #t230 = self::getDouble() in let final void #t231 = #t227.{self::Test2::[]=}(#t228, #t230){(core::String, core::double?) → void} in #t230 : #t229{core::double};
+ core::double v7 = let final self::Test<core::double, core::double> #t232 = t in let final core::String #t233 = "x" in let final core::double #t234 = #t232.{self::Test::[]}(#t233){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t235 = #t232.{self::Test::[]=}(#t233, #t234){(core::String, core::double) → void} in #t234;
+ core::double v8 = let final self::Test<core::double, core::double> #t236 = t in let final core::String #t237 = "x" in let final core::double #t238 = #t236.{self::Test::[]}(#t237){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t239 = #t236.{self::Test::[]=}(#t237, #t238){(core::String, core::double) → void} in #t238;
+ core::double v9 = let final self::Test<core::double, core::double> #t240 = t in let final core::String #t241 = "x" in let final core::double #t242 = #t240.{self::Test::[]}(#t241){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t243 = #t240.{self::Test::[]=}(#t241, #t242){(core::String, core::double) → void} in #t242;
+ core::double v10 = let final self::Test<core::double, core::double> #t244 = t in let final core::String #t245 = "x" in let final core::double #t246 = #t244.{self::Test::[]}(#t245){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t247 = #t244.{self::Test::[]=}(#t245, #t246){(core::String, core::double) → void} in #t246;
+ core::double v11 = let final self::Test<core::double, core::double> #t248 = t in let final core::String #t249 = "x" in let final core::double #t250 = #t248.{self::Test::[]}(#t249){(core::String) → core::double} in let final void #t251 = #t248.{self::Test::[]=}(#t249, #t250.{core::double::+}(1){(core::num) → core::double}){(core::String, core::double) → void} in #t250;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..8489231
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.modular.expect
@@ -0,0 +1,116 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Expected ';' after this.
+// st var /*@type=num*/ v4 =
+// ^^
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Undefined name 'st'.
+// st var /*@type=num*/ v4 =
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class Test<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test<self::Test::T%, self::Test::U%>
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → self::Test::T%;
+ abstract operator []=(core::String s, covariant-by-class self::Test::U% v) → void;
+}
+abstract class Test2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test2<self::Test2::T%, self::Test2::U%>
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → self::Test2::T?;
+ abstract operator []=(core::String s, covariant-by-class self::Test2::U? v) → void;
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1(self::Test<core::int, core::int> t, self::Test2<core::int, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::int, core::int> #t1 = t in let final core::String #t2 = "x" in let final core::int #t3 = self::getInt() in let final void #t4 = #t1.{self::Test::[]=}(#t2, #t3){(core::String, core::int) → void} in #t3;
+ core::int v4 = let final self::Test2<core::int, core::int> #t5 = t2 in let final core::String #t6 = "x" in let final core::int? #t7 = #t5.{self::Test2::[]}(#t6){(core::String) → core::int?} in #t7 == null ?{core::int} let final core::int #t8 = self::getInt() in let final void #t9 = #t5.{self::Test2::[]=}(#t6, #t8){(core::String, core::int?) → void} in #t8 : #t7{core::int};
+ core::int v7 = let final self::Test<core::int, core::int> #t10 = t in let final core::String #t11 = "x" in let final core::int #t12 = #t10.{self::Test::[]}(#t11){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t13 = #t10.{self::Test::[]=}(#t11, #t12){(core::String, core::int) → void} in #t12;
+ core::int v10 = let final self::Test<core::int, core::int> #t14 = t in let final core::String #t15 = "x" in let final core::int #t16 = #t14.{self::Test::[]}(#t15){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t17 = #t14.{self::Test::[]=}(#t15, #t16){(core::String, core::int) → void} in #t16;
+ core::int v11 = let final self::Test<core::int, core::int> #t18 = t in let final core::String #t19 = "x" in let final core::int #t20 = #t18.{self::Test::[]}(#t19){(core::String) → core::int} in let final void #t21 = #t18.{self::Test::[]=}(#t19, #t20.{core::num::+}(1){(core::num) → core::int}){(core::String, core::int) → void} in #t20;
+}
+static method test2(self::Test<core::int, core::num> t, self::Test2<core::int, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::int, core::num> #t22 = t in let final core::String #t23 = "x" in let final core::int #t24 = self::getInt() in let final void #t25 = #t22.{self::Test::[]=}(#t23, #t24){(core::String, core::num) → void} in #t24;
+ core::num v2 = let final self::Test<core::int, core::num> #t26 = t in let final core::String #t27 = "x" in let final core::num #t28 = self::getNum() in let final void #t29 = #t26.{self::Test::[]=}(#t27, #t28){(core::String, core::num) → void} in #t28;
+ core::double v3 = let final self::Test<core::int, core::num> #t30 = t in let final core::String #t31 = "x" in let final core::double #t32 = self::getDouble() in let final void #t33 = #t30.{self::Test::[]=}(#t31, #t32){(core::String, core::num) → void} in #t32;
+ core::int v4 = let final self::Test2<core::int, core::num> #t34 = t2 in let final core::String #t35 = "x" in let final core::int? #t36 = #t34.{self::Test2::[]}(#t35){(core::String) → core::int?} in #t36 == null ?{core::int} let final core::int #t37 = self::getInt() in let final void #t38 = #t34.{self::Test2::[]=}(#t35, #t37){(core::String, core::num?) → void} in #t37 : #t36{core::int};
+ core::num v5 = let final self::Test2<core::int, core::num> #t39 = t2 in let final core::String #t40 = "x" in let final core::int? #t41 = #t39.{self::Test2::[]}(#t40){(core::String) → core::int?} in #t41 == null ?{core::num} let final core::num #t42 = self::getNum() in let final void #t43 = #t39.{self::Test2::[]=}(#t40, #t42){(core::String, core::num?) → void} in #t42 : #t41{core::int};
+ core::num v6 = let final self::Test2<core::int, core::num> #t44 = t2 in let final core::String #t45 = "x" in let final core::int? #t46 = #t44.{self::Test2::[]}(#t45){(core::String) → core::int?} in #t46 == null ?{core::num} let final core::double #t47 = self::getDouble() in let final void #t48 = #t44.{self::Test2::[]=}(#t45, #t47){(core::String, core::num?) → void} in #t47 : #t46{core::int};
+ core::int v7 = let final self::Test<core::int, core::num> #t49 = t in let final core::String #t50 = "x" in let final core::int #t51 = #t49.{self::Test::[]}(#t50){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t52 = #t49.{self::Test::[]=}(#t50, #t51){(core::String, core::num) → void} in #t51;
+ core::num v8 = let final self::Test<core::int, core::num> #t53 = t in let final core::String #t54 = "x" in let final core::num #t55 = #t53.{self::Test::[]}(#t54){(core::String) → core::int}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t56 = #t53.{self::Test::[]=}(#t54, #t55){(core::String, core::num) → void} in #t55;
+ core::double v9 = let final self::Test<core::int, core::num> #t57 = t in let final core::String #t58 = "x" in let final core::double #t59 = #t57.{self::Test::[]}(#t58){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t60 = #t57.{self::Test::[]=}(#t58, #t59){(core::String, core::num) → void} in #t59;
+ core::int v10 = let final self::Test<core::int, core::num> #t61 = t in let final core::String #t62 = "x" in let final core::int #t63 = #t61.{self::Test::[]}(#t62){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t64 = #t61.{self::Test::[]=}(#t62, #t63){(core::String, core::num) → void} in #t63;
+ core::int v11 = let final self::Test<core::int, core::num> #t65 = t in let final core::String #t66 = "x" in let final core::int #t67 = #t65.{self::Test::[]}(#t66){(core::String) → core::int} in let final void #t68 = #t65.{self::Test::[]=}(#t66, #t67.{core::num::+}(1){(core::num) → core::int}){(core::String, core::num) → void} in #t67;
+}
+static method test3(self::Test<core::int, core::double> t, self::Test2<core::int, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::int, core::double> #t69 = t in let final core::String #t70 = "x" in let final core::double #t71 = self::getDouble() in let final void #t72 = #t69.{self::Test::[]=}(#t70, #t71){(core::String, core::double) → void} in #t71;
+ core::num v6 = let final self::Test2<core::int, core::double> #t73 = t2 in let final core::String #t74 = "x" in let final core::int? #t75 = #t73.{self::Test2::[]}(#t74){(core::String) → core::int?} in #t75 == null ?{core::num} let final core::double #t76 = self::getDouble() in let final void #t77 = #t73.{self::Test2::[]=}(#t74, #t76){(core::String, core::double?) → void} in #t76 : #t75{core::int};
+ core::double v9 = let final self::Test<core::int, core::double> #t78 = t in let final core::String #t79 = "x" in let final core::double #t80 = #t78.{self::Test::[]}(#t79){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t81 = #t78.{self::Test::[]=}(#t79, #t80){(core::String, core::double) → void} in #t80;
+ core::double v10 = let final self::Test<core::int, core::double> #t82 = t in let final core::String #t83 = "x" in let final core::double #t84 = #t82.{self::Test::[]}(#t83){(core::String) → core::int}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t85 = #t82.{self::Test::[]=}(#t83, #t84){(core::String, core::double) → void} in #t84;
+ core::int v11 = let final self::Test<core::int, core::double> #t86 = t in let final core::String #t87 = "x" in let final core::int #t88 = #t86.{self::Test::[]}(#t87){(core::String) → core::int} in let final void #t89 = #t86.{self::Test::[]=}(#t87, #t88.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t88;
+}
+static method test4(self::Test<core::num, core::int> t, self::Test2<core::num, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::num, core::int> #t90 = t in let final core::String #t91 = "x" in let final core::int #t92 = self::getInt() in let final void #t93 = #t90.{self::Test::[]=}(#t91, #t92){(core::String, core::int) → void} in #t92;
+ core::num v4 = let final self::Test2<core::num, core::int> #t94 = t2 in let final core::String #t95 = "x" in let final core::num? #t96 = #t94.{self::Test2::[]}(#t95){(core::String) → core::num?} in #t96 == null ?{core::num} let final core::int #t97 = self::getInt() in let final void #t98 = #t94.{self::Test2::[]=}(#t95, #t97){(core::String, core::int?) → void} in #t97 : #t96{core::num};
+}
+static method test5(self::Test<core::num, core::num> t, self::Test2<core::num, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::num, core::num> #t99 = t in let final core::String #t100 = "x" in let final core::int #t101 = self::getInt() in let final void #t102 = #t99.{self::Test::[]=}(#t100, #t101){(core::String, core::num) → void} in #t101;
+ core::num v2 = let final self::Test<core::num, core::num> #t103 = t in let final core::String #t104 = "x" in let final core::num #t105 = self::getNum() in let final void #t106 = #t103.{self::Test::[]=}(#t104, #t105){(core::String, core::num) → void} in #t105;
+ core::double v3 = let final self::Test<core::num, core::num> #t107 = t in let final core::String #t108 = "x" in let final core::double #t109 = self::getDouble() in let final void #t110 = #t107.{self::Test::[]=}(#t108, #t109){(core::String, core::num) → void} in #t109;
+ core::num v4 = let final self::Test2<core::num, core::num> #t111 = t2 in let final core::String #t112 = "x" in let final core::num? #t113 = #t111.{self::Test2::[]}(#t112){(core::String) → core::num?} in #t113 == null ?{core::num} let final core::int #t114 = self::getInt() in let final void #t115 = #t111.{self::Test2::[]=}(#t112, #t114){(core::String, core::num?) → void} in #t114 : #t113{core::num};
+ core::num v5 = let final self::Test2<core::num, core::num> #t116 = t2 in let final core::String #t117 = "x" in let final core::num? #t118 = #t116.{self::Test2::[]}(#t117){(core::String) → core::num?} in #t118 == null ?{core::num} let final core::num #t119 = self::getNum() in let final void #t120 = #t116.{self::Test2::[]=}(#t117, #t119){(core::String, core::num?) → void} in #t119 : #t118{core::num};
+ core::num v6 = let final self::Test2<core::num, core::num> #t121 = t2 in let final core::String #t122 = "x" in let final core::num? #t123 = #t121.{self::Test2::[]}(#t122){(core::String) → core::num?} in #t123 == null ?{core::num} let final core::double #t124 = self::getDouble() in let final void #t125 = #t121.{self::Test2::[]=}(#t122, #t124){(core::String, core::num?) → void} in #t124 : #t123{core::num};
+ core::num v7 = let final self::Test<core::num, core::num> #t126 = t in let final core::String #t127 = "x" in let final core::num #t128 = #t126.{self::Test::[]}(#t127){(core::String) → core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t129 = #t126.{self::Test::[]=}(#t127, #t128){(core::String, core::num) → void} in #t128;
+ core::num v8 = let final self::Test<core::num, core::num> #t130 = t in let final core::String #t131 = "x" in let final core::num #t132 = #t130.{self::Test::[]}(#t131){(core::String) → core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t133 = #t130.{self::Test::[]=}(#t131, #t132){(core::String, core::num) → void} in #t132;
+ core::double v9 = let final self::Test<core::num, core::num> #t134 = t in let final core::String #t135 = "x" in let final core::double #t136 = #t134.{self::Test::[]}(#t135){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t137 = #t134.{self::Test::[]=}(#t135, #t136){(core::String, core::num) → void} in #t136;
+ core::num v10 = let final self::Test<core::num, core::num> #t138 = t in let final core::String #t139 = "x" in let final core::num #t140 = #t138.{self::Test::[]}(#t139){(core::String) → core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t141 = #t138.{self::Test::[]=}(#t139, #t140){(core::String, core::num) → void} in #t140;
+ core::num v11 = let final self::Test<core::num, core::num> #t142 = t in let final core::String #t143 = "x" in let final core::num #t144 = #t142.{self::Test::[]}(#t143){(core::String) → core::num} in let final void #t145 = #t142.{self::Test::[]=}(#t143, #t144.{core::num::+}(1){(core::num) → core::num}){(core::String, core::num) → void} in #t144;
+}
+static method test6(self::Test<core::num, core::double> t, self::Test2<core::num, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::num, core::double> #t146 = t in let final core::String #t147 = "x" in let final core::double #t148 = self::getDouble() in let final void #t149 = #t146.{self::Test::[]=}(#t147, #t148){(core::String, core::double) → void} in #t148;
+ core::num v6 = let final self::Test2<core::num, core::double> #t150 = t2 in let final core::String #t151 = "x" in let final core::num? #t152 = #t150.{self::Test2::[]}(#t151){(core::String) → core::num?} in #t152 == null ?{core::num} let final core::double #t153 = self::getDouble() in let final void #t154 = #t150.{self::Test2::[]=}(#t151, #t153){(core::String, core::double?) → void} in #t153 : #t152{core::num};
+ core::double v9 = let final self::Test<core::num, core::double> #t155 = t in let final core::String #t156 = "x" in let final core::double #t157 = #t155.{self::Test::[]}(#t156){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t158 = #t155.{self::Test::[]=}(#t156, #t157){(core::String, core::double) → void} in #t157;
+ core::double v10 = let final self::Test<core::num, core::double> #t159 = t in let final core::String #t160 = "x" in let final core::double #t161 = #t159.{self::Test::[]}(#t160){(core::String) → core::num}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t162 = #t159.{self::Test::[]=}(#t160, #t161){(core::String, core::double) → void} in #t161;
+ core::num v11 = let final self::Test<core::num, core::double> #t163 = t in let final core::String #t164 = "x" in let final core::num #t165 = #t163.{self::Test::[]}(#t164){(core::String) → core::num} in let final void #t166 = #t163.{self::Test::[]=}(#t164, #t165.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t165;
+}
+static method test7(self::Test<core::double, core::int> t, self::Test2<core::double, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::double, core::int> #t167 = t in let final core::String #t168 = "x" in let final core::int #t169 = self::getInt() in let final void #t170 = #t167.{self::Test::[]=}(#t168, #t169){(core::String, core::int) → void} in #t169;
+ invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Undefined name 'st'.
+ st var /*@type=num*/ v4 =
+ ^^";
+ core::num v4 = let final self::Test2<core::double, core::int> #t171 = t2 in let final core::String #t172 = "x" in let final core::double? #t173 = #t171.{self::Test2::[]}(#t172){(core::String) → core::double?} in #t173 == null ?{core::num} let final core::int #t174 = self::getInt() in let final void #t175 = #t171.{self::Test2::[]=}(#t172, #t174){(core::String, core::int?) → void} in #t174 : #t173{core::double};
+}
+static method test8(self::Test<core::double, core::num> t, self::Test2<core::double, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::double, core::num> #t176 = t in let final core::String #t177 = "x" in let final core::int #t178 = self::getInt() in let final void #t179 = #t176.{self::Test::[]=}(#t177, #t178){(core::String, core::num) → void} in #t178;
+ core::num v2 = let final self::Test<core::double, core::num> #t180 = t in let final core::String #t181 = "x" in let final core::num #t182 = self::getNum() in let final void #t183 = #t180.{self::Test::[]=}(#t181, #t182){(core::String, core::num) → void} in #t182;
+ core::double v3 = let final self::Test<core::double, core::num> #t184 = t in let final core::String #t185 = "x" in let final core::double #t186 = self::getDouble() in let final void #t187 = #t184.{self::Test::[]=}(#t185, #t186){(core::String, core::num) → void} in #t186;
+ core::num v4 = let final self::Test2<core::double, core::num> #t188 = t2 in let final core::String #t189 = "x" in let final core::double? #t190 = #t188.{self::Test2::[]}(#t189){(core::String) → core::double?} in #t190 == null ?{core::num} let final core::int #t191 = self::getInt() in let final void #t192 = #t188.{self::Test2::[]=}(#t189, #t191){(core::String, core::num?) → void} in #t191 : #t190{core::double};
+ core::num v5 = let final self::Test2<core::double, core::num> #t193 = t2 in let final core::String #t194 = "x" in let final core::double? #t195 = #t193.{self::Test2::[]}(#t194){(core::String) → core::double?} in #t195 == null ?{core::num} let final core::num #t196 = self::getNum() in let final void #t197 = #t193.{self::Test2::[]=}(#t194, #t196){(core::String, core::num?) → void} in #t196 : #t195{core::double};
+ core::double v6 = let final self::Test2<core::double, core::num> #t198 = t2 in let final core::String #t199 = "x" in let final core::double? #t200 = #t198.{self::Test2::[]}(#t199){(core::String) → core::double?} in #t200 == null ?{core::double} let final core::double #t201 = self::getDouble() in let final void #t202 = #t198.{self::Test2::[]=}(#t199, #t201){(core::String, core::num?) → void} in #t201 : #t200{core::double};
+ core::double v7 = let final self::Test<core::double, core::num> #t203 = t in let final core::String #t204 = "x" in let final core::double #t205 = #t203.{self::Test::[]}(#t204){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t206 = #t203.{self::Test::[]=}(#t204, #t205){(core::String, core::num) → void} in #t205;
+ core::double v8 = let final self::Test<core::double, core::num> #t207 = t in let final core::String #t208 = "x" in let final core::double #t209 = #t207.{self::Test::[]}(#t208){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t210 = #t207.{self::Test::[]=}(#t208, #t209){(core::String, core::num) → void} in #t209;
+ core::double v9 = let final self::Test<core::double, core::num> #t211 = t in let final core::String #t212 = "x" in let final core::double #t213 = #t211.{self::Test::[]}(#t212){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t214 = #t211.{self::Test::[]=}(#t212, #t213){(core::String, core::num) → void} in #t213;
+ core::double v10 = let final self::Test<core::double, core::num> #t215 = t in let final core::String #t216 = "x" in let final core::double #t217 = #t215.{self::Test::[]}(#t216){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t218 = #t215.{self::Test::[]=}(#t216, #t217){(core::String, core::num) → void} in #t217;
+ core::double v11 = let final self::Test<core::double, core::num> #t219 = t in let final core::String #t220 = "x" in let final core::double #t221 = #t219.{self::Test::[]}(#t220){(core::String) → core::double} in let final void #t222 = #t219.{self::Test::[]=}(#t220, #t221.{core::double::+}(1){(core::num) → core::double}){(core::String, core::num) → void} in #t221;
+}
+static method test9(self::Test<core::double, core::double> t, self::Test2<core::double, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::double, core::double> #t223 = t in let final core::String #t224 = "x" in let final core::double #t225 = self::getDouble() in let final void #t226 = #t223.{self::Test::[]=}(#t224, #t225){(core::String, core::double) → void} in #t225;
+ core::double v6 = let final self::Test2<core::double, core::double> #t227 = t2 in let final core::String #t228 = "x" in let final core::double? #t229 = #t227.{self::Test2::[]}(#t228){(core::String) → core::double?} in #t229 == null ?{core::double} let final core::double #t230 = self::getDouble() in let final void #t231 = #t227.{self::Test2::[]=}(#t228, #t230){(core::String, core::double?) → void} in #t230 : #t229{core::double};
+ core::double v7 = let final self::Test<core::double, core::double> #t232 = t in let final core::String #t233 = "x" in let final core::double #t234 = #t232.{self::Test::[]}(#t233){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t235 = #t232.{self::Test::[]=}(#t233, #t234){(core::String, core::double) → void} in #t234;
+ core::double v8 = let final self::Test<core::double, core::double> #t236 = t in let final core::String #t237 = "x" in let final core::double #t238 = #t236.{self::Test::[]}(#t237){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t239 = #t236.{self::Test::[]=}(#t237, #t238){(core::String, core::double) → void} in #t238;
+ core::double v9 = let final self::Test<core::double, core::double> #t240 = t in let final core::String #t241 = "x" in let final core::double #t242 = #t240.{self::Test::[]}(#t241){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t243 = #t240.{self::Test::[]=}(#t241, #t242){(core::String, core::double) → void} in #t242;
+ core::double v10 = let final self::Test<core::double, core::double> #t244 = t in let final core::String #t245 = "x" in let final core::double #t246 = #t244.{self::Test::[]}(#t245){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t247 = #t244.{self::Test::[]=}(#t245, #t246){(core::String, core::double) → void} in #t246;
+ core::double v11 = let final self::Test<core::double, core::double> #t248 = t in let final core::String #t249 = "x" in let final core::double #t250 = #t248.{self::Test::[]}(#t249){(core::String) → core::double} in let final void #t251 = #t248.{self::Test::[]=}(#t249, #t250.{core::double::+}(1){(core::num) → core::double}){(core::String, core::double) → void} in #t250;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..9f5ada2
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.outline.expect
@@ -0,0 +1,42 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+abstract class Test<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test<self::Test::T%, self::Test::U%>
+ ;
+ abstract operator [](core::String s) → self::Test::T%;
+ abstract operator []=(core::String s, covariant-by-class self::Test::U% v) → void;
+}
+abstract class Test2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test2<self::Test2::T%, self::Test2::U%>
+ ;
+ abstract operator [](core::String s) → self::Test2::T?;
+ abstract operator []=(core::String s, covariant-by-class self::Test2::U? v) → void;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method test1(self::Test<core::int, core::int> t, self::Test2<core::int, core::int> t2) → void
+ ;
+static method test2(self::Test<core::int, core::num> t, self::Test2<core::int, core::num> t2) → void
+ ;
+static method test3(self::Test<core::int, core::double> t, self::Test2<core::int, core::double> t2) → void
+ ;
+static method test4(self::Test<core::num, core::int> t, self::Test2<core::num, core::int> t2) → void
+ ;
+static method test5(self::Test<core::num, core::num> t, self::Test2<core::num, core::num> t2) → void
+ ;
+static method test6(self::Test<core::num, core::double> t, self::Test2<core::num, core::double> t2) → void
+ ;
+static method test7(self::Test<core::double, core::int> t, self::Test2<core::double, core::int> t2) → void
+ ;
+static method test8(self::Test<core::double, core::num> t, self::Test2<core::double, core::num> t2) → void
+ ;
+static method test9(self::Test<core::double, core::double> t, self::Test2<core::double, core::double> t2) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..9ccb971
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,223 @@
+library test /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Expected ';' after this.
+// st var /*@type=num*/ v4 =
+// ^^
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Undefined name 'st'.
+// st var /*@type=num*/ v4 =
+// ^^
+//
+import self as self;
+import "dart:core" as core;
+
+abstract class Test<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test<self::Test::T%, self::Test::U%>
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → self::Test::T%;
+ abstract operator []=(core::String s, covariant-by-class self::Test::U% v) → void;
+}
+abstract class Test2<T extends core::Object? = dynamic, U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Test2<self::Test2::T%, self::Test2::U%>
+ : super core::Object::•()
+ ;
+ abstract operator [](core::String s) → self::Test2::T?;
+ abstract operator []=(core::String s, covariant-by-class self::Test2::U? v) → void;
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1(self::Test<core::int, core::int> t, self::Test2<core::int, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::int, core::int> #t1 = t in let final core::String #t2 = "x" in let final core::int #t3 = self::getInt() in let final void #t4 = #t1.{self::Test::[]=}(#t2, #t3){(core::String, core::int) → void} in #t3;
+ core::int v4 = let final self::Test2<core::int, core::int> #t5 = t2 in let final core::String #t6 = "x" in let final core::int? #t7 = #t5.{self::Test2::[]}(#t6){(core::String) → core::int?} in #t7 == null ?{core::int} let final core::int #t8 = self::getInt() in let final void #t9 = #t5.{self::Test2::[]=}(#t6, #t8){(core::String, core::int?) → void} in #t8 : #t7{core::int};
+ core::int v7 = let final self::Test<core::int, core::int> #t10 = t in let final core::String #t11 = "x" in let final core::int #t12 = #t10.{self::Test::[]}(#t11){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t13 = #t10.{self::Test::[]=}(#t11, #t12){(core::String, core::int) → void} in #t12;
+ core::int v10 = let final self::Test<core::int, core::int> #t14 = t in let final core::String #t15 = "x" in let final core::int #t16 = #t14.{self::Test::[]}(#t15){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t17 = #t14.{self::Test::[]=}(#t15, #t16){(core::String, core::int) → void} in #t16;
+ core::int v11 = let final self::Test<core::int, core::int> #t18 = t in let final core::String #t19 = "x" in let final core::int #t20 = #t18.{self::Test::[]}(#t19){(core::String) → core::int} in let final void #t21 = #t18.{self::Test::[]=}(#t19, #t20.{core::num::+}(1){(core::num) → core::int}){(core::String, core::int) → void} in #t20;
+}
+static method test2(self::Test<core::int, core::num> t, self::Test2<core::int, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::int, core::num> #t22 = t in let final core::String #t23 = "x" in let final core::int #t24 = self::getInt() in let final void #t25 = #t22.{self::Test::[]=}(#t23, #t24){(core::String, core::num) → void} in #t24;
+ core::num v2 = let final self::Test<core::int, core::num> #t26 = t in let final core::String #t27 = "x" in let final core::num #t28 = self::getNum() in let final void #t29 = #t26.{self::Test::[]=}(#t27, #t28){(core::String, core::num) → void} in #t28;
+ core::double v3 = let final self::Test<core::int, core::num> #t30 = t in let final core::String #t31 = "x" in let final core::double #t32 = self::getDouble() in let final void #t33 = #t30.{self::Test::[]=}(#t31, #t32){(core::String, core::num) → void} in #t32;
+ core::int v4 = let final self::Test2<core::int, core::num> #t34 = t2 in let final core::String #t35 = "x" in let final core::int? #t36 = #t34.{self::Test2::[]}(#t35){(core::String) → core::int?} in #t36 == null ?{core::int} let final core::int #t37 = self::getInt() in let final void #t38 = #t34.{self::Test2::[]=}(#t35, #t37){(core::String, core::num?) → void} in #t37 : #t36{core::int};
+ core::num v5 = let final self::Test2<core::int, core::num> #t39 = t2 in let final core::String #t40 = "x" in let final core::int? #t41 = #t39.{self::Test2::[]}(#t40){(core::String) → core::int?} in #t41 == null ?{core::num} let final core::num #t42 = self::getNum() in let final void #t43 = #t39.{self::Test2::[]=}(#t40, #t42){(core::String, core::num?) → void} in #t42 : #t41{core::int};
+ core::num v6 = let final self::Test2<core::int, core::num> #t44 = t2 in let final core::String #t45 = "x" in let final core::int? #t46 = #t44.{self::Test2::[]}(#t45){(core::String) → core::int?} in #t46 == null ?{core::num} let final core::double #t47 = self::getDouble() in let final void #t48 = #t44.{self::Test2::[]=}(#t45, #t47){(core::String, core::num?) → void} in #t47 : #t46{core::int};
+ core::int v7 = let final self::Test<core::int, core::num> #t49 = t in let final core::String #t50 = "x" in let final core::int #t51 = #t49.{self::Test::[]}(#t50){(core::String) → core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t52 = #t49.{self::Test::[]=}(#t50, #t51){(core::String, core::num) → void} in #t51;
+ core::num v8 = let final self::Test<core::int, core::num> #t53 = t in let final core::String #t54 = "x" in let final core::num #t55 = #t53.{self::Test::[]}(#t54){(core::String) → core::int}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t56 = #t53.{self::Test::[]=}(#t54, #t55){(core::String, core::num) → void} in #t55;
+ core::double v9 = let final self::Test<core::int, core::num> #t57 = t in let final core::String #t58 = "x" in let final core::double #t59 = #t57.{self::Test::[]}(#t58){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t60 = #t57.{self::Test::[]=}(#t58, #t59){(core::String, core::num) → void} in #t59;
+ core::int v10 = let final self::Test<core::int, core::num> #t61 = t in let final core::String #t62 = "x" in let final core::int #t63 = #t61.{self::Test::[]}(#t62){(core::String) → core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t64 = #t61.{self::Test::[]=}(#t62, #t63){(core::String, core::num) → void} in #t63;
+ core::int v11 = let final self::Test<core::int, core::num> #t65 = t in let final core::String #t66 = "x" in let final core::int #t67 = #t65.{self::Test::[]}(#t66){(core::String) → core::int} in let final void #t68 = #t65.{self::Test::[]=}(#t66, #t67.{core::num::+}(1){(core::num) → core::int}){(core::String, core::num) → void} in #t67;
+}
+static method test3(self::Test<core::int, core::double> t, self::Test2<core::int, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::int, core::double> #t69 = t in let final core::String #t70 = "x" in let final core::double #t71 = self::getDouble() in let final void #t72 = #t69.{self::Test::[]=}(#t70, #t71){(core::String, core::double) → void} in #t71;
+ core::num v6 = let final self::Test2<core::int, core::double> #t73 = t2 in let final core::String #t74 = "x" in let final core::int? #t75 = #t73.{self::Test2::[]}(#t74){(core::String) → core::int?} in #t75 == null ?{core::num} let final core::double #t76 = self::getDouble() in let final void #t77 = #t73.{self::Test2::[]=}(#t74, #t76){(core::String, core::double?) → void} in #t76 : #t75{core::int};
+ core::double v9 = let final self::Test<core::int, core::double> #t78 = t in let final core::String #t79 = "x" in let final core::double #t80 = #t78.{self::Test::[]}(#t79){(core::String) → core::int}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t81 = #t78.{self::Test::[]=}(#t79, #t80){(core::String, core::double) → void} in #t80;
+ core::double v10 = let final self::Test<core::int, core::double> #t82 = t in let final core::String #t83 = "x" in let final core::double #t84 = #t82.{self::Test::[]}(#t83){(core::String) → core::int}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t85 = #t82.{self::Test::[]=}(#t83, #t84){(core::String, core::double) → void} in #t84;
+ core::int v11 = let final self::Test<core::int, core::double> #t86 = t in let final core::String #t87 = "x" in let final core::int #t88 = #t86.{self::Test::[]}(#t87){(core::String) → core::int} in let final void #t89 = #t86.{self::Test::[]=}(#t87, #t88.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t88;
+}
+static method test4(self::Test<core::num, core::int> t, self::Test2<core::num, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::num, core::int> #t90 = t in let final core::String #t91 = "x" in let final core::int #t92 = self::getInt() in let final void #t93 = #t90.{self::Test::[]=}(#t91, #t92){(core::String, core::int) → void} in #t92;
+ core::num v4 = let final self::Test2<core::num, core::int> #t94 = t2 in let final core::String #t95 = "x" in let final core::num? #t96 = #t94.{self::Test2::[]}(#t95){(core::String) → core::num?} in #t96 == null ?{core::num} let final core::int #t97 = self::getInt() in let final void #t98 = #t94.{self::Test2::[]=}(#t95, #t97){(core::String, core::int?) → void} in #t97 : #t96{core::num};
+}
+static method test5(self::Test<core::num, core::num> t, self::Test2<core::num, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::num, core::num> #t99 = t in let final core::String #t100 = "x" in let final core::int #t101 = self::getInt() in let final void #t102 = #t99.{self::Test::[]=}(#t100, #t101){(core::String, core::num) → void} in #t101;
+ core::num v2 = let final self::Test<core::num, core::num> #t103 = t in let final core::String #t104 = "x" in let final core::num #t105 = self::getNum() in let final void #t106 = #t103.{self::Test::[]=}(#t104, #t105){(core::String, core::num) → void} in #t105;
+ core::double v3 = let final self::Test<core::num, core::num> #t107 = t in let final core::String #t108 = "x" in let final core::double #t109 = self::getDouble() in let final void #t110 = #t107.{self::Test::[]=}(#t108, #t109){(core::String, core::num) → void} in #t109;
+ core::num v4 = let final self::Test2<core::num, core::num> #t111 = t2 in let final core::String #t112 = "x" in let final core::num? #t113 = #t111.{self::Test2::[]}(#t112){(core::String) → core::num?} in #t113 == null ?{core::num} let final core::int #t114 = self::getInt() in let final void #t115 = #t111.{self::Test2::[]=}(#t112, #t114){(core::String, core::num?) → void} in #t114 : #t113{core::num};
+ core::num v5 = let final self::Test2<core::num, core::num> #t116 = t2 in let final core::String #t117 = "x" in let final core::num? #t118 = #t116.{self::Test2::[]}(#t117){(core::String) → core::num?} in #t118 == null ?{core::num} let final core::num #t119 = self::getNum() in let final void #t120 = #t116.{self::Test2::[]=}(#t117, #t119){(core::String, core::num?) → void} in #t119 : #t118{core::num};
+ core::num v6 = let final self::Test2<core::num, core::num> #t121 = t2 in let final core::String #t122 = "x" in let final core::num? #t123 = #t121.{self::Test2::[]}(#t122){(core::String) → core::num?} in #t123 == null ?{core::num} let final core::double #t124 = self::getDouble() in let final void #t125 = #t121.{self::Test2::[]=}(#t122, #t124){(core::String, core::num?) → void} in #t124 : #t123{core::num};
+ core::num v7 = let final self::Test<core::num, core::num> #t126 = t in let final core::String #t127 = "x" in let final core::num #t128 = #t126.{self::Test::[]}(#t127){(core::String) → core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t129 = #t126.{self::Test::[]=}(#t127, #t128){(core::String, core::num) → void} in #t128;
+ core::num v8 = let final self::Test<core::num, core::num> #t130 = t in let final core::String #t131 = "x" in let final core::num #t132 = #t130.{self::Test::[]}(#t131){(core::String) → core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t133 = #t130.{self::Test::[]=}(#t131, #t132){(core::String, core::num) → void} in #t132;
+ core::double v9 = let final self::Test<core::num, core::num> #t134 = t in let final core::String #t135 = "x" in let final core::double #t136 = #t134.{self::Test::[]}(#t135){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t137 = #t134.{self::Test::[]=}(#t135, #t136){(core::String, core::num) → void} in #t136;
+ core::num v10 = let final self::Test<core::num, core::num> #t138 = t in let final core::String #t139 = "x" in let final core::num #t140 = #t138.{self::Test::[]}(#t139){(core::String) → core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t141 = #t138.{self::Test::[]=}(#t139, #t140){(core::String, core::num) → void} in #t140;
+ core::num v11 = let final self::Test<core::num, core::num> #t142 = t in let final core::String #t143 = "x" in let final core::num #t144 = #t142.{self::Test::[]}(#t143){(core::String) → core::num} in let final void #t145 = #t142.{self::Test::[]=}(#t143, #t144.{core::num::+}(1){(core::num) → core::num}){(core::String, core::num) → void} in #t144;
+}
+static method test6(self::Test<core::num, core::double> t, self::Test2<core::num, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::num, core::double> #t146 = t in let final core::String #t147 = "x" in let final core::double #t148 = self::getDouble() in let final void #t149 = #t146.{self::Test::[]=}(#t147, #t148){(core::String, core::double) → void} in #t148;
+ core::num v6 = let final self::Test2<core::num, core::double> #t150 = t2 in let final core::String #t151 = "x" in let final core::num? #t152 = #t150.{self::Test2::[]}(#t151){(core::String) → core::num?} in #t152 == null ?{core::num} let final core::double #t153 = self::getDouble() in let final void #t154 = #t150.{self::Test2::[]=}(#t151, #t153){(core::String, core::double?) → void} in #t153 : #t152{core::num};
+ core::double v9 = let final self::Test<core::num, core::double> #t155 = t in let final core::String #t156 = "x" in let final core::double #t157 = #t155.{self::Test::[]}(#t156){(core::String) → core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t158 = #t155.{self::Test::[]=}(#t156, #t157){(core::String, core::double) → void} in #t157;
+ core::double v10 = let final self::Test<core::num, core::double> #t159 = t in let final core::String #t160 = "x" in let final core::double #t161 = #t159.{self::Test::[]}(#t160){(core::String) → core::num}.{core::num::+}(1.0){(core::num) → core::double} in let final void #t162 = #t159.{self::Test::[]=}(#t160, #t161){(core::String, core::double) → void} in #t161;
+ core::num v11 = let final self::Test<core::num, core::double> #t163 = t in let final core::String #t164 = "x" in let final core::num #t165 = #t163.{self::Test::[]}(#t164){(core::String) → core::num} in let final void #t166 = #t163.{self::Test::[]=}(#t164, #t165.{core::num::+}(1.0){(core::num) → core::double}){(core::String, core::double) → void} in #t165;
+}
+static method test7(self::Test<core::double, core::int> t, self::Test2<core::double, core::int> t2) → void {
+ core::int v1 = let final self::Test<core::double, core::int> #t167 = t in let final core::String #t168 = "x" in let final core::int #t169 = self::getInt() in let final void #t170 = #t167.{self::Test::[]=}(#t168, #t169){(core::String, core::int) → void} in #t169;
+ invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_index_upwards2.dart:153:2: Error: Undefined name 'st'.
+ st var /*@type=num*/ v4 =
+ ^^";
+ core::num v4 = let final self::Test2<core::double, core::int> #t171 = t2 in let final core::String #t172 = "x" in let final core::double? #t173 = #t171.{self::Test2::[]}(#t172){(core::String) → core::double?} in #t173 == null ?{core::num} let final core::int #t174 = self::getInt() in let final void #t175 = #t171.{self::Test2::[]=}(#t172, #t174){(core::String, core::int?) → void} in #t174 : #t173{core::double};
+}
+static method test8(self::Test<core::double, core::num> t, self::Test2<core::double, core::num> t2) → void {
+ core::int v1 = let final self::Test<core::double, core::num> #t176 = t in let final core::String #t177 = "x" in let final core::int #t178 = self::getInt() in let final void #t179 = #t176.{self::Test::[]=}(#t177, #t178){(core::String, core::num) → void} in #t178;
+ core::num v2 = let final self::Test<core::double, core::num> #t180 = t in let final core::String #t181 = "x" in let final core::num #t182 = self::getNum() in let final void #t183 = #t180.{self::Test::[]=}(#t181, #t182){(core::String, core::num) → void} in #t182;
+ core::double v3 = let final self::Test<core::double, core::num> #t184 = t in let final core::String #t185 = "x" in let final core::double #t186 = self::getDouble() in let final void #t187 = #t184.{self::Test::[]=}(#t185, #t186){(core::String, core::num) → void} in #t186;
+ core::num v4 = let final self::Test2<core::double, core::num> #t188 = t2 in let final core::String #t189 = "x" in let final core::double? #t190 = #t188.{self::Test2::[]}(#t189){(core::String) → core::double?} in #t190 == null ?{core::num} let final core::int #t191 = self::getInt() in let final void #t192 = #t188.{self::Test2::[]=}(#t189, #t191){(core::String, core::num?) → void} in #t191 : #t190{core::double};
+ core::num v5 = let final self::Test2<core::double, core::num> #t193 = t2 in let final core::String #t194 = "x" in let final core::double? #t195 = #t193.{self::Test2::[]}(#t194){(core::String) → core::double?} in #t195 == null ?{core::num} let final core::num #t196 = self::getNum() in let final void #t197 = #t193.{self::Test2::[]=}(#t194, #t196){(core::String, core::num?) → void} in #t196 : #t195{core::double};
+ core::double v6 = let final self::Test2<core::double, core::num> #t198 = t2 in let final core::String #t199 = "x" in let final core::double? #t200 = #t198.{self::Test2::[]}(#t199){(core::String) → core::double?} in #t200 == null ?{core::double} let final core::double #t201 = self::getDouble() in let final void #t202 = #t198.{self::Test2::[]=}(#t199, #t201){(core::String, core::num?) → void} in #t201 : #t200{core::double};
+ core::double v7 = let final self::Test<core::double, core::num> #t203 = t in let final core::String #t204 = "x" in let final core::double #t205 = #t203.{self::Test::[]}(#t204){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t206 = #t203.{self::Test::[]=}(#t204, #t205){(core::String, core::num) → void} in #t205;
+ core::double v8 = let final self::Test<core::double, core::num> #t207 = t in let final core::String #t208 = "x" in let final core::double #t209 = #t207.{self::Test::[]}(#t208){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t210 = #t207.{self::Test::[]=}(#t208, #t209){(core::String, core::num) → void} in #t209;
+ core::double v9 = let final self::Test<core::double, core::num> #t211 = t in let final core::String #t212 = "x" in let final core::double #t213 = #t211.{self::Test::[]}(#t212){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t214 = #t211.{self::Test::[]=}(#t212, #t213){(core::String, core::num) → void} in #t213;
+ core::double v10 = let final self::Test<core::double, core::num> #t215 = t in let final core::String #t216 = "x" in let final core::double #t217 = #t215.{self::Test::[]}(#t216){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t218 = #t215.{self::Test::[]=}(#t216, #t217){(core::String, core::num) → void} in #t217;
+ core::double v11 = let final self::Test<core::double, core::num> #t219 = t in let final core::String #t220 = "x" in let final core::double #t221 = #t219.{self::Test::[]}(#t220){(core::String) → core::double} in let final void #t222 = #t219.{self::Test::[]=}(#t220, #t221.{core::double::+}(1){(core::num) → core::double}){(core::String, core::num) → void} in #t221;
+}
+static method test9(self::Test<core::double, core::double> t, self::Test2<core::double, core::double> t2) → void {
+ core::double v3 = let final self::Test<core::double, core::double> #t223 = t in let final core::String #t224 = "x" in let final core::double #t225 = self::getDouble() in let final void #t226 = #t223.{self::Test::[]=}(#t224, #t225){(core::String, core::double) → void} in #t225;
+ core::double v6 = let final self::Test2<core::double, core::double> #t227 = t2 in let final core::String #t228 = "x" in let final core::double? #t229 = #t227.{self::Test2::[]}(#t228){(core::String) → core::double?} in #t229 == null ?{core::double} let final core::double #t230 = self::getDouble() in let final void #t231 = #t227.{self::Test2::[]=}(#t228, #t230){(core::String, core::double?) → void} in #t230 : #t229{core::double};
+ core::double v7 = let final self::Test<core::double, core::double> #t232 = t in let final core::String #t233 = "x" in let final core::double #t234 = #t232.{self::Test::[]}(#t233){(core::String) → core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t235 = #t232.{self::Test::[]=}(#t233, #t234){(core::String, core::double) → void} in #t234;
+ core::double v8 = let final self::Test<core::double, core::double> #t236 = t in let final core::String #t237 = "x" in let final core::double #t238 = #t236.{self::Test::[]}(#t237){(core::String) → core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t239 = #t236.{self::Test::[]=}(#t237, #t238){(core::String, core::double) → void} in #t238;
+ core::double v9 = let final self::Test<core::double, core::double> #t240 = t in let final core::String #t241 = "x" in let final core::double #t242 = #t240.{self::Test::[]}(#t241){(core::String) → core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t243 = #t240.{self::Test::[]=}(#t241, #t242){(core::String, core::double) → void} in #t242;
+ core::double v10 = let final self::Test<core::double, core::double> #t244 = t in let final core::String #t245 = "x" in let final core::double #t246 = #t244.{self::Test::[]}(#t245){(core::String) → core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t247 = #t244.{self::Test::[]=}(#t245, #t246){(core::String, core::double) → void} in #t246;
+ core::double v11 = let final self::Test<core::double, core::double> #t248 = t in let final core::String #t249 = "x" in let final core::double #t250 = #t248.{self::Test::[]}(#t249){(core::String) → core::double} in let final void #t251 = #t248.{self::Test::[]=}(#t249, #t250.{core::double::+}(1){(core::num) → core::double}){(core::String, core::double) → void} in #t250;
+}
+static method main() → dynamic {}
+
+
+Extra constant evaluation status:
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:23:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:26:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:26:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:29:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:29:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:33:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:33:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:36:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:36:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:40:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:42:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:44:53 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:47:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:47:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:50:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:50:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:53:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:53:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:56:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:56:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:60:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:60:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:64:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:64:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:68:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:68:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:71:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:71:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:75:53 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:78:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:78:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:81:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:81:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:85:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:85:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:88:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:88:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:92:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:95:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:95:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:99:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:101:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:103:53 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:106:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:106:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:109:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:109:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:112:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:112:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:115:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:115:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:119:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:119:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:123:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:123:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:127:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:127:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:130:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:130:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:134:53 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:137:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:137:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:140:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:140:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:144:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:144:71 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:147:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:147:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:151:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:154:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:154:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:158:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:160:50 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:162:53 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:165:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:165:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:168:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:168:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:171:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:171:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:174:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:174:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:178:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:178:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:182:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:182:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:186:74 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:186:74 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:189:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:189:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:193:53 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:196:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:196:54 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:199:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:199:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:203:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:203:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:207:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:207:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:211:74 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:211:74 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:214:51 -> StringConstant("x")
+Evaluated: VariableGet @ org-dartlang-testcase:///infer_assign_to_index_upwards2.dart:214:51 -> StringConstant("x")
+Extra constant evaluation: evaluated: 871, effectively constant: 103
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_local.dart
index d6b952a..2ab05f4 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_local.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -20,38 +22,38 @@
void test() {
B local;
- local = /*@ typeArgs=B* */ f();
+ local = /*@typeArgs=B**/ f();
- local ??= /*@ typeArgs=B* */ f();
+ local ??= /*@typeArgs=B**/ f();
- local /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ local /*@target=B.+*/ += /*@typeArgs=C**/ f();
- local /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ local /*@target=B.**/ *= /*@typeArgs=B**/ f();
- local /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ local /*@target=B.&*/ &= /*@typeArgs=A**/ f();
/*@target=B.-*/ --local;
local /*@target=B.-*/ --;
- var /*@ type=B* */ v1 = local = /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v1 = local = /*@typeArgs=B**/ f();
- var /*@ type=B* */ v2 =
- local ??= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v2 =
+ local ??= /*@typeArgs=B**/ f();
- var /*@ type=A* */ v3 = local
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@type=A**/ v3 = local
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
- var /*@ type=B* */ v4 = local
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v4 = local
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
- var /*@ type=C* */ v5 = local
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@type=C**/ v5 = local
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ --local;
+ var /*@type=B**/ v6 = /*@target=B.-*/ --local;
- var /*@ type=B* */ v7 = /*@ type=B* */ local
- /*@ type=B* */ /*@target=B.-*/ --;
+ var /*@type=B**/ v7 = /*@type=B**/ local
+ /*@type=B**/ /*@target=B.-*/ --;
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart
new file mode 100644
index 0000000..3cca74e
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart
@@ -0,0 +1,51 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+void test(B local, B? local2, B? local3) {
+ local = /*@typeArgs=B*/ f();
+
+ local2 ??= /*@typeArgs=B?*/ f();
+
+ local /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ local /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ local /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --local;
+
+ local /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = local = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = local3 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = local /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = local /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = local /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --local;
+
+ var /*@type=B*/ v7 = /*@type=B*/ local /*@type=B*/ /*@target=B.-*/ --;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.textual_outline.expect
new file mode 100644
index 0000000..76cd500
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.textual_outline.expect
@@ -0,0 +1,16 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+void test(B local, B? local2, B? local3) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..54c75c7
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.textual_outline_modelled.expect
@@ -0,0 +1,17 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+main() {}
+void test(B local, B? local2, B? local3) {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.expect
new file mode 100644
index 0000000..e817caa
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::B local, self::B? local2, self::B? local3) → void {
+ local = self::f<self::B>();
+ local2 == null ?{self::B?} local2 = self::f<self::B?>() : null;
+ local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = local = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = local3 in #t1 == null ?{self::B?} local3 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = local in let final self::B #t3 = local = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.modular.expect
new file mode 100644
index 0000000..e817caa
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.modular.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::B local, self::B? local2, self::B? local3) → void {
+ local = self::f<self::B>();
+ local2 == null ?{self::B?} local2 = self::f<self::B?>() : null;
+ local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = local = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = local3 in #t1 == null ?{self::B?} local3 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = local in let final self::B #t3 = local = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.outline.expect
new file mode 100644
index 0000000..ee73ba5
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.outline.expect
@@ -0,0 +1,30 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method test(self::B local, self::B? local2, self::B? local3) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.transformed.expect
new file mode 100644
index 0000000..e817caa
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local2.dart.weak.transformed.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::B local, self::B? local2, self::B? local3) → void {
+ local = self::f<self::B>();
+ local2 == null ?{self::B?} local2 = self::f<self::B?>() : null;
+ local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = local = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = local3 in #t1 == null ?{self::B?} local3 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = local = local.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = local = local.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = local = local.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = local = local.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = local in let final self::B #t3 = local = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart
index 6a3242d..758f432 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -10,68 +12,66 @@
double getDouble() => 0.0;
void test1(int t) {
- var /*@ type=int* */ v1 = t = getInt();
+ var /*@type=int**/ v1 = t = getInt();
- var /*@ type=num* */ v2 = t = getNum();
+ var /*@type=num**/ v2 = t = getNum();
- var /*@ type=int* */ v4 = t ??= getInt();
+ var /*@type=int**/ v4 = t ??= getInt();
- var /*@ type=num* */ v5 = t ??= getNum();
+ var /*@type=num**/ v5 = t ??= getNum();
- var /*@ type=int* */ v7 = t /*@target=num.+*/ += getInt();
+ var /*@type=int**/ v7 = t /*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = t /*@target=num.+*/ += getNum();
+ var /*@type=num**/ v8 = t /*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++t;
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++t;
- var /*@ type=int* */ v11 =
- /*@ type=int* */ t /*@ type=int* */ /*@target=num.+*/ ++;
+ var /*@type=int**/ v11 = /*@type=int**/ t /*@type=int**/ /*@target=num.+*/ ++;
}
void test2(num t) {
- var /*@ type=int* */ v1 = t = getInt();
+ var /*@type=int**/ v1 = t = getInt();
- var /*@ type=num* */ v2 = t = getNum();
+ var /*@type=num**/ v2 = t = getNum();
- var /*@ type=double* */ v3 = t = getDouble();
+ var /*@type=double**/ v3 = t = getDouble();
- var /*@ type=num* */ v4 = t ??= getInt();
+ var /*@type=num**/ v4 = t ??= getInt();
- var /*@ type=num* */ v5 = t ??= getNum();
+ var /*@type=num**/ v5 = t ??= getNum();
- var /*@ type=num* */ v6 = t ??= getDouble();
+ var /*@type=num**/ v6 = t ??= getDouble();
- var /*@ type=num* */ v7 = t /*@target=num.+*/ += getInt();
+ var /*@type=num**/ v7 = t /*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = t /*@target=num.+*/ += getNum();
+ var /*@type=num**/ v8 = t /*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = t /*@target=num.+*/ += getDouble();
+ var /*@type=num**/ v9 = t /*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++t;
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++t;
- var /*@ type=num* */ v11 =
- /*@ type=num* */ t /*@ type=num* */ /*@target=num.+*/ ++;
+ var /*@type=num**/ v11 = /*@type=num**/ t /*@type=num**/ /*@target=num.+*/ ++;
}
void test3(double t) {
- var /*@ type=num* */ v2 = t = getNum();
+ var /*@type=num**/ v2 = t = getNum();
- var /*@ type=double* */ v3 = t = getDouble();
+ var /*@type=double**/ v3 = t = getDouble();
- var /*@ type=num* */ v5 = t ??= getNum();
+ var /*@type=num**/ v5 = t ??= getNum();
- var /*@ type=double* */ v6 = t ??= getDouble();
+ var /*@type=double**/ v6 = t ??= getDouble();
- var /*@ type=double* */ v7 = t /*@target=double.+*/ += getInt();
+ var /*@type=double**/ v7 = t /*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = t /*@target=double.+*/ += getNum();
+ var /*@type=double**/ v8 = t /*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = t /*@target=double.+*/ += getDouble();
+ var /*@type=double**/ v9 = t /*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++t;
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++t;
- var /*@ type=double* */ v11 =
- /*@ type=double* */ t /*@ type=double* */ /*@target=double.+*/ ++;
+ var /*@type=double**/ v11 =
+ /*@type=double**/ t /*@type=double**/ /*@target=double.+*/ ++;
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart
new file mode 100644
index 0000000..9d06fc5
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart
@@ -0,0 +1,65 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+void test1(int t, int? t2) {
+ var /*@type=int*/ v1 = t = getInt();
+
+ var /*@type=int*/ v4 = t2 ??= getInt();
+
+ var /*@type=int*/ v7 = t /*@target=num.+*/ += getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++t;
+
+ var /*@type=int*/ v11 = /*@type=int*/ t /*@type=int*/ /*@target=num.+*/ ++;
+}
+
+void test2(num t, num? t2, num? t3, num? t4) {
+ var /*@type=int*/ v1 = t = getInt();
+
+ var /*@type=num*/ v2 = t = getNum();
+
+ var /*@type=double*/ v3 = t = getDouble();
+
+ var /*@type=num*/ v4 = t2 ??= getInt();
+
+ var /*@type=num*/ v5 = t3 ??= getNum();
+
+ var /*@type=num*/ v6 = t4 ??= getDouble();
+
+ var /*@type=num*/ v7 = t /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 = t /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 = t /*@target=num.+*/ += getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++t;
+
+ var /*@type=num*/ v11 = /*@type=num*/ t /*@type=num*/ /*@target=num.+*/ ++;
+}
+
+void test3(double t, double? t2) {
+ var /*@type=double*/ v3 = t = getDouble();
+
+ var /*@type=double*/ v6 = t2 ??= getDouble();
+
+ var /*@type=double*/ v7 = t /*@target=double.+*/ += getInt();
+
+ var /*@type=double*/ v8 = t /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 = t /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++t;
+
+ var /*@type=double*/ v11 =
+ /*@type=double*/ t /*@type=double*/ /*@target=double.+*/ ++;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..9202a99
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.textual_outline.expect
@@ -0,0 +1,9 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+void test1(int t, int? t2) {}
+void test2(num t, num? t2, num? t3, num? t4) {}
+void test3(double t, double? t2) {}
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..d299937
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,9 @@
+library test;
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
+void test1(int t, int? t2) {}
+void test2(num t, num? t2, num? t3, num? t4) {}
+void test3(double t, double? t2) {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.expect
new file mode 100644
index 0000000..62846c1
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.expect
@@ -0,0 +1,40 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1(core::int t, core::int? t2) → void {
+ core::int v1 = t = self::getInt();
+ core::int v4 = let final core::int? #t1 = t2 in #t1 == null ?{core::int} t2 = self::getInt() : #t1{core::int};
+ core::int v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = t = t.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = t in let final core::int #t3 = t = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+}
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void {
+ core::int v1 = t = self::getInt();
+ core::num v2 = t = self::getNum();
+ core::double v3 = t = self::getDouble();
+ core::num v4 = let final core::num? #t4 = t2 in #t4 == null ?{core::num} t2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = t3 in #t5 == null ?{core::num} t3 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = t4 in #t6 == null ?{core::num} t4 = self::getDouble() : #t6{core::num};
+ core::num v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = t = t.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = t = t.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = t = t.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = t in let final core::num #t8 = t = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+}
+static method test3(core::double t, core::double? t2) → void {
+ core::double v3 = t = self::getDouble();
+ core::double v6 = let final core::double? #t9 = t2 in #t9 == null ?{core::double} t2 = self::getDouble() : #t9{core::double};
+ core::double v7 = t = t.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = t = t.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = t = t.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = t = t.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = t in let final core::double #t11 = t = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..62846c1
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.modular.expect
@@ -0,0 +1,40 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1(core::int t, core::int? t2) → void {
+ core::int v1 = t = self::getInt();
+ core::int v4 = let final core::int? #t1 = t2 in #t1 == null ?{core::int} t2 = self::getInt() : #t1{core::int};
+ core::int v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = t = t.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = t in let final core::int #t3 = t = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+}
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void {
+ core::int v1 = t = self::getInt();
+ core::num v2 = t = self::getNum();
+ core::double v3 = t = self::getDouble();
+ core::num v4 = let final core::num? #t4 = t2 in #t4 == null ?{core::num} t2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = t3 in #t5 == null ?{core::num} t3 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = t4 in #t6 == null ?{core::num} t4 = self::getDouble() : #t6{core::num};
+ core::num v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = t = t.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = t = t.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = t = t.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = t in let final core::num #t8 = t = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+}
+static method test3(core::double t, core::double? t2) → void {
+ core::double v3 = t = self::getDouble();
+ core::double v6 = let final core::double? #t9 = t2 in #t9 == null ?{core::double} t2 = self::getDouble() : #t9{core::double};
+ core::double v7 = t = t.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = t = t.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = t = t.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = t = t.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = t in let final core::double #t11 = t = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..332425c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.outline.expect
@@ -0,0 +1,18 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method test1(core::int t, core::int? t2) → void
+ ;
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void
+ ;
+static method test3(core::double t, core::double? t2) → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..62846c1
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_local_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,40 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1(core::int t, core::int? t2) → void {
+ core::int v1 = t = self::getInt();
+ core::int v4 = let final core::int? #t1 = t2 in #t1 == null ?{core::int} t2 = self::getInt() : #t1{core::int};
+ core::int v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = t = t.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = t in let final core::int #t3 = t = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+}
+static method test2(core::num t, core::num? t2, core::num? t3, core::num? t4) → void {
+ core::int v1 = t = self::getInt();
+ core::num v2 = t = self::getNum();
+ core::double v3 = t = self::getDouble();
+ core::num v4 = let final core::num? #t4 = t2 in #t4 == null ?{core::num} t2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = t3 in #t5 == null ?{core::num} t3 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = t4 in #t6 == null ?{core::num} t4 = self::getDouble() : #t6{core::num};
+ core::num v7 = t = t.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = t = t.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = t = t.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = t = t.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = t in let final core::num #t8 = t = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+}
+static method test3(core::double t, core::double? t2) → void {
+ core::double v3 = t = self::getDouble();
+ core::double v6 = let final core::double? #t9 = t2 in #t9 == null ?{core::double} t2 = self::getDouble() : #t9{core::double};
+ core::double v7 = t = t.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = t = t.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = t = t.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = t = t.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = t in let final core::double #t11 = t = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart
index d9e5815..23bd343 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart
@@ -1,30 +1,30 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- int f;
+ int f = 0;
}
var v_assign = (new A(). /*@target=A.f*/ f = 1);
-var v_plus = (new /*@ type=A* */ A()
+var v_plus = (new /*@type=A*/ A()
. /*@target=A.f*/ /*@target=A.f*/ f /*@target=num.+*/ += 1);
-var v_minus = (new /*@ type=A* */ A()
+var v_minus = (new /*@type=A*/ A()
. /*@target=A.f*/ /*@target=A.f*/ f /*@target=num.-*/ -= 1);
-var v_multiply = (new /*@ type=A* */ A()
+var v_multiply = (new /*@type=A*/ A()
. /*@target=A.f*/ /*@target=A.f*/ f /*@target=num.**/ *= 1);
-var v_prefix_pp = (/*@target=num.+*/ ++new /*@ type=A* */ A()
+var v_prefix_pp = (/*@target=num.+*/ ++new /*@type=A*/ A()
. /*@target=A.f*/ /*@target=A.f*/ f);
-var v_prefix_mm = (/*@target=num.-*/ --new /*@ type=A* */ A()
+var v_prefix_mm = (/*@target=num.-*/ --new /*@type=A*/ A()
. /*@target=A.f*/ /*@target=A.f*/ f);
-var v_postfix_pp = (new /*@ type=A* */ A()
- . /*@ type=int* */ /*@target=A.f*/ /*@target=A.f*/
- /*@ type=int* */ f /*@target=num.+*/ ++);
-var v_postfix_mm = (new /*@ type=A* */ A()
- . /*@ type=int* */ /*@target=A.f*/ /*@target=A.f*/
- /*@ type=int* */ f /*@target=num.-*/ --);
+var v_postfix_pp = (new /*@type=A*/ A()
+ . /*@type=int*/ /*@target=A.f*/ /*@target=A.f*/
+ /*@type=int*/ f /*@target=num.+*/ ++);
+var v_postfix_mm = (new /*@type=A*/ A()
+ . /*@type=int*/ /*@target=A.f*/ /*@target=A.f*/
+ /*@type=int*/ f /*@target=num.-*/ --);
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline.expect
index f8430e7..5524381 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- int f;
+ int f = 0;
}
var v_assign = (new A().f = 1);
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline_modelled.expect
index 0c17d98..12ab51d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- int f;
+ int f = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.expect
index 6ae0089..020c76e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_assign = new self::A::•().{self::A::f} = 1;
-static field core::int* v_plus = let final self::A* #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-static field core::int* v_minus = let final self::A* #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}{core::int*}.{core::num::-}(1){(core::num*) →* core::int*};
-static field core::int* v_multiply = let final self::A* #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}{core::int*}.{core::num::*}(1){(core::num*) →* core::int*};
-static field core::int* v_prefix_pp = let final self::A* #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-static field core::int* v_prefix_mm = let final self::A* #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}{core::int*}.{core::num::-}(1){(core::num*) →* core::int*};
-static field core::int* v_postfix_pp = let final self::A* #t6 = new self::A::•() in let final core::int* #t7 = #t6.{self::A::f}{core::int*} in let final core::int* #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1){(core::num*) →* core::int*} in #t7;
-static field core::int* v_postfix_mm = let final self::A* #t9 = new self::A::•() in let final core::int* #t10 = #t9.{self::A::f}{core::int*} in let final core::int* #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1){(core::num*) →* core::int*} in #t10;
+static field core::int v_assign = new self::A::•().{self::A::f} = 1;
+static field core::int v_plus = let final self::A #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}{core::int}.{core::num::+}(1){(core::num) → core::int};
+static field core::int v_minus = let final self::A #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}{core::int}.{core::num::-}(1){(core::num) → core::int};
+static field core::int v_multiply = let final self::A #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}{core::int}.{core::num::*}(1){(core::num) → core::int};
+static field core::int v_prefix_pp = let final self::A #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}{core::int}.{core::num::+}(1){(core::num) → core::int};
+static field core::int v_prefix_mm = let final self::A #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}{core::int}.{core::num::-}(1){(core::num) → core::int};
+static field core::int v_postfix_pp = let final self::A #t6 = new self::A::•() in let final core::int #t7 = #t6.{self::A::f}{core::int} in let final core::int #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1){(core::num) → core::int} in #t7;
+static field core::int v_postfix_mm = let final self::A #t9 = new self::A::•() in let final core::int #t10 = #t9.{self::A::f}{core::int} in let final core::int #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1){(core::num) → core::int} in #t10;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.modular.expect
index 6ae0089..020c76e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.modular.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_assign = new self::A::•().{self::A::f} = 1;
-static field core::int* v_plus = let final self::A* #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-static field core::int* v_minus = let final self::A* #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}{core::int*}.{core::num::-}(1){(core::num*) →* core::int*};
-static field core::int* v_multiply = let final self::A* #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}{core::int*}.{core::num::*}(1){(core::num*) →* core::int*};
-static field core::int* v_prefix_pp = let final self::A* #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-static field core::int* v_prefix_mm = let final self::A* #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}{core::int*}.{core::num::-}(1){(core::num*) →* core::int*};
-static field core::int* v_postfix_pp = let final self::A* #t6 = new self::A::•() in let final core::int* #t7 = #t6.{self::A::f}{core::int*} in let final core::int* #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1){(core::num*) →* core::int*} in #t7;
-static field core::int* v_postfix_mm = let final self::A* #t9 = new self::A::•() in let final core::int* #t10 = #t9.{self::A::f}{core::int*} in let final core::int* #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1){(core::num*) →* core::int*} in #t10;
+static field core::int v_assign = new self::A::•().{self::A::f} = 1;
+static field core::int v_plus = let final self::A #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}{core::int}.{core::num::+}(1){(core::num) → core::int};
+static field core::int v_minus = let final self::A #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}{core::int}.{core::num::-}(1){(core::num) → core::int};
+static field core::int v_multiply = let final self::A #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}{core::int}.{core::num::*}(1){(core::num) → core::int};
+static field core::int v_prefix_pp = let final self::A #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}{core::int}.{core::num::+}(1){(core::num) → core::int};
+static field core::int v_prefix_mm = let final self::A #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}{core::int}.{core::num::-}(1){(core::num) → core::int};
+static field core::int v_postfix_pp = let final self::A #t6 = new self::A::•() in let final core::int #t7 = #t6.{self::A::f}{core::int} in let final core::int #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1){(core::num) → core::int} in #t7;
+static field core::int v_postfix_mm = let final self::A #t9 = new self::A::•() in let final core::int #t10 = #t9.{self::A::f}{core::int} in let final core::int #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1){(core::num) → core::int} in #t10;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.outline.expect
index 16d2edb..e9ccb16 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.outline.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f;
- synthetic constructor •() → self::A*
+ field core::int f;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_assign;
-static field core::int* v_plus;
-static field core::int* v_minus;
-static field core::int* v_multiply;
-static field core::int* v_prefix_pp;
-static field core::int* v_prefix_mm;
-static field core::int* v_postfix_pp;
-static field core::int* v_postfix_mm;
+static field core::int v_assign;
+static field core::int v_plus;
+static field core::int v_minus;
+static field core::int v_multiply;
+static field core::int v_prefix_pp;
+static field core::int v_prefix_mm;
+static field core::int v_postfix_pp;
+static field core::int v_postfix_mm;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.transformed.expect
index 6ae0089..020c76e 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property.dart.weak.transformed.expect
@@ -1,29 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_assign = new self::A::•().{self::A::f} = 1;
-static field core::int* v_plus = let final self::A* #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-static field core::int* v_minus = let final self::A* #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}{core::int*}.{core::num::-}(1){(core::num*) →* core::int*};
-static field core::int* v_multiply = let final self::A* #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}{core::int*}.{core::num::*}(1){(core::num*) →* core::int*};
-static field core::int* v_prefix_pp = let final self::A* #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}{core::int*}.{core::num::+}(1){(core::num*) →* core::int*};
-static field core::int* v_prefix_mm = let final self::A* #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}{core::int*}.{core::num::-}(1){(core::num*) →* core::int*};
-static field core::int* v_postfix_pp = let final self::A* #t6 = new self::A::•() in let final core::int* #t7 = #t6.{self::A::f}{core::int*} in let final core::int* #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1){(core::num*) →* core::int*} in #t7;
-static field core::int* v_postfix_mm = let final self::A* #t9 = new self::A::•() in let final core::int* #t10 = #t9.{self::A::f}{core::int*} in let final core::int* #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1){(core::num*) →* core::int*} in #t10;
+static field core::int v_assign = new self::A::•().{self::A::f} = 1;
+static field core::int v_plus = let final self::A #t1 = new self::A::•() in #t1.{self::A::f} = #t1.{self::A::f}{core::int}.{core::num::+}(1){(core::num) → core::int};
+static field core::int v_minus = let final self::A #t2 = new self::A::•() in #t2.{self::A::f} = #t2.{self::A::f}{core::int}.{core::num::-}(1){(core::num) → core::int};
+static field core::int v_multiply = let final self::A #t3 = new self::A::•() in #t3.{self::A::f} = #t3.{self::A::f}{core::int}.{core::num::*}(1){(core::num) → core::int};
+static field core::int v_prefix_pp = let final self::A #t4 = new self::A::•() in #t4.{self::A::f} = #t4.{self::A::f}{core::int}.{core::num::+}(1){(core::num) → core::int};
+static field core::int v_prefix_mm = let final self::A #t5 = new self::A::•() in #t5.{self::A::f} = #t5.{self::A::f}{core::int}.{core::num::-}(1){(core::num) → core::int};
+static field core::int v_postfix_pp = let final self::A #t6 = new self::A::•() in let final core::int #t7 = #t6.{self::A::f}{core::int} in let final core::int #t8 = #t6.{self::A::f} = #t7.{core::num::+}(1){(core::num) → core::int} in #t7;
+static field core::int v_postfix_mm = let final self::A #t9 = new self::A::•() in let final core::int #t10 = #t9.{self::A::f}{core::int} in let final core::int #t11 = #t9.{self::A::f} = #t10.{core::num::-}(1){(core::num) → core::int} in #t10;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart
index b4dd357..2b1f0c6 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -11,18 +11,18 @@
}
class B {
- A a;
+ A a = throw '';
}
-var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
- . /*@target=B.a*/ /*@target=B.a*/ a);
-var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
- . /*@target=B.a*/ /*@target=B.a*/ a);
-var v_postfix_pp = (new /*@ type=B* */ B()
- . /*@ type=A* */ /*@target=B.a*/ /*@target=B.a*/
- /*@ type=int* */ a /*@target=A.+*/ ++);
-var v_postfix_mm = (new /*@ type=B* */ B()
- . /*@ type=A* */ /*@target=B.a*/ /*@target=B.a*/
- /*@ type=double* */ a /*@target=A.-*/ --);
+var v_prefix_pp =
+ (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+var v_prefix_mm =
+ (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+var v_postfix_pp = (new /*@type=B*/ B()
+ . /*@type=A*/ /*@target=B.a*/ /*@target=B.a*/
+ /*@type=int*/ a /*@target=A.+*/ ++);
+var v_postfix_mm = (new /*@type=B*/ B()
+ . /*@type=A*/ /*@target=B.a*/ /*@target=B.a*/
+ /*@type=double*/ a /*@target=A.-*/ --);
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline.expect
index a7fbd9f..f84b618 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
@@ -7,7 +6,7 @@
}
class B {
- A a;
+ A a = throw '';
}
var v_prefix_pp = (++new B().a);
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline_modelled.expect
index d08a97e..7a08c89 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
@@ -7,7 +6,7 @@
}
class B {
- A a;
+ A a = throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.expect
index 1bf4996..4a89d3d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.expect
@@ -1,79 +1,59 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:17:36: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:18:22: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
-// ^
+// (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:19:36: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:20:22: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
-// ^
+// (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:40: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:37: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// /*@ type=int* */ a /*@target=A.+*/ ++);
+// /*@type=int*/ a /*@target=A.+*/ ++);
+// ^
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:40: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
+// /*@type=double*/ a /*@target=A.-*/ --);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:43: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// /*@ type=double* */ a /*@target=A.-*/ --);
-// ^
-//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
return 1;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a = null;
- synthetic constructor •() → self::B*
+ field self::A a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_prefix_pp = let final self::B* #t1 = new self::B::•() in #t1.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:17:36: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+static field core::int v_prefix_pp = let final self::B #t1 = new self::B::•() in #t1.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:18:22: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
- ^" in #t1.{self::B::a}{self::A*}.{self::A::+}(1){(dynamic) →* core::int*} as{TypeError} self::A*;
-static field core::double* v_prefix_mm = let final self::B* #t2 = new self::B::•() in #t2.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:19:36: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+ (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+ ^" in #t1.{self::B::a}{self::A}.{self::A::+}(1){(dynamic) → core::int} as{TypeError,ForNonNullableByDefault} self::A;
+static field core::double v_prefix_mm = let final self::B #t2 = new self::B::•() in #t2.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:20:22: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
- ^" in #t2.{self::B::a}{self::A*}.{self::A::-}(1){(dynamic) →* core::double*} as{TypeError} self::A*;
-static field self::A* v_postfix_pp = let final self::B* #t3 = new self::B::•() in let final self::A* #t4 = #t3.{self::B::a}{self::A*} in let final core::int* #t5 = #t3.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:40: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+ (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+ ^" in #t2.{self::B::a}{self::A}.{self::A::-}(1){(dynamic) → core::double} as{TypeError,ForNonNullableByDefault} self::A;
+static field self::A v_postfix_pp = let final self::B #t3 = new self::B::•() in let final self::A #t4 = #t3.{self::B::a}{self::A} in let final core::int #t5 = #t3.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:37: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
- /*@ type=int* */ a /*@target=A.+*/ ++);
- ^" in #t4.{self::A::+}(1){(dynamic) →* core::int*} as{TypeError} self::A* in #t4;
-static field self::A* v_postfix_mm = let final self::B* #t6 = new self::B::•() in let final self::A* #t7 = #t6.{self::B::a}{self::A*} in let final core::double* #t8 = #t6.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:43: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+ /*@type=int*/ a /*@target=A.+*/ ++);
+ ^" in #t4.{self::A::+}(1){(dynamic) → core::int} as{TypeError,ForNonNullableByDefault} self::A in #t4;
+static field self::A v_postfix_mm = let final self::B #t6 = new self::B::•() in let final self::A #t7 = #t6.{self::B::a}{self::A} in let final core::double #t8 = #t6.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:40: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
- /*@ type=double* */ a /*@target=A.-*/ --);
- ^" in #t7.{self::A::-}(1){(dynamic) →* core::double*} as{TypeError} self::A* in #t7;
+ /*@type=double*/ a /*@target=A.-*/ --);
+ ^" in #t7.{self::A::-}(1){(dynamic) → core::double} as{TypeError,ForNonNullableByDefault} self::A in #t7;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.modular.expect
index 1bf4996..4a89d3d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.modular.expect
@@ -1,79 +1,59 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:17:36: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:18:22: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
-// ^
+// (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:19:36: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:20:22: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
-// ^
+// (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:40: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:37: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// /*@ type=int* */ a /*@target=A.+*/ ++);
+// /*@type=int*/ a /*@target=A.+*/ ++);
+// ^
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:40: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
+// /*@type=double*/ a /*@target=A.-*/ --);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:43: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// /*@ type=double* */ a /*@target=A.-*/ --);
-// ^
-//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
return 1;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a = null;
- synthetic constructor •() → self::B*
+ field self::A a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_prefix_pp = let final self::B* #t1 = new self::B::•() in #t1.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:17:36: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+static field core::int v_prefix_pp = let final self::B #t1 = new self::B::•() in #t1.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:18:22: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
- ^" in #t1.{self::B::a}{self::A*}.{self::A::+}(1){(dynamic) →* core::int*} as{TypeError} self::A*;
-static field core::double* v_prefix_mm = let final self::B* #t2 = new self::B::•() in #t2.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:19:36: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+ (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+ ^" in #t1.{self::B::a}{self::A}.{self::A::+}(1){(dynamic) → core::int} as{TypeError,ForNonNullableByDefault} self::A;
+static field core::double v_prefix_mm = let final self::B #t2 = new self::B::•() in #t2.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:20:22: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
- ^" in #t2.{self::B::a}{self::A*}.{self::A::-}(1){(dynamic) →* core::double*} as{TypeError} self::A*;
-static field self::A* v_postfix_pp = let final self::B* #t3 = new self::B::•() in let final self::A* #t4 = #t3.{self::B::a}{self::A*} in let final core::int* #t5 = #t3.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:40: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+ (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+ ^" in #t2.{self::B::a}{self::A}.{self::A::-}(1){(dynamic) → core::double} as{TypeError,ForNonNullableByDefault} self::A;
+static field self::A v_postfix_pp = let final self::B #t3 = new self::B::•() in let final self::A #t4 = #t3.{self::B::a}{self::A} in let final core::int #t5 = #t3.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:37: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
- /*@ type=int* */ a /*@target=A.+*/ ++);
- ^" in #t4.{self::A::+}(1){(dynamic) →* core::int*} as{TypeError} self::A* in #t4;
-static field self::A* v_postfix_mm = let final self::B* #t6 = new self::B::•() in let final self::A* #t7 = #t6.{self::B::a}{self::A*} in let final core::double* #t8 = #t6.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:43: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+ /*@type=int*/ a /*@target=A.+*/ ++);
+ ^" in #t4.{self::A::+}(1){(dynamic) → core::int} as{TypeError,ForNonNullableByDefault} self::A in #t4;
+static field self::A v_postfix_mm = let final self::B #t6 = new self::B::•() in let final self::A #t7 = #t6.{self::B::a}{self::A} in let final core::double #t8 = #t6.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:40: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
- /*@ type=double* */ a /*@target=A.-*/ --);
- ^" in #t7.{self::A::-}(1){(dynamic) →* core::double*} as{TypeError} self::A* in #t7;
+ /*@type=double*/ a /*@target=A.-*/ --);
+ ^" in #t7.{self::A::-}(1){(dynamic) → core::double} as{TypeError,ForNonNullableByDefault} self::A in #t7;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.outline.expect
index 647803a..d8ef5fc 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a;
- synthetic constructor •() → self::B*
+ field self::A a;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_prefix_pp;
-static field core::double* v_prefix_mm;
-static field self::A* v_postfix_pp;
-static field self::A* v_postfix_mm;
+static field core::int v_prefix_pp;
+static field core::double v_prefix_mm;
+static field self::A v_postfix_pp;
+static field self::A v_postfix_mm;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.transformed.expect
index 1bf4996..4a89d3d 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart.weak.transformed.expect
@@ -1,79 +1,59 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:17:36: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:18:22: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
-// ^
+// (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:19:36: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:20:22: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
-// ^
+// (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:40: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:37: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// /*@ type=int* */ a /*@target=A.+*/ ++);
+// /*@type=int*/ a /*@target=A.+*/ ++);
+// ^
+//
+// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:40: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
+// /*@type=double*/ a /*@target=A.-*/ --);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:43: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
-// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-// /*@ type=double* */ a /*@target=A.-*/ --);
-// ^
-//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(dynamic other) → core::int*
+ operator +(dynamic other) → core::int
return 1;
- operator -(dynamic other) → core::double*
+ operator -(dynamic other) → core::double
return 2.0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::A* a = null;
- synthetic constructor •() → self::B*
+ field self::A a = throw "";
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::int* v_prefix_pp = let final self::B* #t1 = new self::B::•() in #t1.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:17:36: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+static field core::int v_prefix_pp = let final self::B #t1 = new self::B::•() in #t1.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:18:22: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-var v_prefix_pp = (/*@target=A.+*/ ++new /*@ type=B* */ B()
- ^" in #t1.{self::B::a}{self::A*}.{self::A::+}(1){(dynamic) →* core::int*} as{TypeError} self::A*;
-static field core::double* v_prefix_mm = let final self::B* #t2 = new self::B::•() in #t2.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:19:36: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+ (/*@target=A.+*/ ++new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+ ^" in #t1.{self::B::a}{self::A}.{self::A::+}(1){(dynamic) → core::int} as{TypeError,ForNonNullableByDefault} self::A;
+static field core::double v_prefix_mm = let final self::B #t2 = new self::B::•() in #t2.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:20:22: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
-var v_prefix_mm = (/*@target=A.-*/ --new /*@ type=B* */ B()
- ^" in #t2.{self::B::a}{self::A*}.{self::A::-}(1){(dynamic) →* core::double*} as{TypeError} self::A*;
-static field self::A* v_postfix_pp = let final self::B* #t3 = new self::B::•() in let final self::A* #t4 = #t3.{self::B::a}{self::A*} in let final core::int* #t5 = #t3.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:40: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
+ (/*@target=A.-*/ --new /*@type=B*/ B(). /*@target=B.a*/ /*@target=B.a*/ a);
+ ^" in #t2.{self::B::a}{self::A}.{self::A::-}(1){(dynamic) → core::double} as{TypeError,ForNonNullableByDefault} self::A;
+static field self::A v_postfix_pp = let final self::B #t3 = new self::B::•() in let final self::A #t4 = #t3.{self::B::a}{self::A} in let final core::int #t5 = #t3.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:23:37: Error: A value of type 'int' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
- /*@ type=int* */ a /*@target=A.+*/ ++);
- ^" in #t4.{self::A::+}(1){(dynamic) →* core::int*} as{TypeError} self::A* in #t4;
-static field self::A* v_postfix_mm = let final self::B* #t6 = new self::B::•() in let final self::A* #t7 = #t6.{self::B::a}{self::A*} in let final core::double* #t8 = #t6.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:43: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
+ /*@type=int*/ a /*@target=A.+*/ ++);
+ ^" in #t4.{self::A::+}(1){(dynamic) → core::int} as{TypeError,ForNonNullableByDefault} self::A in #t4;
+static field self::A v_postfix_mm = let final self::B #t6 = new self::B::•() in let final self::A #t7 = #t6.{self::B::a}{self::A} in let final core::double #t8 = #t6.{self::B::a} = invalid-expression "pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart:26:40: Error: A value of type 'double' can't be assigned to a variable of type 'A'.
- 'A' is from 'pkg/front_end/testcases/inference_new/infer_assign_to_property_custom.dart'.
- /*@ type=double* */ a /*@target=A.-*/ --);
- ^" in #t7.{self::A::-}(1){(dynamic) →* core::double*} as{TypeError} self::A* in #t7;
+ /*@type=double*/ a /*@target=A.-*/ --);
+ ^" in #t7.{self::A::-}(1){(dynamic) → core::double} as{TypeError,ForNonNullableByDefault} self::A in #t7;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full.dart
index 24d478e..5b20440 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -22,42 +24,42 @@
B member;
static void test(Test t) {
- t. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
- /*@ type=Test* */ /*@target=Test.member*/ t. /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- /*@target=B.-*/ -- /*@ type=Test* */ t
+ t. /*@target=Test.member*/ member = /*@typeArgs=B**/ f();
+ /*@type=Test**/ /*@target=Test.member*/ t. /*@target=Test.member*/ member
+ ??= /*@typeArgs=B**/ f();
+ /*@type=Test**/ t. /*@target=Test.member*/ /*@target=Test.member*/ member
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
+ /*@type=Test**/ t. /*@target=Test.member*/ /*@target=Test.member*/ member
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
+ /*@type=Test**/ t. /*@target=Test.member*/ /*@target=Test.member*/ member
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
+ /*@target=B.-*/ -- /*@type=Test**/ t
. /*@target=Test.member*/ /*@target=Test.member*/ member;
- /*@ type=Test* */ t. /*@target=Test.member*/ /*@target=Test.member*/ member
+ /*@type=Test**/ t. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
- var /*@ type=B* */ v1 =
- t. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
- var /*@ type=B* */ v2 =
- /*@ type=Test* */ /*@target=Test.member*/ t
+ var /*@type=B**/ v1 =
+ t. /*@target=Test.member*/ member = /*@typeArgs=B**/ f();
+ var /*@type=B**/ v2 =
+ /*@type=Test**/ /*@target=Test.member*/ t
. /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
- var /*@ type=A* */ v3 =
- /*@ type=Test* */ t
+ ??= /*@typeArgs=B**/ f();
+ var /*@type=A**/ v3 =
+ /*@type=Test**/ t
. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
- var /*@ type=B* */ v4 =
- /*@ type=Test* */ t
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
+ var /*@type=B**/ v4 =
+ /*@type=Test**/ t
. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
- var /*@ type=C* */ v5 =
- /*@ type=Test* */ t
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
+ var /*@type=C**/ v5 =
+ /*@type=Test**/ t
. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ -- /*@ type=Test* */ t
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
+ var /*@type=B**/ v6 = /*@target=B.-*/ -- /*@type=Test**/ t
. /*@target=Test.member*/ /*@target=Test.member*/ member;
- var /*@ type=B* */ v7 = /*@ type=Test* */ t
- . /*@ type=B* */ /*@target=Test.member*/ /*@target=Test.member*/
- /*@ type=B* */ member /*@target=B.-*/ --;
+ var /*@type=B**/ v7 = /*@type=Test**/ t
+ . /*@type=B**/ /*@target=Test.member*/ /*@target=Test.member*/
+ /*@type=B**/ member /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart
new file mode 100644
index 0000000..7a2c3cf
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart
@@ -0,0 +1,57 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member = throw '';
+ B? member2;
+
+ static void test(Test t) {
+ t. /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+ /*@type=Test*/ /*@target=Test.member2*/ t
+ . /*@target=Test.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+ /*@target=B.-*/ -- /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member;
+ /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
+ var /*@type=B*/ v1 =
+ t. /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+ var /*@type=B?*/ v2 = /*@type=Test*/ /*@target=Test.member2*/ t
+ . /*@target=Test.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+ var /*@type=B*/ v3 = /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+ var /*@type=B*/ v4 = /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+ var /*@type=C*/ v5 = /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+ var /*@type=B*/ v6 = /*@target=B.-*/ -- /*@type=Test*/ t
+ . /*@target=Test.member*/ /*@target=Test.member*/ member;
+ var /*@type=B*/ v7 = /*@type=Test*/ t
+ . /*@type=B*/ /*@target=Test.member*/ /*@target=Test.member*/
+ /*@type=B*/ member /*@target=B.-*/ --;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.textual_outline.expect
new file mode 100644
index 0000000..7736aed
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.textual_outline.expect
@@ -0,0 +1,22 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member = throw '';
+ B? member2;
+ static void test(Test t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..6f16193
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.textual_outline_modelled.expect
@@ -0,0 +1,22 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+class Test {
+ B? member2;
+ B member = throw '';
+ static void test(Test t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.expect
new file mode 100644
index 0000000..3f9076d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test t) → void {
+ t.{self::Test::member} = self::f<self::B>();
+ let final self::Test #t1 = t in #t1.{self::Test::member2}{self::B?} == null ?{self::B?} #t1.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test #t2 = t in #t2.{self::Test::member} = #t2.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test #t3 = t in #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test #t4 = t in #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test #t5 = t in #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ let final self::Test #t6 = t in #t6.{self::Test::member} = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = t.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test #t7 = t in let final self::B? #t8 = #t7.{self::Test::member2}{self::B?} in #t8 == null ?{self::B?} #t7.{self::Test::member2} = self::f<self::B?>() : #t8{self::B};
+ self::B v3 = let final self::Test #t9 = t in #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = let final self::Test #t10 = t in #t10.{self::Test::member} = #t10.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = let final self::Test #t11 = t in #t11.{self::Test::member} = #t11.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = let final self::Test #t12 = t in #t12.{self::Test::member} = #t12.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::Test #t13 = t in let final self::B #t14 = #t13.{self::Test::member}{self::B} in let final self::B #t15 = #t13.{self::Test::member} = #t14.{self::B::-}(1){(core::int) → self::B} in #t14;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.modular.expect
new file mode 100644
index 0000000..3f9076d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.modular.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test t) → void {
+ t.{self::Test::member} = self::f<self::B>();
+ let final self::Test #t1 = t in #t1.{self::Test::member2}{self::B?} == null ?{self::B?} #t1.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test #t2 = t in #t2.{self::Test::member} = #t2.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test #t3 = t in #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test #t4 = t in #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test #t5 = t in #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ let final self::Test #t6 = t in #t6.{self::Test::member} = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = t.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test #t7 = t in let final self::B? #t8 = #t7.{self::Test::member2}{self::B?} in #t8 == null ?{self::B?} #t7.{self::Test::member2} = self::f<self::B?>() : #t8{self::B};
+ self::B v3 = let final self::Test #t9 = t in #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = let final self::Test #t10 = t in #t10.{self::Test::member} = #t10.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = let final self::Test #t11 = t in #t11.{self::Test::member} = #t11.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = let final self::Test #t12 = t in #t12.{self::Test::member} = #t12.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::Test #t13 = t in let final self::B #t14 = #t13.{self::Test::member}{self::B} in let final self::B #t15 = #t13.{self::Test::member} = #t14.{self::B::-}(1){(core::int) → self::B} in #t14;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.outline.expect
new file mode 100644
index 0000000..12955e9
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ field self::B? member2;
+ synthetic constructor •() → self::Test
+ ;
+ static method test(self::Test t) → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.transformed.expect
new file mode 100644
index 0000000..3f9076d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_full2.dart.weak.transformed.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test t) → void {
+ t.{self::Test::member} = self::f<self::B>();
+ let final self::Test #t1 = t in #t1.{self::Test::member2}{self::B?} == null ?{self::B?} #t1.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test #t2 = t in #t2.{self::Test::member} = #t2.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test #t3 = t in #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test #t4 = t in #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test #t5 = t in #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ let final self::Test #t6 = t in #t6.{self::Test::member} = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = t.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test #t7 = t in let final self::B? #t8 = #t7.{self::Test::member2}{self::B?} in #t8 == null ?{self::B?} #t7.{self::Test::member2} = self::f<self::B?>() : #t8{self::B};
+ self::B v3 = let final self::Test #t9 = t in #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = let final self::Test #t10 = t in #t10.{self::Test::member} = #t10.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = let final self::Test #t11 = t in #t11.{self::Test::member} = #t11.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = let final self::Test #t12 = t in #t12.{self::Test::member} = #t12.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::Test #t13 = t in let final self::B #t14 = #t13.{self::Test::member}{self::B} in let final self::B #t15 = #t13.{self::Test::member} = #t14.{self::B::-}(1){(core::int) → self::B} in #t14;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart
index 0905ef9..c316708 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -22,24 +24,24 @@
B member;
static void test(Test t) {
- /*@ type=Test* */ t
- ?. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
+ /*@type=Test**/ t
+ ?. /*@target=Test.member*/ member = /*@typeArgs=B**/ f();
t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ ??= /*@typeArgs=B**/ f();
t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
t?.
/*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
/*@target=B.-*/ -- t?.
/*@target=Test.member*/ /*@target=Test.member*/ member;
@@ -48,34 +50,34 @@
/*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
- var /*@ type=B* */ v1 =
- /*@ type=Test* */ t
- ?. /*@target=Test.member*/ member = /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v1 =
+ /*@type=Test**/ t
+ ?. /*@target=Test.member*/ member = /*@typeArgs=B**/ f();
- var /*@ type=B* */ v2 =
+ var /*@type=B**/ v2 =
t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ ??= /*@typeArgs=B**/ f();
- var /*@ type=A* */ v3 =
+ var /*@type=A**/ v3 =
t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
- var /*@ type=B* */ v4 =
+ var /*@type=B**/ v4 =
t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
- var /*@ type=C* */ v5 =
+ var /*@type=C**/ v5 =
t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ -- t
+ var /*@type=B**/ v6 = /*@target=B.-*/ -- t
?. /*@target=Test.member*/ /*@target=Test.member*/ member;
- var /*@ type=B* */ v7 = t
+ var /*@type=B**/ v7 = t
?. /*@target=Test.member*/ /*@target=Test.member*/ member
/*@target=B.-*/ --;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart
new file mode 100644
index 0000000..c70a66f
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart
@@ -0,0 +1,65 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member = throw '';
+ B? member2;
+
+ static void test(Test? t) {
+ /*@type=Test?*/ /*@promotedType=Test*/ t
+ ?. /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+
+ t?. /*@target=Test.member2*/ /*@target=Test.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member;
+
+ t?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
+
+ var /*@type=B?*/ v1 = /*@type=Test?*/ /*@promotedType=Test*/ t
+ ?. /*@target=Test.member*/ member = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = t
+ ?. /*@target=Test.member2*/ /*@target=Test.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B?*/ v3 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B?*/ v4 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C?*/ v5 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B?*/ v6 = /*@target=B.-*/ --t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member;
+
+ var /*@type=B?*/ v7 = t
+ ?. /*@target=Test.member*/ /*@target=Test.member*/ member /*@target=B.-*/ --;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.textual_outline.expect
new file mode 100644
index 0000000..86f86c4
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.textual_outline.expect
@@ -0,0 +1,22 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Test {
+ B member = throw '';
+ B? member2;
+ static void test(Test? t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..45af6d7
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.textual_outline_modelled.expect
@@ -0,0 +1,22 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+class Test {
+ B? member2;
+ B member = throw '';
+ static void test(Test? t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect
new file mode 100644
index 0000000..aa67c0b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test? t) → void {
+ let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
+ let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member2}{self::B?} == null ?{self::B?} #t2.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test? #t6 = t in #t6 == null ?{self::B?} null : let final self::B #t7 = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
+ let final self::Test? #t9 = t in #t9 == null ?{self::B?} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B? v1 = let final self::Test? #t10 = t in #t10 == null ?{self::B?} null : #t10{self::Test}.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test? #t11 = t in #t11 == null ?{self::B?} null : let final self::B? #t12 = #t11.{self::Test::member2}{self::B?} in #t12 == null ?{self::B?} #t11.{self::Test::member2} = self::f<self::B?>() : #t12{self::B};
+ self::B? v3 = let final self::Test? #t13 = t in #t13 == null ?{self::B?} null : let final self::B #t14 = #t13.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
+ self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
+ self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
+ self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect
new file mode 100644
index 0000000..aa67c0b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.modular.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test? t) → void {
+ let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
+ let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member2}{self::B?} == null ?{self::B?} #t2.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test? #t6 = t in #t6 == null ?{self::B?} null : let final self::B #t7 = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
+ let final self::Test? #t9 = t in #t9 == null ?{self::B?} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B? v1 = let final self::Test? #t10 = t in #t10 == null ?{self::B?} null : #t10{self::Test}.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test? #t11 = t in #t11 == null ?{self::B?} null : let final self::B? #t12 = #t11.{self::Test::member2}{self::B?} in #t12 == null ?{self::B?} #t11.{self::Test::member2} = self::f<self::B?>() : #t12{self::B};
+ self::B? v3 = let final self::Test? #t13 = t in #t13 == null ?{self::B?} null : let final self::B #t14 = #t13.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
+ self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
+ self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
+ self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.outline.expect
new file mode 100644
index 0000000..5125b3b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Test extends core::Object {
+ field self::B member;
+ field self::B? member2;
+ synthetic constructor •() → self::Test
+ ;
+ static method test(self::Test? t) → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
new file mode 100644
index 0000000..aa67c0b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware2.dart.weak.transformed.expect
@@ -0,0 +1,53 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Test extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Test
+ : super core::Object::•()
+ ;
+ static method test(self::Test? t) → void {
+ let final self::Test? #t1 = t in #t1 == null ?{self::B?} null : #t1{self::Test}.{self::Test::member} = self::f<self::B>();
+ let final self::Test? #t2 = t in #t2 == null ?{self::B?} null : #t2.{self::Test::member2}{self::B?} == null ?{self::B?} #t2.{self::Test::member2} = self::f<self::B?>() : null;
+ let final self::Test? #t3 = t in #t3 == null ?{self::B?} null : #t3.{self::Test::member} = #t3.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ let final self::Test? #t4 = t in #t4 == null ?{self::B?} null : #t4.{self::Test::member} = #t4.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ let final self::Test? #t5 = t in #t5 == null ?{self::C?} null : #t5.{self::Test::member} = #t5.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ let final self::Test? #t6 = t in #t6 == null ?{self::B?} null : let final self::B #t7 = #t6.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t8 = #t6.{self::Test::member} = #t7 in #t7;
+ let final self::Test? #t9 = t in #t9 == null ?{self::B?} null : #t9.{self::Test::member} = #t9.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B};
+ self::B? v1 = let final self::Test? #t10 = t in #t10 == null ?{self::B?} null : #t10{self::Test}.{self::Test::member} = self::f<self::B>();
+ self::B? v2 = let final self::Test? #t11 = t in #t11 == null ?{self::B?} null : let final self::B? #t12 = #t11.{self::Test::member2}{self::B?} in #t12 == null ?{self::B?} #t11.{self::Test::member2} = self::f<self::B?>() : #t12{self::B};
+ self::B? v3 = let final self::Test? #t13 = t in #t13 == null ?{self::B?} null : let final self::B #t14 = #t13.{self::Test::member}{self::B}.{self::B::+}(self::f<self::C>()){(self::C) → self::B} in let final void #t15 = #t13.{self::Test::member} = #t14 in #t14;
+ self::B? v4 = let final self::Test? #t16 = t in #t16 == null ?{self::B?} null : let final self::B #t17 = #t16.{self::Test::member}{self::B}.{self::B::*}(self::f<self::B>()){(self::B) → self::B} in let final void #t18 = #t16.{self::Test::member} = #t17 in #t17;
+ self::C? v5 = let final self::Test? #t19 = t in #t19 == null ?{self::C?} null : let final self::C #t20 = #t19.{self::Test::member}{self::B}.{self::B::&}(self::f<self::A>()){(self::A) → self::C} in let final void #t21 = #t19.{self::Test::member} = #t20 in #t20;
+ self::B? v6 = let final self::Test? #t22 = t in #t22 == null ?{self::B?} null : let final self::B #t23 = #t22.{self::Test::member}{self::B}.{self::B::-}(1){(core::int) → self::B} in let final void #t24 = #t22.{self::Test::member} = #t23 in #t23;
+ self::B? v7 = let final self::Test? #t25 = t in #t25 == null ?{self::B?} null : let final self::B #t26 = #t25.{self::Test::member}{self::B} in let final void #t27 = #t25.{self::Test::member} = #t26.{self::B::-}(1){(core::int) → self::B} in #t26;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart
index 692f54f..55f52eb 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,33 +15,33 @@
int prop;
static void test(Test1 t) {
- var /*@ type=int* */ v1 = /*@ type=Test1* */ t
+ var /*@type=int**/ v1 = /*@type=Test1**/ t
?. /*@target=Test1.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = /*@ type=Test1* */ t
+ var /*@type=num**/ v2 = /*@type=Test1**/ t
?. /*@target=Test1.prop*/ prop = getNum();
- var /*@ type=int* */ v4 = t?.
+ var /*@type=int**/ v4 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
??= getInt();
- var /*@ type=num* */ v5 = t?.
+ var /*@type=num**/ v5 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
??= getNum();
- var /*@ type=int* */ v7 = t?.
+ var /*@type=int**/ v7 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = t?.
+ var /*@type=num**/ v8 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++
t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
- var /*@ type=int* */ v11 = t?.
+ var /*@type=int**/ v11 = t?.
/*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ ++;
}
@@ -49,43 +51,43 @@
num prop;
static void test(Test2 t) {
- var /*@ type=int* */ v1 = /*@ type=Test2* */ t
+ var /*@type=int**/ v1 = /*@type=Test2**/ t
?. /*@target=Test2.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = /*@ type=Test2* */ t
+ var /*@type=num**/ v2 = /*@type=Test2**/ t
?. /*@target=Test2.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = /*@ type=Test2* */ t
+ var /*@type=double**/ v3 = /*@type=Test2**/ t
?. /*@target=Test2.prop*/ prop = getDouble();
- var /*@ type=num* */ v4 = t?.
+ var /*@type=num**/ v4 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
??= getInt();
- var /*@ type=num* */ v5 = t?.
+ var /*@type=num**/ v5 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
??= getNum();
- var /*@ type=num* */ v6 = t?.
+ var /*@type=num**/ v6 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
??= getDouble();
- var /*@ type=num* */ v7 = t?.
+ var /*@type=num**/ v7 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = t?.
+ var /*@type=num**/ v8 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = t?.
+ var /*@type=num**/ v9 = t?.
/*@target=Test2.prop*/ /*@target=Test2.prop*/
prop /*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++
t?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
- var /*@ type=num* */ v11 =
+ var /*@type=num**/ v11 =
t?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ ++;
}
@@ -95,39 +97,39 @@
double prop;
static void test3(Test3 t) {
- var /*@ type=num* */ v2 = /*@ type=Test3* */ t
+ var /*@type=num**/ v2 = /*@type=Test3**/ t
?. /*@target=Test3.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = /*@ type=Test3* */ t
+ var /*@type=double**/ v3 = /*@type=Test3**/ t
?. /*@target=Test3.prop*/ prop = getDouble();
- var /*@ type=num* */ v5 = t?.
+ var /*@type=num**/ v5 = t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
??= getNum();
- var /*@ type=double* */ v6 =
+ var /*@type=double**/ v6 =
t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
??= getDouble();
- var /*@ type=double* */ v7 = t?.
+ var /*@type=double**/ v7 = t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = t?.
+ var /*@type=double**/ v8 = t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 =
+ var /*@type=double**/ v9 =
t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++
t?.
/*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
- var /*@ type=double* */ v11 =
+ var /*@type=double**/ v11 =
t?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ ++;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart
new file mode 100644
index 0000000..bb3247f
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart
@@ -0,0 +1,111 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int prop = 0;
+ int? prop2;
+
+ static void test(Test1? t) {
+ var /*@type=int?*/ v1 = /*@type=Test1?*/ /*@promotedType=Test1*/ t
+ ?. /*@target=Test1.prop*/ prop = getInt();
+
+ var /*@type=int?*/ v4 =
+ t?. /*@target=Test1.prop2*/ /*@target=Test1.prop2*/ prop2 ??= getInt();
+
+ var /*@type=int?*/ v7 =
+ t?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=int?*/ v10 = /*@target=num.+*/ ++t
+ ?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
+
+ var /*@type=int?*/ v11 = t
+ ?. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop /*@target=num.+*/ ++;
+ }
+}
+
+class Test2 {
+ num prop = 0;
+ num? prop2;
+
+ static void test(Test2? t) {
+ var /*@type=int?*/ v1 = /*@type=Test2?*/ /*@promotedType=Test2*/ t
+ ?. /*@target=Test2.prop*/ prop = getInt();
+
+ var /*@type=num?*/ v2 = /*@type=Test2?*/ /*@promotedType=Test2*/ t
+ ?. /*@target=Test2.prop*/ prop = getNum();
+
+ var /*@type=double?*/ v3 = /*@type=Test2?*/ /*@promotedType=Test2*/ t
+ ?. /*@target=Test2.prop*/ prop = getDouble();
+
+ var /*@type=num?*/ v4 =
+ t?. /*@target=Test2.prop2*/ /*@target=Test2.prop2*/ prop2 ??= getInt();
+
+ var /*@type=num?*/ v5 =
+ t?. /*@target=Test2.prop2*/ /*@target=Test2.prop2*/ prop2 ??= getNum();
+
+ var /*@type=num?*/ v6 =
+ t?. /*@target=Test2.prop2*/ /*@target=Test2.prop2*/ prop2 ??=
+ getDouble();
+
+ var /*@type=num?*/ v7 =
+ t?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop /*@target=num.+*/ +=
+ getInt();
+
+ var /*@type=num?*/ v8 =
+ t?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop /*@target=num.+*/ +=
+ getNum();
+
+ var /*@type=double?*/ v9 = t?.
+ /*@target=Test2.prop*/ /*@target=Test2.prop*/
+ prop /*@target=num.+*/ += getDouble();
+
+ var /*@type=num?*/ v10 = /*@target=num.+*/ ++t
+ ?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
+
+ var /*@type=num?*/ v11 = t
+ ?. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop /*@target=num.+*/ ++;
+ }
+}
+
+class Test3 {
+ double prop = 0;
+ double? prop2;
+
+ static void test3(Test3? t) {
+ var /*@type=double?*/ v3 = /*@type=Test3?*/ /*@promotedType=Test3*/ t
+ ?. /*@target=Test3.prop*/ prop = getDouble();
+
+ var /*@type=double?*/ v6 =
+ t?. /*@target=Test3.prop2*/ /*@target=Test3.prop2*/ prop2 ??=
+ getDouble();
+
+ var /*@type=double?*/ v7 =
+ t?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ +=
+ getInt();
+
+ var /*@type=double?*/ v8 =
+ t?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ +=
+ getNum();
+
+ var /*@type=double?*/ v9 =
+ t?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ +=
+ getDouble();
+
+ var /*@type=double?*/ v10 = /*@target=double.+*/ ++t
+ ?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
+
+ var /*@type=double?*/ v11 = t
+ ?. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ ++;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..813b55d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.textual_outline.expect
@@ -0,0 +1,25 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int prop = 0;
+ int? prop2;
+ static void test(Test1? t) {}
+}
+
+class Test2 {
+ num prop = 0;
+ num? prop2;
+ static void test(Test2? t) {}
+}
+
+class Test3 {
+ double prop = 0;
+ double? prop2;
+ static void test3(Test3? t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..970a68c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,24 @@
+library test;
+
+class Test1 {
+ int? prop2;
+ int prop = 0;
+ static void test(Test1? t) {}
+}
+
+class Test2 {
+ num? prop2;
+ num prop = 0;
+ static void test(Test2? t) {}
+}
+
+class Test3 {
+ double? prop2;
+ double prop = 0;
+ static void test3(Test3? t) {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect
new file mode 100644
index 0000000..592b84d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ static method test(self::Test1? t) → void {
+ core::int? v1 = let final self::Test1? #t1 = t in #t1 == null ?{core::int?} null : #t1{self::Test1}.{self::Test1::prop} = self::getInt();
+ core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
+ core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
+ core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
+ core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+ }
+}
+class Test2 extends core::Object {
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ static method test(self::Test2? t) → void {
+ core::int? v1 = let final self::Test2? #t13 = t in #t13 == null ?{core::int?} null : #t13{self::Test2}.{self::Test2::prop} = self::getInt();
+ core::num? v2 = let final self::Test2? #t14 = t in #t14 == null ?{core::num?} null : #t14{self::Test2}.{self::Test2::prop} = self::getNum();
+ core::double? v3 = let final self::Test2? #t15 = t in #t15 == null ?{core::double?} null : #t15{self::Test2}.{self::Test2::prop} = self::getDouble();
+ core::num? v4 = let final self::Test2? #t16 = t in #t16 == null ?{core::num?} null : let final core::num? #t17 = #t16.{self::Test2::prop2}{core::num?} in #t17 == null ?{core::num} #t16.{self::Test2::prop2} = self::getInt() : #t17{core::num};
+ core::num? v5 = let final self::Test2? #t18 = t in #t18 == null ?{core::num?} null : let final core::num? #t19 = #t18.{self::Test2::prop2}{core::num?} in #t19 == null ?{core::num} #t18.{self::Test2::prop2} = self::getNum() : #t19{core::num};
+ core::num? v6 = let final self::Test2? #t20 = t in #t20 == null ?{core::num?} null : let final core::num? #t21 = #t20.{self::Test2::prop2}{core::num?} in #t21 == null ?{core::num} #t20.{self::Test2::prop2} = self::getDouble() : #t21{core::num};
+ core::num? v7 = let final self::Test2? #t22 = t in #t22 == null ?{core::num?} null : let final core::num #t23 = #t22.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
+ core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
+ core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
+ core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
+ core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+ }
+}
+class Test3 extends core::Object {
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ static method test3(self::Test3? t) → void {
+ core::double? v3 = let final self::Test3? #t37 = t in #t37 == null ?{core::double?} null : #t37{self::Test3}.{self::Test3::prop} = self::getDouble();
+ core::double? v6 = let final self::Test3? #t38 = t in #t38 == null ?{core::double?} null : let final core::double? #t39 = #t38.{self::Test3::prop2}{core::double?} in #t39 == null ?{core::double} #t38.{self::Test3::prop2} = self::getDouble() : #t39{core::double};
+ core::double? v7 = let final self::Test3? #t40 = t in #t40 == null ?{core::double?} null : let final core::double #t41 = #t40.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
+ core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
+ core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
+ core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
+ core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..592b84d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.modular.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ static method test(self::Test1? t) → void {
+ core::int? v1 = let final self::Test1? #t1 = t in #t1 == null ?{core::int?} null : #t1{self::Test1}.{self::Test1::prop} = self::getInt();
+ core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
+ core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
+ core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
+ core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+ }
+}
+class Test2 extends core::Object {
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ static method test(self::Test2? t) → void {
+ core::int? v1 = let final self::Test2? #t13 = t in #t13 == null ?{core::int?} null : #t13{self::Test2}.{self::Test2::prop} = self::getInt();
+ core::num? v2 = let final self::Test2? #t14 = t in #t14 == null ?{core::num?} null : #t14{self::Test2}.{self::Test2::prop} = self::getNum();
+ core::double? v3 = let final self::Test2? #t15 = t in #t15 == null ?{core::double?} null : #t15{self::Test2}.{self::Test2::prop} = self::getDouble();
+ core::num? v4 = let final self::Test2? #t16 = t in #t16 == null ?{core::num?} null : let final core::num? #t17 = #t16.{self::Test2::prop2}{core::num?} in #t17 == null ?{core::num} #t16.{self::Test2::prop2} = self::getInt() : #t17{core::num};
+ core::num? v5 = let final self::Test2? #t18 = t in #t18 == null ?{core::num?} null : let final core::num? #t19 = #t18.{self::Test2::prop2}{core::num?} in #t19 == null ?{core::num} #t18.{self::Test2::prop2} = self::getNum() : #t19{core::num};
+ core::num? v6 = let final self::Test2? #t20 = t in #t20 == null ?{core::num?} null : let final core::num? #t21 = #t20.{self::Test2::prop2}{core::num?} in #t21 == null ?{core::num} #t20.{self::Test2::prop2} = self::getDouble() : #t21{core::num};
+ core::num? v7 = let final self::Test2? #t22 = t in #t22 == null ?{core::num?} null : let final core::num #t23 = #t22.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
+ core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
+ core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
+ core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
+ core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+ }
+}
+class Test3 extends core::Object {
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ static method test3(self::Test3? t) → void {
+ core::double? v3 = let final self::Test3? #t37 = t in #t37 == null ?{core::double?} null : #t37{self::Test3}.{self::Test3::prop} = self::getDouble();
+ core::double? v6 = let final self::Test3? #t38 = t in #t38 == null ?{core::double?} null : let final core::double? #t39 = #t38.{self::Test3::prop2}{core::double?} in #t39 == null ?{core::double} #t38.{self::Test3::prop2} = self::getDouble() : #t39{core::double};
+ core::double? v7 = let final self::Test3? #t40 = t in #t40 == null ?{core::double?} null : let final core::double #t41 = #t40.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
+ core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
+ core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
+ core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
+ core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..21d9cba
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop;
+ field core::int? prop2;
+ synthetic constructor •() → self::Test1
+ ;
+ static method test(self::Test1? t) → void
+ ;
+}
+class Test2 extends core::Object {
+ field core::num prop;
+ field core::num? prop2;
+ synthetic constructor •() → self::Test2
+ ;
+ static method test(self::Test2? t) → void
+ ;
+}
+class Test3 extends core::Object {
+ field core::double prop;
+ field core::double? prop2;
+ synthetic constructor •() → self::Test3
+ ;
+ static method test3(self::Test3? t) → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..592b84d
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_null_aware_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ static method test(self::Test1? t) → void {
+ core::int? v1 = let final self::Test1? #t1 = t in #t1 == null ?{core::int?} null : #t1{self::Test1}.{self::Test1::prop} = self::getInt();
+ core::int? v4 = let final self::Test1? #t2 = t in #t2 == null ?{core::int?} null : let final core::int? #t3 = #t2.{self::Test1::prop2}{core::int?} in #t3 == null ?{core::int} #t2.{self::Test1::prop2} = self::getInt() : #t3{core::int};
+ core::int? v7 = let final self::Test1? #t4 = t in #t4 == null ?{core::int?} null : let final core::int #t5 = #t4.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int} in let final void #t6 = #t4.{self::Test1::prop} = #t5 in #t5;
+ core::int? v10 = let final self::Test1? #t7 = t in #t7 == null ?{core::int?} null : let final core::int #t8 = #t7.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int} in let final void #t9 = #t7.{self::Test1::prop} = #t8 in #t8;
+ core::int? v11 = let final self::Test1? #t10 = t in #t10 == null ?{core::int?} null : let final core::int #t11 = #t10.{self::Test1::prop}{core::int} in let final void #t12 = #t10.{self::Test1::prop} = #t11.{core::num::+}(1){(core::num) → core::int} in #t11;
+ }
+}
+class Test2 extends core::Object {
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ static method test(self::Test2? t) → void {
+ core::int? v1 = let final self::Test2? #t13 = t in #t13 == null ?{core::int?} null : #t13{self::Test2}.{self::Test2::prop} = self::getInt();
+ core::num? v2 = let final self::Test2? #t14 = t in #t14 == null ?{core::num?} null : #t14{self::Test2}.{self::Test2::prop} = self::getNum();
+ core::double? v3 = let final self::Test2? #t15 = t in #t15 == null ?{core::double?} null : #t15{self::Test2}.{self::Test2::prop} = self::getDouble();
+ core::num? v4 = let final self::Test2? #t16 = t in #t16 == null ?{core::num?} null : let final core::num? #t17 = #t16.{self::Test2::prop2}{core::num?} in #t17 == null ?{core::num} #t16.{self::Test2::prop2} = self::getInt() : #t17{core::num};
+ core::num? v5 = let final self::Test2? #t18 = t in #t18 == null ?{core::num?} null : let final core::num? #t19 = #t18.{self::Test2::prop2}{core::num?} in #t19 == null ?{core::num} #t18.{self::Test2::prop2} = self::getNum() : #t19{core::num};
+ core::num? v6 = let final self::Test2? #t20 = t in #t20 == null ?{core::num?} null : let final core::num? #t21 = #t20.{self::Test2::prop2}{core::num?} in #t21 == null ?{core::num} #t20.{self::Test2::prop2} = self::getDouble() : #t21{core::num};
+ core::num? v7 = let final self::Test2? #t22 = t in #t22 == null ?{core::num?} null : let final core::num #t23 = #t22.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num} in let final void #t24 = #t22.{self::Test2::prop} = #t23 in #t23;
+ core::num? v8 = let final self::Test2? #t25 = t in #t25 == null ?{core::num?} null : let final core::num #t26 = #t25.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num} in let final void #t27 = #t25.{self::Test2::prop} = #t26 in #t26;
+ core::double? v9 = let final self::Test2? #t28 = t in #t28 == null ?{core::double?} null : let final core::double #t29 = #t28.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double} in let final void #t30 = #t28.{self::Test2::prop} = #t29 in #t29;
+ core::num? v10 = let final self::Test2? #t31 = t in #t31 == null ?{core::num?} null : let final core::num #t32 = #t31.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num} in let final void #t33 = #t31.{self::Test2::prop} = #t32 in #t32;
+ core::num? v11 = let final self::Test2? #t34 = t in #t34 == null ?{core::num?} null : let final core::num #t35 = #t34.{self::Test2::prop}{core::num} in let final void #t36 = #t34.{self::Test2::prop} = #t35.{core::num::+}(1){(core::num) → core::num} in #t35;
+ }
+}
+class Test3 extends core::Object {
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ static method test3(self::Test3? t) → void {
+ core::double? v3 = let final self::Test3? #t37 = t in #t37 == null ?{core::double?} null : #t37{self::Test3}.{self::Test3::prop} = self::getDouble();
+ core::double? v6 = let final self::Test3? #t38 = t in #t38 == null ?{core::double?} null : let final core::double? #t39 = #t38.{self::Test3::prop2}{core::double?} in #t39 == null ?{core::double} #t38.{self::Test3::prop2} = self::getDouble() : #t39{core::double};
+ core::double? v7 = let final self::Test3? #t40 = t in #t40 == null ?{core::double?} null : let final core::double #t41 = #t40.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double} in let final void #t42 = #t40.{self::Test3::prop} = #t41 in #t41;
+ core::double? v8 = let final self::Test3? #t43 = t in #t43 == null ?{core::double?} null : let final core::double #t44 = #t43.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double} in let final void #t45 = #t43.{self::Test3::prop} = #t44 in #t44;
+ core::double? v9 = let final self::Test3? #t46 = t in #t46 == null ?{core::double?} null : let final core::double #t47 = #t46.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double} in let final void #t48 = #t46.{self::Test3::prop} = #t47 in #t47;
+ core::double? v10 = let final self::Test3? #t49 = t in #t49 == null ?{core::double?} null : let final core::double #t50 = #t49.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double} in let final void #t51 = #t49.{self::Test3::prop} = #t50 in #t50;
+ core::double? v11 = let final self::Test3? #t52 = t in #t52 == null ?{core::double?} null : let final core::double #t53 = #t52.{self::Test3::prop}{core::double} in let final void #t54 = #t52.{self::Test3::prop} = #t53.{core::double::+}(1){(core::num) → core::double} in #t53;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super.dart
index 00881df..bb02773 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -24,47 +26,47 @@
class Test extends Base {
void test() {
- super.member = /*@ typeArgs=B* */ f();
+ super.member = /*@typeArgs=B**/ f();
super. /*@target=Base.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ ??= /*@typeArgs=B**/ f();
super. /*@target=Base.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
super. /*@target=Base.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
super. /*@target=Base.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
/*@target=B.-*/ --super. /*@target=Base.member*/ member;
super. /*@target=Base.member*/ member
/*@target=B.-*/ --;
- var /*@ type=B* */ v1 = super.member = /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v1 = super.member = /*@typeArgs=B**/ f();
- var /*@ type=B* */ v2 = super. /*@target=Base.member*/ member
- ??= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v2 = super. /*@target=Base.member*/ member
+ ??= /*@typeArgs=B**/ f();
- var /*@ type=A* */ v3 = super. /*@target=Base.member*/ member
- /*@target=B.+*/ += /*@ typeArgs=C* */ f();
+ var /*@type=A**/ v3 = super. /*@target=Base.member*/ member
+ /*@target=B.+*/ += /*@typeArgs=C**/ f();
- var /*@ type=B* */ v4 = super. /*@target=Base.member*/ member
- /*@target=B.**/ *= /*@ typeArgs=B* */ f();
+ var /*@type=B**/ v4 = super. /*@target=Base.member*/ member
+ /*@target=B.**/ *= /*@typeArgs=B**/ f();
- var /*@ type=C* */ v5 = super. /*@target=Base.member*/ member
- /*@target=B.&*/ &= /*@ typeArgs=A* */ f();
+ var /*@type=C**/ v5 = super. /*@target=Base.member*/ member
+ /*@target=B.&*/ &= /*@typeArgs=A**/ f();
- var /*@ type=B* */ v6 = /*@target=B.-*/ --super
+ var /*@type=B**/ v6 = /*@target=B.-*/ --super
.
/*@target=Base.member*/ member;
- var /*@ type=B* */ v7 = super
+ var /*@type=B**/ v7 = super
.
- /*@ type=B* */ /*@target=Base.member*/
- /*@ type=B* */ member /*@target=B.-*/ --;
+ /*@type=B**/ /*@target=Base.member*/
+ /*@type=B**/ member /*@target=B.-*/ --;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart
new file mode 100644
index 0000000..59ea01a
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart
@@ -0,0 +1,69 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B member = throw '';
+ B? member2;
+}
+
+class Test extends Base {
+ void test() {
+ super.member = /*@typeArgs=B*/ f();
+
+ super. /*@target=Base.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+
+ super
+ . /*@target=Base.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ super
+ . /*@target=Base.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ super
+ . /*@target=Base.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --super. /*@target=Base.member*/ member;
+
+ super. /*@target=Base.member*/ member /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = super.member = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 =
+ super. /*@target=Base.member2*/ member2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = super
+ . /*@target=Base.member*/ member /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = super
+ . /*@target=Base.member*/ member /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = super
+ . /*@target=Base.member*/ member /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --super
+ . /*@target=Base.member*/ member;
+
+ var /*@type=B*/ v7 = super
+ .
+ /*@type=B*/ /*@target=Base.member*/
+ /*@type=B*/ member /*@target=B.-*/ --;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.textual_outline.expect
new file mode 100644
index 0000000..0d42283
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.textual_outline.expect
@@ -0,0 +1,25 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+class Base {
+ B member = throw '';
+ B? member2;
+}
+
+class Test extends Base {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..3aebb1b
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.textual_outline_modelled.expect
@@ -0,0 +1,25 @@
+library test;
+
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+}
+
+class Base {
+ B? member2;
+ B member = throw '';
+}
+
+class C extends B {}
+
+class Test extends Base {
+ void test() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.expect
new file mode 100644
index 0000000..a451f53
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.expect
@@ -0,0 +1,58 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::member} = self::f<self::B>();
+ super.{self::Base::member2} == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : null;
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = super.{self::Base::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = super.{self::Base::member2} in #t1 == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = super.{self::Base::member} in let final self::B #t3 = super.{self::Base::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.modular.expect
new file mode 100644
index 0000000..a451f53
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.modular.expect
@@ -0,0 +1,58 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::member} = self::f<self::B>();
+ super.{self::Base::member2} == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : null;
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = super.{self::Base::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = super.{self::Base::member2} in #t1 == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = super.{self::Base::member} in let final self::B #t3 = super.{self::Base::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.outline.expect
new file mode 100644
index 0000000..344c5cc
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.outline.expect
@@ -0,0 +1,40 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+class Base extends core::Object {
+ field self::B member;
+ field self::B? member2;
+ synthetic constructor •() → self::Base
+ ;
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ ;
+ method test() → void
+ ;
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.transformed.expect
new file mode 100644
index 0000000..a451f53
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super2.dart.weak.transformed.expect
@@ -0,0 +1,58 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+class Base extends core::Object {
+ field self::B member = throw "";
+ field self::B? member2 = null;
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+}
+class Test extends self::Base {
+ synthetic constructor •() → self::Test
+ : super self::Base::•()
+ ;
+ method test() → void {
+ super.{self::Base::member} = self::f<self::B>();
+ super.{self::Base::member2} == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : null;
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = super.{self::Base::member} = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = super.{self::Base::member2} in #t1 == null ?{self::B?} super.{self::Base::member2} = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = super.{self::Base::member} = super.{self::Base::member}.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = super.{self::Base::member} = super.{self::Base::member}.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = super.{self::Base::member} = super.{self::Base::member}.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = super.{self::Base::member} = super.{self::Base::member}.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = super.{self::Base::member} in let final self::B #t3 = super.{self::Base::member} = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+ }
+}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards.dart
index fb14b71..5a6f7fe 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -17,98 +19,98 @@
class Test1 extends Base {
void test() {
- var /*@ type=int* */ v1 = super.intProp = getInt();
+ var /*@type=int**/ v1 = super.intProp = getInt();
- var /*@ type=num* */ v2 = super.intProp = getNum();
+ var /*@type=num**/ v2 = super.intProp = getNum();
- var /*@ type=int* */ v4 = super. /*@target=Base.intProp*/ intProp
+ var /*@type=int**/ v4 = super. /*@target=Base.intProp*/ intProp
??= getInt();
- var /*@ type=num* */ v5 = super. /*@target=Base.intProp*/ intProp
+ var /*@type=num**/ v5 = super. /*@target=Base.intProp*/ intProp
??= getNum();
- var /*@ type=int* */ v7 = super. /*@target=Base.intProp*/ intProp
+ var /*@type=int**/ v7 = super. /*@target=Base.intProp*/ intProp
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = super. /*@target=Base.intProp*/ intProp
+ var /*@type=num**/ v8 = super. /*@target=Base.intProp*/ intProp
/*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++super
. /*@target=Base.intProp*/ intProp;
- var /*@ type=int* */ v11 = super
- . /*@ type=int* */ /*@target=Base.intProp*/
- /*@ type=int* */ intProp /*@target=num.+*/ ++;
+ var /*@type=int**/ v11 = super
+ . /*@type=int**/ /*@target=Base.intProp*/
+ /*@type=int**/ intProp /*@target=num.+*/ ++;
}
}
class Test2 extends Base {
void test() {
- var /*@ type=int* */ v1 = super.numProp = getInt();
+ var /*@type=int**/ v1 = super.numProp = getInt();
- var /*@ type=num* */ v2 = super.numProp = getNum();
+ var /*@type=num**/ v2 = super.numProp = getNum();
- var /*@ type=double* */ v3 = super.numProp = getDouble();
+ var /*@type=double**/ v3 = super.numProp = getDouble();
- var /*@ type=num* */ v4 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num**/ v4 = super. /*@target=Base.numProp*/ numProp
??= getInt();
- var /*@ type=num* */ v5 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num**/ v5 = super. /*@target=Base.numProp*/ numProp
??= getNum();
- var /*@ type=num* */ v6 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num**/ v6 = super. /*@target=Base.numProp*/ numProp
??= getDouble();
- var /*@ type=num* */ v7 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num**/ v7 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num**/ v8 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = super. /*@target=Base.numProp*/ numProp
+ var /*@type=num**/ v9 = super. /*@target=Base.numProp*/ numProp
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++super
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++super
. /*@target=Base.numProp*/ numProp;
- var /*@ type=num* */ v11 = super
- . /*@ type=num* */ /*@target=Base.numProp*/
- /*@ type=num* */ numProp /*@target=num.+*/ ++;
+ var /*@type=num**/ v11 = super
+ . /*@type=num**/ /*@target=Base.numProp*/
+ /*@type=num**/ numProp /*@target=num.+*/ ++;
}
}
class Test3 extends Base {
void test3() {
- var /*@ type=num* */ v2 = super.doubleProp = getNum();
+ var /*@type=num**/ v2 = super.doubleProp = getNum();
- var /*@ type=double* */ v3 = super.doubleProp = getDouble();
+ var /*@type=double**/ v3 = super.doubleProp = getDouble();
- var /*@ type=num* */ v5 = super. /*@target=Base.doubleProp*/ doubleProp
+ var /*@type=num**/ v5 = super. /*@target=Base.doubleProp*/ doubleProp
??= getNum();
- var /*@ type=double* */ v6 = super. /*@target=Base.doubleProp*/ doubleProp
+ var /*@type=double**/ v6 = super. /*@target=Base.doubleProp*/ doubleProp
??= getDouble();
- var /*@ type=double* */ v7 = super
+ var /*@type=double**/ v7 = super
. /*@target=Base.doubleProp*/
doubleProp /*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = super
+ var /*@type=double**/ v8 = super
. /*@target=Base.doubleProp*/
doubleProp /*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = super
+ var /*@type=double**/ v9 = super
. /*@target=Base.doubleProp*/
doubleProp /*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 =
+ var /*@type=double**/ v10 =
/*@target=double.+*/ ++super
. /*@target=Base.doubleProp*/
doubleProp;
- var /*@ type=double* */ v11 = super
- . /*@ type=double* */ /*@target=Base.doubleProp*/
- /*@ type=double* */ doubleProp /*@target=double.+*/ ++;
+ var /*@type=double**/ v11 = super
+ . /*@type=double**/ /*@target=Base.doubleProp*/
+ /*@type=double**/ doubleProp /*@target=double.+*/ ++;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart
new file mode 100644
index 0000000..42d6f75
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart
@@ -0,0 +1,104 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Base {
+ int intProp = 0;
+ int? intProp2;
+ num numProp = 0;
+ num? numProp2;
+ double doubleProp = 0;
+ double? doubleProp2;
+}
+
+class Test1 extends Base {
+ void test() {
+ var /*@type=int*/ v1 = super.intProp = getInt();
+
+ var /*@type=int*/ v4 =
+ super. /*@target=Base.intProp2*/ intProp2 ??= getInt();
+
+ var /*@type=int*/ v7 =
+ super. /*@target=Base.intProp*/ intProp /*@target=num.+*/ += getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++super
+ . /*@target=Base.intProp*/ intProp;
+
+ var /*@type=int*/ v11 = super
+ . /*@type=int*/ /*@target=Base.intProp*/
+ /*@type=int*/ intProp /*@target=num.+*/ ++;
+ }
+}
+
+class Test2 extends Base {
+ void test() {
+ var /*@type=int*/ v1 = super.numProp = getInt();
+
+ var /*@type=num*/ v2 = super.numProp = getNum();
+
+ var /*@type=double*/ v3 = super.numProp = getDouble();
+
+ var /*@type=num*/ v4 =
+ super. /*@target=Base.numProp2*/ numProp2 ??= getInt();
+
+ var /*@type=num*/ v5 =
+ super. /*@target=Base.numProp2*/ numProp2 ??= getNum();
+
+ var /*@type=num*/ v6 =
+ super. /*@target=Base.numProp2*/ numProp2 ??= getDouble();
+
+ var /*@type=num*/ v7 =
+ super. /*@target=Base.numProp*/ numProp /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 =
+ super. /*@target=Base.numProp*/ numProp /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 = super
+ . /*@target=Base.numProp*/ numProp /*@target=num.+*/ += getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++super
+ . /*@target=Base.numProp*/ numProp;
+
+ var /*@type=num*/ v11 = super
+ . /*@type=num*/ /*@target=Base.numProp*/
+ /*@type=num*/ numProp /*@target=num.+*/ ++;
+ }
+}
+
+class Test3 extends Base {
+ void test3() {
+ var /*@type=double*/ v3 = super.doubleProp = getDouble();
+
+ var /*@type=double*/ v6 =
+ super. /*@target=Base.doubleProp2*/ doubleProp2 ??= getDouble();
+
+ var /*@type=double*/ v7 = super
+ . /*@target=Base.doubleProp*/
+ doubleProp /*@target=double.+*/ += getInt();
+
+ var /*@type=double*/ v8 = super
+ . /*@target=Base.doubleProp*/
+ doubleProp /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 = super
+ . /*@target=Base.doubleProp*/
+ doubleProp /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++super
+ . /*@target=Base.doubleProp*/
+ doubleProp;
+
+ var /*@type=double*/ v11 = super
+ . /*@type=double*/ /*@target=Base.doubleProp*/
+ /*@type=double*/ doubleProp /*@target=double.+*/ ++;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..371ffeb
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.textual_outline.expect
@@ -0,0 +1,28 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Base {
+ int intProp = 0;
+ int? intProp2;
+ num numProp = 0;
+ num? numProp2;
+ double doubleProp = 0;
+ double? doubleProp2;
+}
+
+class Test1 extends Base {
+ void test() {}
+}
+
+class Test2 extends Base {
+ void test() {}
+}
+
+class Test3 extends Base {
+ void test3() {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..230af7c
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,27 @@
+library test;
+
+class Base {
+ double? doubleProp2;
+ double doubleProp = 0;
+ int? intProp2;
+ int intProp = 0;
+ num? numProp2;
+ num numProp = 0;
+}
+
+class Test1 extends Base {
+ void test() {}
+}
+
+class Test2 extends Base {
+ void test() {}
+}
+
+class Test3 extends Base {
+ void test3() {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.expect
new file mode 100644
index 0000000..12e10f4
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Base extends core::Object {
+ field core::int intProp = 0;
+ field core::int? intProp2 = null;
+ field core::num numProp = 0;
+ field core::num? numProp2 = null;
+ field core::double doubleProp = 0.0;
+ field core::double? doubleProp2 = null;
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+}
+class Test1 extends self::Base {
+ synthetic constructor •() → self::Test1
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = super.{self::Base::intProp} = self::getInt();
+ core::int v4 = let final core::int? #t1 = super.{self::Base::intProp2} in #t1 == null ?{core::int} super.{self::Base::intProp2} = self::getInt() : #t1{core::int};
+ core::int v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = super.{self::Base::intProp} in let final core::int #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends self::Base {
+ synthetic constructor •() → self::Test2
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = super.{self::Base::numProp} = self::getInt();
+ core::num v2 = super.{self::Base::numProp} = self::getNum();
+ core::double v3 = super.{self::Base::numProp} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = super.{self::Base::numProp2} in #t4 == null ?{core::num} super.{self::Base::numProp2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = super.{self::Base::numProp2} in #t5 == null ?{core::num} super.{self::Base::numProp2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = super.{self::Base::numProp2} in #t6 == null ?{core::num} super.{self::Base::numProp2} = self::getDouble() : #t6{core::num};
+ core::num v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = super.{self::Base::numProp} in let final core::num #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends self::Base {
+ synthetic constructor •() → self::Test3
+ : super self::Base::•()
+ ;
+ method test3() → void {
+ core::double v3 = super.{self::Base::doubleProp} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = super.{self::Base::doubleProp2} in #t9 == null ?{core::double} super.{self::Base::doubleProp2} = self::getDouble() : #t9{core::double};
+ core::double v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = super.{self::Base::doubleProp} in let final core::double #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..12e10f4
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.modular.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Base extends core::Object {
+ field core::int intProp = 0;
+ field core::int? intProp2 = null;
+ field core::num numProp = 0;
+ field core::num? numProp2 = null;
+ field core::double doubleProp = 0.0;
+ field core::double? doubleProp2 = null;
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+}
+class Test1 extends self::Base {
+ synthetic constructor •() → self::Test1
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = super.{self::Base::intProp} = self::getInt();
+ core::int v4 = let final core::int? #t1 = super.{self::Base::intProp2} in #t1 == null ?{core::int} super.{self::Base::intProp2} = self::getInt() : #t1{core::int};
+ core::int v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = super.{self::Base::intProp} in let final core::int #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends self::Base {
+ synthetic constructor •() → self::Test2
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = super.{self::Base::numProp} = self::getInt();
+ core::num v2 = super.{self::Base::numProp} = self::getNum();
+ core::double v3 = super.{self::Base::numProp} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = super.{self::Base::numProp2} in #t4 == null ?{core::num} super.{self::Base::numProp2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = super.{self::Base::numProp2} in #t5 == null ?{core::num} super.{self::Base::numProp2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = super.{self::Base::numProp2} in #t6 == null ?{core::num} super.{self::Base::numProp2} = self::getDouble() : #t6{core::num};
+ core::num v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = super.{self::Base::numProp} in let final core::num #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends self::Base {
+ synthetic constructor •() → self::Test3
+ : super self::Base::•()
+ ;
+ method test3() → void {
+ core::double v3 = super.{self::Base::doubleProp} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = super.{self::Base::doubleProp2} in #t9 == null ?{core::double} super.{self::Base::doubleProp2} = self::getDouble() : #t9{core::double};
+ core::double v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = super.{self::Base::doubleProp} in let final core::double #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..6500afd
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.outline.expect
@@ -0,0 +1,40 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Base extends core::Object {
+ field core::int intProp;
+ field core::int? intProp2;
+ field core::num numProp;
+ field core::num? numProp2;
+ field core::double doubleProp;
+ field core::double? doubleProp2;
+ synthetic constructor •() → self::Base
+ ;
+}
+class Test1 extends self::Base {
+ synthetic constructor •() → self::Test1
+ ;
+ method test() → void
+ ;
+}
+class Test2 extends self::Base {
+ synthetic constructor •() → self::Test2
+ ;
+ method test() → void
+ ;
+}
+class Test3 extends self::Base {
+ synthetic constructor •() → self::Test3
+ ;
+ method test3() → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..12e10f4
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_super_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Base extends core::Object {
+ field core::int intProp = 0;
+ field core::int? intProp2 = null;
+ field core::num numProp = 0;
+ field core::num? numProp2 = null;
+ field core::double doubleProp = 0.0;
+ field core::double? doubleProp2 = null;
+ synthetic constructor •() → self::Base
+ : super core::Object::•()
+ ;
+}
+class Test1 extends self::Base {
+ synthetic constructor •() → self::Test1
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = super.{self::Base::intProp} = self::getInt();
+ core::int v4 = let final core::int? #t1 = super.{self::Base::intProp2} in #t1 == null ?{core::int} super.{self::Base::intProp2} = self::getInt() : #t1{core::int};
+ core::int v7 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = super.{self::Base::intProp} = super.{self::Base::intProp}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = super.{self::Base::intProp} in let final core::int #t3 = super.{self::Base::intProp} = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+ }
+}
+class Test2 extends self::Base {
+ synthetic constructor •() → self::Test2
+ : super self::Base::•()
+ ;
+ method test() → void {
+ core::int v1 = super.{self::Base::numProp} = self::getInt();
+ core::num v2 = super.{self::Base::numProp} = self::getNum();
+ core::double v3 = super.{self::Base::numProp} = self::getDouble();
+ core::num v4 = let final core::num? #t4 = super.{self::Base::numProp2} in #t4 == null ?{core::num} super.{self::Base::numProp2} = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = super.{self::Base::numProp2} in #t5 == null ?{core::num} super.{self::Base::numProp2} = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = super.{self::Base::numProp2} in #t6 == null ?{core::num} super.{self::Base::numProp2} = self::getDouble() : #t6{core::num};
+ core::num v7 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = super.{self::Base::numProp} = super.{self::Base::numProp}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = super.{self::Base::numProp} in let final core::num #t8 = super.{self::Base::numProp} = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+ }
+}
+class Test3 extends self::Base {
+ synthetic constructor •() → self::Test3
+ : super self::Base::•()
+ ;
+ method test3() → void {
+ core::double v3 = super.{self::Base::doubleProp} = self::getDouble();
+ core::double v6 = let final core::double? #t9 = super.{self::Base::doubleProp2} in #t9 == null ?{core::double} super.{self::Base::doubleProp2} = self::getDouble() : #t9{core::double};
+ core::double v7 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = super.{self::Base::doubleProp} = super.{self::Base::doubleProp}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = super.{self::Base::doubleProp} in let final core::double #t11 = super.{self::Base::doubleProp} = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards.dart
index e3c79e3..48ffd3a 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -13,26 +15,26 @@
int prop;
static void test(Test1 t) {
- var /*@ type=int* */ v1 = t. /*@target=Test1.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = t. /*@target=Test1.prop*/ prop = getNum();
- var /*@ type=int* */ v4 = /*@ type=Test1* */ /*@target=Test1.prop*/ t
+ var /*@type=int**/ v1 = t. /*@target=Test1.prop*/ prop = getInt();
+ var /*@type=num**/ v2 = t. /*@target=Test1.prop*/ prop = getNum();
+ var /*@type=int**/ v4 = /*@type=Test1**/ /*@target=Test1.prop*/ t
. /*@target=Test1.prop*/ prop
??= getInt();
- var /*@ type=num* */ v5 = /*@ type=Test1* */ /*@target=Test1.prop*/ t
+ var /*@type=num**/ v5 = /*@type=Test1**/ /*@target=Test1.prop*/ t
. /*@target=Test1.prop*/ prop
??= getNum();
- var /*@ type=int* */ v7 = /*@ type=Test1* */ t
+ var /*@type=int**/ v7 = /*@type=Test1**/ t
. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = /*@ type=Test1* */ t
+ var /*@type=num**/ v8 = /*@type=Test1**/ t
. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=int* */ v10 = /*@target=num.+*/ ++ /*@ type=Test1* */ t
+ var /*@type=int**/ v10 = /*@target=num.+*/ ++ /*@type=Test1**/ t
. /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
- var /*@ type=int* */ v11 =
- /*@ type=Test1* */ t
- . /*@ type=int* */ /*@target=Test1.prop*/ /*@target=Test1.prop*/
- /*@ type=int* */ prop /*@target=num.+*/ ++;
+ var /*@type=int**/ v11 =
+ /*@type=Test1**/ t
+ . /*@type=int**/ /*@target=Test1.prop*/ /*@target=Test1.prop*/
+ /*@type=int**/ prop /*@target=num.+*/ ++;
}
}
@@ -40,33 +42,33 @@
num prop;
static void test(Test2 t) {
- var /*@ type=int* */ v1 = t. /*@target=Test2.prop*/ prop = getInt();
- var /*@ type=num* */ v2 = t. /*@target=Test2.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
- var /*@ type=num* */ v4 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
+ var /*@type=int**/ v1 = t. /*@target=Test2.prop*/ prop = getInt();
+ var /*@type=num**/ v2 = t. /*@target=Test2.prop*/ prop = getNum();
+ var /*@type=double**/ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
+ var /*@type=num**/ v4 = /*@type=Test2**/ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
??= getInt();
- var /*@ type=num* */ v5 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
+ var /*@type=num**/ v5 = /*@type=Test2**/ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
??= getNum();
- var /*@ type=num* */ v6 = /*@ type=Test2* */ /*@target=Test2.prop*/ t
+ var /*@type=num**/ v6 = /*@type=Test2**/ /*@target=Test2.prop*/ t
. /*@target=Test2.prop*/ prop
??= getDouble();
- var /*@ type=num* */ v7 = /*@ type=Test2* */ t
+ var /*@type=num**/ v7 = /*@type=Test2**/ t
. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getInt();
- var /*@ type=num* */ v8 = /*@ type=Test2* */ t
+ var /*@type=num**/ v8 = /*@type=Test2**/ t
. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getNum();
- var /*@ type=num* */ v9 = /*@ type=Test2* */ t
+ var /*@type=num**/ v9 = /*@type=Test2**/ t
. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop
/*@target=num.+*/ += getDouble();
- var /*@ type=num* */ v10 = /*@target=num.+*/ ++ /*@ type=Test2* */ t
+ var /*@type=num**/ v10 = /*@target=num.+*/ ++ /*@type=Test2**/ t
. /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
- var /*@ type=num* */ v11 =
- /*@ type=Test2* */ t
- . /*@ type=num* */ /*@target=Test2.prop*/ /*@target=Test2.prop*/
- /*@ type=num* */ prop /*@target=num.+*/ ++;
+ var /*@type=num**/ v11 =
+ /*@type=Test2**/ t
+ . /*@type=num**/ /*@target=Test2.prop*/ /*@target=Test2.prop*/
+ /*@type=num**/ prop /*@target=num.+*/ ++;
}
}
@@ -74,29 +76,29 @@
double prop;
static void test3(Test3 t) {
- var /*@ type=num* */ v2 = t. /*@target=Test3.prop*/ prop = getNum();
- var /*@ type=double* */ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
- var /*@ type=num* */ v5 = /*@ type=Test3* */ /*@target=Test3.prop*/ t
+ var /*@type=num**/ v2 = t. /*@target=Test3.prop*/ prop = getNum();
+ var /*@type=double**/ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
+ var /*@type=num**/ v5 = /*@type=Test3**/ /*@target=Test3.prop*/ t
. /*@target=Test3.prop*/ prop
??= getNum();
- var /*@ type=double* */ v6 = /*@ type=Test3* */ /*@target=Test3.prop*/ t
+ var /*@type=double**/ v6 = /*@type=Test3**/ /*@target=Test3.prop*/ t
. /*@target=Test3.prop*/ prop
??= getDouble();
- var /*@ type=double* */ v7 = /*@ type=Test3* */ t
+ var /*@type=double**/ v7 = /*@type=Test3**/ t
. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getInt();
- var /*@ type=double* */ v8 = /*@ type=Test3* */ t
+ var /*@type=double**/ v8 = /*@type=Test3**/ t
. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getNum();
- var /*@ type=double* */ v9 = /*@ type=Test3* */ t
+ var /*@type=double**/ v9 = /*@type=Test3**/ t
. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop
/*@target=double.+*/ += getDouble();
- var /*@ type=double* */ v10 = /*@target=double.+*/ ++ /*@ type=Test3* */ t
+ var /*@type=double**/ v10 = /*@target=double.+*/ ++ /*@type=Test3**/ t
. /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
- var /*@ type=double* */ v11 =
- /*@ type=Test3* */ t
- . /*@ type=double* */ /*@target=Test3.prop*/ /*@target=Test3.prop*/
- /*@ type=double* */ prop /*@target=double.+*/ ++;
+ var /*@type=double**/ v11 =
+ /*@type=Test3**/ t
+ . /*@type=double**/ /*@target=Test3.prop*/ /*@target=Test3.prop*/
+ /*@type=double**/ prop /*@target=double.+*/ ++;
}
}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart
new file mode 100644
index 0000000..724e061
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart
@@ -0,0 +1,87 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int prop = 0;
+ int? prop2;
+
+ static void test(Test1 t) {
+ var /*@type=int*/ v1 = t. /*@target=Test1.prop*/ prop = getInt();
+ var /*@type=int*/ v4 = /*@type=Test1*/ /*@target=Test1.prop2*/ t
+ . /*@target=Test1.prop2*/ prop2 ??= getInt();
+ var /*@type=int*/ v7 = /*@type=Test1*/ t
+ . /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop /*@target=num.+*/ +=
+ getInt();
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++ /*@type=Test1*/ t
+ . /*@target=Test1.prop*/ /*@target=Test1.prop*/ prop;
+ var /*@type=int*/ v11 = /*@type=Test1*/ t
+ . /*@type=int*/ /*@target=Test1.prop*/ /*@target=Test1.prop*/
+ /*@type=int*/ prop /*@target=num.+*/ ++;
+ }
+}
+
+class Test2 {
+ num prop = 0;
+ num? prop2;
+
+ static void test(Test2 t) {
+ var /*@type=int*/ v1 = t. /*@target=Test2.prop*/ prop = getInt();
+ var /*@type=num*/ v2 = t. /*@target=Test2.prop*/ prop = getNum();
+ var /*@type=double*/ v3 = t. /*@target=Test2.prop*/ prop = getDouble();
+ var /*@type=num*/ v4 = /*@type=Test2*/ /*@target=Test2.prop2*/ t
+ . /*@target=Test2.prop2*/ prop2 ??= getInt();
+ var /*@type=num*/ v5 = /*@type=Test2*/ /*@target=Test2.prop2*/ t
+ . /*@target=Test2.prop2*/ prop2 ??= getNum();
+ var /*@type=num*/ v6 = /*@type=Test2*/ /*@target=Test2.prop2*/ t
+ . /*@target=Test2.prop2*/ prop2 ??= getDouble();
+ var /*@type=num*/ v7 = /*@type=Test2*/ t
+ . /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop /*@target=num.+*/ +=
+ getInt();
+ var /*@type=num*/ v8 = /*@type=Test2*/ t
+ . /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop /*@target=num.+*/ +=
+ getNum();
+ var /*@type=double*/ v9 = /*@type=Test2*/ t
+ . /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop /*@target=num.+*/ +=
+ getDouble();
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++ /*@type=Test2*/ t
+ . /*@target=Test2.prop*/ /*@target=Test2.prop*/ prop;
+ var /*@type=num*/ v11 = /*@type=Test2*/ t
+ . /*@type=num*/ /*@target=Test2.prop*/ /*@target=Test2.prop*/
+ /*@type=num*/ prop /*@target=num.+*/ ++;
+ }
+}
+
+class Test3 {
+ double prop = 0;
+ double? prop2;
+
+ static void test3(Test3 t) {
+ var /*@type=double*/ v3 = t. /*@target=Test3.prop*/ prop = getDouble();
+ var /*@type=double*/ v6 = /*@type=Test3*/ /*@target=Test3.prop2*/ t
+ . /*@target=Test3.prop2*/ prop2 ??= getDouble();
+ var /*@type=double*/ v7 = /*@type=Test3*/ t
+ . /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ +=
+ getInt();
+ var /*@type=double*/ v8 = /*@type=Test3*/ t
+ . /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ +=
+ getNum();
+ var /*@type=double*/ v9 = /*@type=Test3*/ t
+ . /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop /*@target=double.+*/ +=
+ getDouble();
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++ /*@type=Test3*/ t
+ . /*@target=Test3.prop*/ /*@target=Test3.prop*/ prop;
+ var /*@type=double*/ v11 = /*@type=Test3*/ t
+ . /*@type=double*/ /*@target=Test3.prop*/ /*@target=Test3.prop*/
+ /*@type=double*/ prop /*@target=double.+*/ ++;
+ }
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..c8a6c11
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.textual_outline.expect
@@ -0,0 +1,25 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+class Test1 {
+ int prop = 0;
+ int? prop2;
+ static void test(Test1 t) {}
+}
+
+class Test2 {
+ num prop = 0;
+ num? prop2;
+ static void test(Test2 t) {}
+}
+
+class Test3 {
+ double prop = 0;
+ double? prop2;
+ static void test3(Test3 t) {}
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..473c5d4
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,24 @@
+library test;
+
+class Test1 {
+ int? prop2;
+ int prop = 0;
+ static void test(Test1 t) {}
+}
+
+class Test2 {
+ num? prop2;
+ num prop = 0;
+ static void test(Test2 t) {}
+}
+
+class Test3 {
+ double? prop2;
+ double prop = 0;
+ static void test3(Test3 t) {}
+}
+
+double getDouble() => 0.0;
+int getInt() => 0;
+main() {}
+num getNum() => 0;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.expect
new file mode 100644
index 0000000..e4784b6
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ static method test(self::Test1 t) → void {
+ core::int v1 = t.{self::Test1::prop} = self::getInt();
+ core::int v4 = let final self::Test1 #t1 = t in let final core::int? #t2 = #t1.{self::Test1::prop2}{core::int?} in #t2 == null ?{core::int} #t1.{self::Test1::prop2} = self::getInt() : #t2{core::int};
+ core::int v7 = let final self::Test1 #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = let final self::Test1 #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final self::Test1 #t5 = t in let final core::int #t6 = #t5.{self::Test1::prop}{core::int} in let final core::int #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num) → core::int} in #t6;
+ }
+}
+class Test2 extends core::Object {
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ static method test(self::Test2 t) → void {
+ core::int v1 = t.{self::Test2::prop} = self::getInt();
+ core::num v2 = t.{self::Test2::prop} = self::getNum();
+ core::double v3 = t.{self::Test2::prop} = self::getDouble();
+ core::num v4 = let final self::Test2 #t8 = t in let final core::num? #t9 = #t8.{self::Test2::prop2}{core::num?} in #t9 == null ?{core::num} #t8.{self::Test2::prop2} = self::getInt() : #t9{core::num};
+ core::num v5 = let final self::Test2 #t10 = t in let final core::num? #t11 = #t10.{self::Test2::prop2}{core::num?} in #t11 == null ?{core::num} #t10.{self::Test2::prop2} = self::getNum() : #t11{core::num};
+ core::num v6 = let final self::Test2 #t12 = t in let final core::num? #t13 = #t12.{self::Test2::prop2}{core::num?} in #t13 == null ?{core::num} #t12.{self::Test2::prop2} = self::getDouble() : #t13{core::num};
+ core::num v7 = let final self::Test2 #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = let final self::Test2 #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = let final self::Test2 #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = let final self::Test2 #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final self::Test2 #t18 = t in let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in let final core::num #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num) → core::num} in #t19;
+ }
+}
+class Test3 extends core::Object {
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ static method test3(self::Test3 t) → void {
+ core::double v3 = t.{self::Test3::prop} = self::getDouble();
+ core::double v6 = let final self::Test3 #t21 = t in let final core::double? #t22 = #t21.{self::Test3::prop2}{core::double?} in #t22 == null ?{core::double} #t21.{self::Test3::prop2} = self::getDouble() : #t22{core::double};
+ core::double v7 = let final self::Test3 #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = let final self::Test3 #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = let final self::Test3 #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = let final self::Test3 #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final self::Test3 #t27 = t in let final core::double #t28 = #t27.{self::Test3::prop}{core::double} in let final core::double #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num) → core::double} in #t28;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..e4784b6
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.modular.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ static method test(self::Test1 t) → void {
+ core::int v1 = t.{self::Test1::prop} = self::getInt();
+ core::int v4 = let final self::Test1 #t1 = t in let final core::int? #t2 = #t1.{self::Test1::prop2}{core::int?} in #t2 == null ?{core::int} #t1.{self::Test1::prop2} = self::getInt() : #t2{core::int};
+ core::int v7 = let final self::Test1 #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = let final self::Test1 #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final self::Test1 #t5 = t in let final core::int #t6 = #t5.{self::Test1::prop}{core::int} in let final core::int #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num) → core::int} in #t6;
+ }
+}
+class Test2 extends core::Object {
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ static method test(self::Test2 t) → void {
+ core::int v1 = t.{self::Test2::prop} = self::getInt();
+ core::num v2 = t.{self::Test2::prop} = self::getNum();
+ core::double v3 = t.{self::Test2::prop} = self::getDouble();
+ core::num v4 = let final self::Test2 #t8 = t in let final core::num? #t9 = #t8.{self::Test2::prop2}{core::num?} in #t9 == null ?{core::num} #t8.{self::Test2::prop2} = self::getInt() : #t9{core::num};
+ core::num v5 = let final self::Test2 #t10 = t in let final core::num? #t11 = #t10.{self::Test2::prop2}{core::num?} in #t11 == null ?{core::num} #t10.{self::Test2::prop2} = self::getNum() : #t11{core::num};
+ core::num v6 = let final self::Test2 #t12 = t in let final core::num? #t13 = #t12.{self::Test2::prop2}{core::num?} in #t13 == null ?{core::num} #t12.{self::Test2::prop2} = self::getDouble() : #t13{core::num};
+ core::num v7 = let final self::Test2 #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = let final self::Test2 #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = let final self::Test2 #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = let final self::Test2 #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final self::Test2 #t18 = t in let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in let final core::num #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num) → core::num} in #t19;
+ }
+}
+class Test3 extends core::Object {
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ static method test3(self::Test3 t) → void {
+ core::double v3 = t.{self::Test3::prop} = self::getDouble();
+ core::double v6 = let final self::Test3 #t21 = t in let final core::double? #t22 = #t21.{self::Test3::prop2}{core::double?} in #t22 == null ?{core::double} #t21.{self::Test3::prop2} = self::getDouble() : #t22{core::double};
+ core::double v7 = let final self::Test3 #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = let final self::Test3 #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = let final self::Test3 #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = let final self::Test3 #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final self::Test3 #t27 = t in let final core::double #t28 = #t27.{self::Test3::prop}{core::double} in let final core::double #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num) → core::double} in #t28;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..fd3445a
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop;
+ field core::int? prop2;
+ synthetic constructor •() → self::Test1
+ ;
+ static method test(self::Test1 t) → void
+ ;
+}
+class Test2 extends core::Object {
+ field core::num prop;
+ field core::num? prop2;
+ synthetic constructor •() → self::Test2
+ ;
+ static method test(self::Test2 t) → void
+ ;
+}
+class Test3 extends core::Object {
+ field core::double prop;
+ field core::double? prop2;
+ synthetic constructor •() → self::Test3
+ ;
+ static method test3(self::Test3 t) → void
+ ;
+}
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..e4784b6
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_property_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,61 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class Test1 extends core::Object {
+ field core::int prop = 0;
+ field core::int? prop2 = null;
+ synthetic constructor •() → self::Test1
+ : super core::Object::•()
+ ;
+ static method test(self::Test1 t) → void {
+ core::int v1 = t.{self::Test1::prop} = self::getInt();
+ core::int v4 = let final self::Test1 #t1 = t in let final core::int? #t2 = #t1.{self::Test1::prop2}{core::int?} in #t2 == null ?{core::int} #t1.{self::Test1::prop2} = self::getInt() : #t2{core::int};
+ core::int v7 = let final self::Test1 #t3 = t in #t3.{self::Test1::prop} = #t3.{self::Test1::prop}{core::int}.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = let final self::Test1 #t4 = t in #t4.{self::Test1::prop} = #t4.{self::Test1::prop}{core::int}.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final self::Test1 #t5 = t in let final core::int #t6 = #t5.{self::Test1::prop}{core::int} in let final core::int #t7 = #t5.{self::Test1::prop} = #t6.{core::num::+}(1){(core::num) → core::int} in #t6;
+ }
+}
+class Test2 extends core::Object {
+ field core::num prop = 0;
+ field core::num? prop2 = null;
+ synthetic constructor •() → self::Test2
+ : super core::Object::•()
+ ;
+ static method test(self::Test2 t) → void {
+ core::int v1 = t.{self::Test2::prop} = self::getInt();
+ core::num v2 = t.{self::Test2::prop} = self::getNum();
+ core::double v3 = t.{self::Test2::prop} = self::getDouble();
+ core::num v4 = let final self::Test2 #t8 = t in let final core::num? #t9 = #t8.{self::Test2::prop2}{core::num?} in #t9 == null ?{core::num} #t8.{self::Test2::prop2} = self::getInt() : #t9{core::num};
+ core::num v5 = let final self::Test2 #t10 = t in let final core::num? #t11 = #t10.{self::Test2::prop2}{core::num?} in #t11 == null ?{core::num} #t10.{self::Test2::prop2} = self::getNum() : #t11{core::num};
+ core::num v6 = let final self::Test2 #t12 = t in let final core::num? #t13 = #t12.{self::Test2::prop2}{core::num?} in #t13 == null ?{core::num} #t12.{self::Test2::prop2} = self::getDouble() : #t13{core::num};
+ core::num v7 = let final self::Test2 #t14 = t in #t14.{self::Test2::prop} = #t14.{self::Test2::prop}{core::num}.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = let final self::Test2 #t15 = t in #t15.{self::Test2::prop} = #t15.{self::Test2::prop}{core::num}.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = let final self::Test2 #t16 = t in #t16.{self::Test2::prop} = #t16.{self::Test2::prop}{core::num}.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = let final self::Test2 #t17 = t in #t17.{self::Test2::prop} = #t17.{self::Test2::prop}{core::num}.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final self::Test2 #t18 = t in let final core::num #t19 = #t18.{self::Test2::prop}{core::num} in let final core::num #t20 = #t18.{self::Test2::prop} = #t19.{core::num::+}(1){(core::num) → core::num} in #t19;
+ }
+}
+class Test3 extends core::Object {
+ field core::double prop = 0.0;
+ field core::double? prop2 = null;
+ synthetic constructor •() → self::Test3
+ : super core::Object::•()
+ ;
+ static method test3(self::Test3 t) → void {
+ core::double v3 = t.{self::Test3::prop} = self::getDouble();
+ core::double v6 = let final self::Test3 #t21 = t in let final core::double? #t22 = #t21.{self::Test3::prop2}{core::double?} in #t22 == null ?{core::double} #t21.{self::Test3::prop2} = self::getDouble() : #t22{core::double};
+ core::double v7 = let final self::Test3 #t23 = t in #t23.{self::Test3::prop} = #t23.{self::Test3::prop}{core::double}.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = let final self::Test3 #t24 = t in #t24.{self::Test3::prop} = #t24.{self::Test3::prop}{core::double}.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = let final self::Test3 #t25 = t in #t25.{self::Test3::prop} = #t25.{self::Test3::prop}{core::double}.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = let final self::Test3 #t26 = t in #t26.{self::Test3::prop} = #t26.{self::Test3::prop}{core::double}.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final self::Test3 #t27 = t in let final core::double #t28 = #t27.{self::Test3::prop}{core::double} in let final core::double #t29 = #t27.{self::Test3::prop} = #t28.{core::double::+}(1){(core::num) → core::double} in #t28;
+ }
+}
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart
index 46289ff..78584f1 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- int f;
+ int f = 0;
}
A a = new A();
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline.expect
index 5bccd027..4f8c497 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class A {
- int f;
+ int f = 0;
}
A a = new A();
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline_modelled.expect
index 5f20dcf..7428928 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.textual_outline_modelled.expect
@@ -1,10 +1,9 @@
-// @dart = 2.9
library test;
A a = new A();
class A {
- int f;
+ int f = 0;
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.expect
index e2c5e19..13277c8 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* b = self::a.{self::A::f} = 1;
-static field core::int* c = 0;
-static field core::int* d = self::c = 1;
+static field self::A a = new self::A::•();
+static field core::int b = self::a.{self::A::f} = 1;
+static field core::int c = 0;
+static field core::int d = self::c = 1;
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.modular.expect
index e2c5e19..13277c8 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* b = self::a.{self::A::f} = 1;
-static field core::int* c = 0;
-static field core::int* d = self::c = 1;
+static field self::A a = new self::A::•();
+static field core::int b = self::a.{self::A::f} = 1;
+static field core::int c = 0;
+static field core::int d = self::c = 1;
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.outline.expect
index 4a1b7e3..d0de032 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f;
- synthetic constructor •() → self::A*
+ field core::int f;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a;
-static field core::int* b;
-static field core::int* c;
-static field core::int* d;
+static field self::A a;
+static field core::int b;
+static field core::int c;
+static field core::int d;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.transformed.expect
index e2c5e19..13277c8 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_ref.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field core::int* f = null;
- synthetic constructor •() → self::A*
+ field core::int f = 0;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field core::int* b = self::a.{self::A::f} = 1;
-static field core::int* c = 0;
-static field core::int* d = self::c = 1;
+static field self::A a = new self::A::•();
+static field core::int b = self::a.{self::A::f} = 1;
+static field core::int c = 0;
+static field core::int d = self::c = 1;
static method main() → dynamic {
self::a;
self::b;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_static.dart
index c09b270..c457353 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_static.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart
new file mode 100644
index 0000000..834b333
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart
@@ -0,0 +1,88 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+
+ static B staticVariable = throw '';
+ static B? staticVariable2;
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+
+B topLevelVariable = throw '';
+B? topLevelVariable2;
+
+void test_topLevelVariable() {
+ topLevelVariable = /*@typeArgs=B*/ f();
+
+ topLevelVariable2 ??= /*@typeArgs=B?*/ f();
+
+ topLevelVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ topLevelVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ topLevelVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --topLevelVariable;
+
+ topLevelVariable /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = topLevelVariable = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = topLevelVariable2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = topLevelVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = topLevelVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = topLevelVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --topLevelVariable;
+
+ var /*@type=B*/ v7 = /*@type=B*/ topLevelVariable /*@type=B*/ /*@target=B.-*/ --;
+}
+
+void test_staticVariable() {
+ B.staticVariable = /*@typeArgs=B*/ f();
+
+ B.staticVariable2 ??= /*@typeArgs=B?*/ f();
+
+ B.staticVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ B.staticVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ B.staticVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ /*@target=B.-*/ --B.staticVariable;
+
+ B.staticVariable /*@target=B.-*/ --;
+
+ var /*@type=B*/ v1 = B.staticVariable = /*@typeArgs=B*/ f();
+
+ var /*@type=B?*/ v2 = B.staticVariable2 ??= /*@typeArgs=B?*/ f();
+
+ var /*@type=B*/ v3 = B.staticVariable /*@target=B.+*/ += /*@typeArgs=C*/ f();
+
+ var /*@type=B*/ v4 = B.staticVariable /*@target=B.**/ *= /*@typeArgs=B*/ f();
+
+ var /*@type=C*/ v5 = B.staticVariable /*@target=B.&*/ &= /*@typeArgs=A*/ f();
+
+ var /*@type=B*/ v6 = /*@target=B.-*/ --B.staticVariable;
+
+ var /*@type=B*/ v7 =
+ B. /*@type=B*/ staticVariable /*@type=B*/ /*@target=B.-*/ --;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.textual_outline.expect
new file mode 100644
index 0000000..ac69ece
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.textual_outline.expect
@@ -0,0 +1,21 @@
+library test;
+
+class A {}
+
+class B extends A {
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ B operator *(B v) => throw '';
+ C operator &(A v) => throw '';
+ static B staticVariable = throw '';
+ static B? staticVariable2;
+}
+
+class C extends B {}
+
+T f<T>() => throw '';
+B topLevelVariable = throw '';
+B? topLevelVariable2;
+void test_topLevelVariable() {}
+void test_staticVariable() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..dfd2d70
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.textual_outline_modelled.expect
@@ -0,0 +1,22 @@
+library test;
+
+B? topLevelVariable2;
+B topLevelVariable = throw '';
+T f<T>() => throw '';
+
+class A {}
+
+class B extends A {
+ B operator *(B v) => throw '';
+ B operator +(C v) => throw '';
+ B operator -(int i) => throw '';
+ C operator &(A v) => throw '';
+ static B? staticVariable2;
+ static B staticVariable = throw '';
+}
+
+class C extends B {}
+
+main() {}
+void test_staticVariable() {}
+void test_topLevelVariable() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.expect
new file mode 100644
index 0000000..3551711
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable = throw "";
+ static field self::B? staticVariable2 = null;
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static field self::B topLevelVariable = throw "";
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test_topLevelVariable() → void {
+ self::topLevelVariable = self::f<self::B>();
+ self::topLevelVariable2 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : null;
+ self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::topLevelVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = self::topLevelVariable2 in #t1 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = self::topLevelVariable in let final self::B #t3 = self::topLevelVariable = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method test_staticVariable() → void {
+ self::B::staticVariable = self::f<self::B>();
+ self::B::staticVariable2 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : null;
+ self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::B::staticVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t4 = self::B::staticVariable2 in #t4 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : #t4{self::B};
+ self::B v3 = self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t5 = self::B::staticVariable in let final self::B #t6 = self::B::staticVariable = #t5.{self::B::-}(1){(core::int) → self::B} in #t5;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.modular.expect
new file mode 100644
index 0000000..3551711
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.modular.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable = throw "";
+ static field self::B? staticVariable2 = null;
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static field self::B topLevelVariable = throw "";
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test_topLevelVariable() → void {
+ self::topLevelVariable = self::f<self::B>();
+ self::topLevelVariable2 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : null;
+ self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::topLevelVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = self::topLevelVariable2 in #t1 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = self::topLevelVariable in let final self::B #t3 = self::topLevelVariable = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method test_staticVariable() → void {
+ self::B::staticVariable = self::f<self::B>();
+ self::B::staticVariable2 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : null;
+ self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::B::staticVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t4 = self::B::staticVariable2 in #t4 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : #t4{self::B};
+ self::B v3 = self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t5 = self::B::staticVariable in let final self::B #t6 = self::B::staticVariable = #t5.{self::B::-}(1){(core::int) → self::B} in #t5;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.outline.expect
new file mode 100644
index 0000000..a06bbd0
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.outline.expect
@@ -0,0 +1,36 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable;
+ static field self::B? staticVariable2;
+ synthetic constructor •() → self::B
+ ;
+ operator +(self::C v) → self::B
+ ;
+ operator -(core::int i) → self::B
+ ;
+ operator *(self::B v) → self::B
+ ;
+ operator &(self::A v) → self::C
+ ;
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ ;
+}
+static field self::B topLevelVariable;
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ ;
+static method test_topLevelVariable() → void
+ ;
+static method test_staticVariable() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.transformed.expect
new file mode 100644
index 0000000..3551711
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static2.dart.weak.transformed.expect
@@ -0,0 +1,66 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+class A extends core::Object {
+ synthetic constructor •() → self::A
+ : super core::Object::•()
+ ;
+}
+class B extends self::A {
+ static field self::B staticVariable = throw "";
+ static field self::B? staticVariable2 = null;
+ synthetic constructor •() → self::B
+ : super self::A::•()
+ ;
+ operator +(self::C v) → self::B
+ return throw "";
+ operator -(core::int i) → self::B
+ return throw "";
+ operator *(self::B v) → self::B
+ return throw "";
+ operator &(self::A v) → self::C
+ return throw "";
+}
+class C extends self::B {
+ synthetic constructor •() → self::C
+ : super self::B::•()
+ ;
+}
+static field self::B topLevelVariable = throw "";
+static field self::B? topLevelVariable2;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test_topLevelVariable() → void {
+ self::topLevelVariable = self::f<self::B>();
+ self::topLevelVariable2 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : null;
+ self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::topLevelVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t1 = self::topLevelVariable2 in #t1 == null ?{self::B?} self::topLevelVariable2 = self::f<self::B?>() : #t1{self::B};
+ self::B v3 = self::topLevelVariable = self::topLevelVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::topLevelVariable = self::topLevelVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::topLevelVariable = self::topLevelVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::topLevelVariable = self::topLevelVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t2 = self::topLevelVariable in let final self::B #t3 = self::topLevelVariable = #t2.{self::B::-}(1){(core::int) → self::B} in #t2;
+}
+static method test_staticVariable() → void {
+ self::B::staticVariable = self::f<self::B>();
+ self::B::staticVariable2 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : null;
+ self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v1 = self::B::staticVariable = self::f<self::B>();
+ self::B? v2 = let final self::B? #t4 = self::B::staticVariable2 in #t4 == null ?{self::B?} self::B::staticVariable2 = self::f<self::B?>() : #t4{self::B};
+ self::B v3 = self::B::staticVariable = self::B::staticVariable.{self::B::+}(self::f<self::C>()){(self::C) → self::B};
+ self::B v4 = self::B::staticVariable = self::B::staticVariable.{self::B::*}(self::f<self::B>()){(self::B) → self::B};
+ self::C v5 = self::B::staticVariable = self::B::staticVariable.{self::B::&}(self::f<self::A>()){(self::A) → self::C};
+ self::B v6 = self::B::staticVariable = self::B::staticVariable.{self::B::-}(1){(core::int) → self::B};
+ self::B v7 = let final self::B #t5 = self::B::staticVariable in let final self::B #t6 = self::B::staticVariable = #t5.{self::B::-}(1){(core::int) → self::B} in #t5;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards.dart
index 237f648..0333989 100644
--- a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards.dart
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2017, 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.
+
// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart
new file mode 100644
index 0000000..4b8caca
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart
@@ -0,0 +1,71 @@
+// Copyright (c) 2017, 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.
+
+/*@testedFeatures=inference*/
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+
+int topLevelInt = 0;
+int? topLevelInt2;
+num topLevelNum = 0;
+num? topLevelNum2;
+double topLevelDouble = 0;
+double? topLevelDouble2;
+
+void test1() {
+ var /*@type=int*/ v1 = topLevelInt = getInt();
+
+ var /*@type=int*/ v4 = topLevelInt2 ??= getInt();
+
+ var /*@type=int*/ v7 = topLevelInt /*@target=num.+*/ += getInt();
+
+ var /*@type=int*/ v10 = /*@target=num.+*/ ++topLevelInt;
+
+ var /*@type=int*/ v11 = /*@type=int*/ topLevelInt /*@type=int*/ /*@target=num.+*/ ++;
+}
+
+void test2() {
+ var /*@type=int*/ v1 = topLevelNum = getInt();
+
+ var /*@type=num*/ v2 = topLevelNum = getNum();
+
+ var /*@type=double*/ v3 = topLevelNum = getDouble();
+
+ var /*@type=num*/ v4 = topLevelNum2 ??= getInt();
+
+ var /*@type=num*/ v5 = topLevelNum2 ??= getNum();
+
+ var /*@type=num*/ v6 = topLevelNum2 ??= getDouble();
+
+ var /*@type=num*/ v7 = topLevelNum /*@target=num.+*/ += getInt();
+
+ var /*@type=num*/ v8 = topLevelNum /*@target=num.+*/ += getNum();
+
+ var /*@type=double*/ v9 = topLevelNum /*@target=num.+*/ += getDouble();
+
+ var /*@type=num*/ v10 = /*@target=num.+*/ ++topLevelNum;
+
+ var /*@type=num*/ v11 = /*@type=num*/ topLevelNum /*@type=num*/ /*@target=num.+*/ ++;
+}
+
+void test3() {
+ var /*@type=double*/ v3 = topLevelDouble = getDouble();
+
+ var /*@type=double*/ v6 = topLevelDouble2 ??= getDouble();
+
+ var /*@type=double*/ v7 = topLevelDouble /*@target=double.+*/ += getInt();
+
+ var /*@type=double*/ v8 = topLevelDouble /*@target=double.+*/ += getNum();
+
+ var /*@type=double*/ v9 = topLevelDouble /*@target=double.+*/ += getDouble();
+
+ var /*@type=double*/ v10 = /*@target=double.+*/ ++topLevelDouble;
+
+ var /*@type=double*/ v11 = /*@type=double*/ topLevelDouble /*@type=double*/ /*@target=double.+*/ ++;
+}
+
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.textual_outline.expect
new file mode 100644
index 0000000..a9a31ea
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.textual_outline.expect
@@ -0,0 +1,15 @@
+library test;
+
+int getInt() => 0;
+num getNum() => 0;
+double getDouble() => 0.0;
+int topLevelInt = 0;
+int? topLevelInt2;
+num topLevelNum = 0;
+num? topLevelNum2;
+double topLevelDouble = 0;
+double? topLevelDouble2;
+void test1() {}
+void test2() {}
+void test3() {}
+main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..2d4dbdf
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.textual_outline_modelled.expect
@@ -0,0 +1,15 @@
+library test;
+
+double? topLevelDouble2;
+double getDouble() => 0.0;
+double topLevelDouble = 0;
+int? topLevelInt2;
+int getInt() => 0;
+int topLevelInt = 0;
+main() {}
+num? topLevelNum2;
+num getNum() => 0;
+num topLevelNum = 0;
+void test1() {}
+void test2() {}
+void test3() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.expect
new file mode 100644
index 0000000..4aa81b0
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static field core::int topLevelInt = 0;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum = 0;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble = 0.0;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1() → void {
+ core::int v1 = self::topLevelInt = self::getInt();
+ core::int v4 = let final core::int? #t1 = self::topLevelInt2 in #t1 == null ?{core::int} self::topLevelInt2 = self::getInt() : #t1{core::int};
+ core::int v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = self::topLevelInt in let final core::int #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+}
+static method test2() → void {
+ core::int v1 = self::topLevelNum = self::getInt();
+ core::num v2 = self::topLevelNum = self::getNum();
+ core::double v3 = self::topLevelNum = self::getDouble();
+ core::num v4 = let final core::num? #t4 = self::topLevelNum2 in #t4 == null ?{core::num} self::topLevelNum2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = self::topLevelNum2 in #t5 == null ?{core::num} self::topLevelNum2 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = self::topLevelNum2 in #t6 == null ?{core::num} self::topLevelNum2 = self::getDouble() : #t6{core::num};
+ core::num v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = self::topLevelNum in let final core::num #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+}
+static method test3() → void {
+ core::double v3 = self::topLevelDouble = self::getDouble();
+ core::double v6 = let final core::double? #t9 = self::topLevelDouble2 in #t9 == null ?{core::double} self::topLevelDouble2 = self::getDouble() : #t9{core::double};
+ core::double v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = self::topLevelDouble in let final core::double #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.modular.expect
new file mode 100644
index 0000000..4aa81b0
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.modular.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static field core::int topLevelInt = 0;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum = 0;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble = 0.0;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1() → void {
+ core::int v1 = self::topLevelInt = self::getInt();
+ core::int v4 = let final core::int? #t1 = self::topLevelInt2 in #t1 == null ?{core::int} self::topLevelInt2 = self::getInt() : #t1{core::int};
+ core::int v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = self::topLevelInt in let final core::int #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+}
+static method test2() → void {
+ core::int v1 = self::topLevelNum = self::getInt();
+ core::num v2 = self::topLevelNum = self::getNum();
+ core::double v3 = self::topLevelNum = self::getDouble();
+ core::num v4 = let final core::num? #t4 = self::topLevelNum2 in #t4 == null ?{core::num} self::topLevelNum2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = self::topLevelNum2 in #t5 == null ?{core::num} self::topLevelNum2 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = self::topLevelNum2 in #t6 == null ?{core::num} self::topLevelNum2 = self::getDouble() : #t6{core::num};
+ core::num v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = self::topLevelNum in let final core::num #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+}
+static method test3() → void {
+ core::double v3 = self::topLevelDouble = self::getDouble();
+ core::double v6 = let final core::double? #t9 = self::topLevelDouble2 in #t9 == null ?{core::double} self::topLevelDouble2 = self::getDouble() : #t9{core::double};
+ core::double v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = self::topLevelDouble in let final core::double #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.outline.expect
new file mode 100644
index 0000000..8cba366
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.outline.expect
@@ -0,0 +1,24 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static field core::int topLevelInt;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
+ ;
+static method getNum() → core::num
+ ;
+static method getDouble() → core::double
+ ;
+static method test1() → void
+ ;
+static method test2() → void
+ ;
+static method test3() → void
+ ;
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.transformed.expect
new file mode 100644
index 0000000..4aa81b0
--- /dev/null
+++ b/pkg/front_end/testcases/inference_new/infer_assign_to_static_upwards2.dart.weak.transformed.expect
@@ -0,0 +1,46 @@
+library test /*isNonNullableByDefault*/;
+import self as self;
+import "dart:core" as core;
+
+static field core::int topLevelInt = 0;
+static field core::int? topLevelInt2;
+static field core::num topLevelNum = 0;
+static field core::num? topLevelNum2;
+static field core::double topLevelDouble = 0.0;
+static field core::double? topLevelDouble2;
+static method getInt() → core::int
+ return 0;
+static method getNum() → core::num
+ return 0;
+static method getDouble() → core::double
+ return 0.0;
+static method test1() → void {
+ core::int v1 = self::topLevelInt = self::getInt();
+ core::int v4 = let final core::int? #t1 = self::topLevelInt2 in #t1 == null ?{core::int} self::topLevelInt2 = self::getInt() : #t1{core::int};
+ core::int v7 = self::topLevelInt = self::topLevelInt.{core::num::+}(self::getInt()){(core::num) → core::int};
+ core::int v10 = self::topLevelInt = self::topLevelInt.{core::num::+}(1){(core::num) → core::int};
+ core::int v11 = let final core::int #t2 = self::topLevelInt in let final core::int #t3 = self::topLevelInt = #t2.{core::num::+}(1){(core::num) → core::int} in #t2;
+}
+static method test2() → void {
+ core::int v1 = self::topLevelNum = self::getInt();
+ core::num v2 = self::topLevelNum = self::getNum();
+ core::double v3 = self::topLevelNum = self::getDouble();
+ core::num v4 = let final core::num? #t4 = self::topLevelNum2 in #t4 == null ?{core::num} self::topLevelNum2 = self::getInt() : #t4{core::num};
+ core::num v5 = let final core::num? #t5 = self::topLevelNum2 in #t5 == null ?{core::num} self::topLevelNum2 = self::getNum() : #t5{core::num};
+ core::num v6 = let final core::num? #t6 = self::topLevelNum2 in #t6 == null ?{core::num} self::topLevelNum2 = self::getDouble() : #t6{core::num};
+ core::num v7 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getInt()){(core::num) → core::num};
+ core::num v8 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getNum()){(core::num) → core::num};
+ core::double v9 = self::topLevelNum = self::topLevelNum.{core::num::+}(self::getDouble()){(core::num) → core::double};
+ core::num v10 = self::topLevelNum = self::topLevelNum.{core::num::+}(1){(core::num) → core::num};
+ core::num v11 = let final core::num #t7 = self::topLevelNum in let final core::num #t8 = self::topLevelNum = #t7.{core::num::+}(1){(core::num) → core::num} in #t7;
+}
+static method test3() → void {
+ core::double v3 = self::topLevelDouble = self::getDouble();
+ core::double v6 = let final core::double? #t9 = self::topLevelDouble2 in #t9 == null ?{core::double} self::topLevelDouble2 = self::getDouble() : #t9{core::double};
+ core::double v7 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getInt()){(core::num) → core::double};
+ core::double v8 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getNum()){(core::num) → core::double};
+ core::double v9 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(self::getDouble()){(core::num) → core::double};
+ core::double v10 = self::topLevelDouble = self::topLevelDouble.{core::double::+}(1){(core::num) → core::double};
+ core::double v11 = let final core::double #t10 = self::topLevelDouble in let final core::double #t11 = self::topLevelDouble = #t10.{core::double::+}(1){(core::num) → core::double} in #t10;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart
index 77332c3..33c324d 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline.expect
index c1b0b53..b979107 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline_modelled.expect
index c1b0b53..b979107 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.expect
index 871301b..328147c 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
// void set x(double value);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -24,25 +24,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ abstract set x(core::double value) → void;
}
class B extends self::A {
field invalid-type x = null;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.modular.expect
index 871301b..328147c 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
// void set x(double value);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -24,25 +24,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ abstract set x(core::double value) → void;
}
class B extends self::A {
field invalid-type x = null;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.outline.expect
index 35488cf..d4099cf 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
// void set x(double value);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -24,24 +24,14 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::int*;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ abstract set x(core::double value) → void;
}
class B extends self::A {
field invalid-type x;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.transformed.expect
index 871301b..328147c 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,7 +13,7 @@
// void set x(double value);
// ^
//
-// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not assignable to the type 'double' of the setter 'A.x'.
+// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:9:11: Error: The type 'int' of the getter 'A.x' is not a subtype of the type 'double' of the setter 'A.x'.
// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_getter_setter_mismatch.dart:10:12: Context: This is the declaration of the setter 'A.x'.
@@ -24,25 +24,15 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::int*;
- abstract set x(core::double* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
+ abstract set x(core::double value) → void;
}
class B extends self::A {
field invalid-type x = null;
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart
index 39da6b2..d6f3096 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2019, 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.
-// @dart=2.9
+
abstract class A {
A get x;
void set x(B value);
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline.expect
index 82cf977..0edf6d2 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
abstract class A {
A get x;
void set x(B value);
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline_modelled.expect
index 36712bf..4747c1a 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
abstract class A {
A get x;
B get y;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.expect
index 497e214..06ff99f 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -24,37 +24,36 @@
// void set y(A value);
// ^
//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:6:9: Error: The type 'A' of the getter 'A.x' is not a subtype of the type 'B' of the setter 'A.x'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// A get x;
+// ^
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:7:12: Context: This is the declaration of the setter 'A.x'.
+// void set x(B value);
+// ^
+//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → self::A*;
- abstract set x(self::B* value) → void;
- abstract get y() → self::B*;
- abstract set y(self::A* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → self::A;
+ abstract set x(self::B value) → void;
+ abstract get y() → self::B;
+ abstract set y(self::A value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::B {
field invalid-type x = null;
field invalid-type y = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.modular.expect
index 497e214..06ff99f 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -24,37 +24,36 @@
// void set y(A value);
// ^
//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:6:9: Error: The type 'A' of the getter 'A.x' is not a subtype of the type 'B' of the setter 'A.x'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// A get x;
+// ^
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:7:12: Context: This is the declaration of the setter 'A.x'.
+// void set x(B value);
+// ^
+//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → self::A*;
- abstract set x(self::B* value) → void;
- abstract get y() → self::B*;
- abstract set y(self::A* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → self::A;
+ abstract set x(self::B value) → void;
+ abstract get y() → self::B;
+ abstract set y(self::A value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::B {
field invalid-type x = null;
field invalid-type y = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.outline.expect
index abca250..357ba3e 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -24,35 +24,34 @@
// void set y(A value);
// ^
//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:6:9: Error: The type 'A' of the getter 'A.x' is not a subtype of the type 'B' of the setter 'A.x'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// A get x;
+// ^
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:7:12: Context: This is the declaration of the setter 'A.x'.
+// void set x(B value);
+// ^
+//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → self::A*;
- abstract set x(self::B* value) → void;
- abstract get y() → self::B*;
- abstract set y(self::A* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → self::A;
+ abstract set x(self::B value) → void;
+ abstract get y() → self::B;
+ abstract set y(self::A value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
class C extends self::B {
field invalid-type x;
field invalid-type y;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.transformed.expect
index 497e214..06ff99f 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -24,37 +24,36 @@
// void set y(A value);
// ^
//
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:6:9: Error: The type 'A' of the getter 'A.x' is not a subtype of the type 'B' of the setter 'A.x'.
+// - 'A' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// - 'B' is from 'pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart'.
+// A get x;
+// ^
+// pkg/front_end/testcases/inference_new/infer_field_override_accessors.dart:7:12: Context: This is the declaration of the setter 'A.x'.
+// void set x(B value);
+// ^
+//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → self::A*;
- abstract set x(self::B* value) → void;
- abstract get y() → self::B*;
- abstract set y(self::A* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → self::A;
+ abstract set x(self::B value) → void;
+ abstract get y() → self::B;
+ abstract set y(self::A value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::B {
field invalid-type x = null;
field invalid-type y = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart
index e7d9344..7ebfa01 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline.expect
index 3cd11b9..305abb9 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline_modelled.expect
index 3cd11b9..305abb9 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class A {
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.expect
index 6282349..5fb344c 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,30 +17,20 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::num* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::num value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::int*;
+ abstract get x() → core::int;
}
class C extends self::B {
field invalid-type x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.modular.expect
index 6282349..5fb344c 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,30 +17,20 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::num* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::num value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::int*;
+ abstract get x() → core::int;
}
class C extends self::B {
field invalid-type x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.outline.expect
index b029148..bb1f5df 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,28 +17,18 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract set x(core::num* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::num value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract get x() → core::int*;
+ abstract get x() → core::int;
}
class C extends self::B {
field invalid-type x;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.transformed.expect
index 6282349..5fb344c 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_getter_overrides_setter.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -17,30 +17,20 @@
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract set x(core::num* value) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract set x(core::num value) → void;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract get x() → core::int*;
+ abstract get x() → core::int;
}
class C extends self::B {
field invalid-type x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart
index fb0921a..3b525b8 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
abstract class A {
- num get x;
+ int get x;
}
abstract class B extends A {
- void set x(int value);
+ void set x(num value);
}
// The getter in B doesn't screen the setter in A, so inference sees two
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline.expect
index 7dfa297..650c096 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- num get x;
+ int get x;
}
abstract class B extends A {
- void set x(int value);
+ void set x(num value);
}
class C extends B {
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline_modelled.expect
index 7dfa297..650c096 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
abstract class A {
- num get x;
+ int get x;
}
abstract class B extends A {
- void set x(int value);
+ void set x(num value);
}
class C extends B {
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.expect
index 001d19d..3dfbe02 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,40 +7,30 @@
// var x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:9:11: Context: This is one of the overridden members.
-// num get x;
+// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:13:12: Context: This is one of the overridden members.
-// void set x(int value);
+// void set x(num value);
// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(core::int* value) → void;
+ abstract set x(core::num value) → void;
}
class C extends self::B {
field invalid-type x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.modular.expect
index 001d19d..3dfbe02 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,40 +7,30 @@
// var x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:9:11: Context: This is one of the overridden members.
-// num get x;
+// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:13:12: Context: This is one of the overridden members.
-// void set x(int value);
+// void set x(num value);
// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(core::int* value) → void;
+ abstract set x(core::num value) → void;
}
class C extends self::B {
field invalid-type x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.outline.expect
index 9d11e0e..786adc0 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,38 +7,28 @@
// var x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:9:11: Context: This is one of the overridden members.
-// num get x;
+// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:13:12: Context: This is one of the overridden members.
-// void set x(int value);
+// void set x(num value);
// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract set x(core::int* value) → void;
+ abstract set x(core::num value) → void;
}
class C extends self::B {
field invalid-type x;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.transformed.expect
index 001d19d..3dfbe02 100644
--- a/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -7,40 +7,30 @@
// var x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:9:11: Context: This is one of the overridden members.
-// num get x;
+// int get x;
// ^
// pkg/front_end/testcases/inference_new/infer_field_override_setter_overrides_getter.dart:13:12: Context: This is one of the overridden members.
-// void set x(int value);
+// void set x(num value);
// ^
//
import self as self;
import "dart:core" as core;
abstract class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract get x() → core::num*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract get x() → core::int;
}
abstract class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
- abstract set x(core::int* value) → void;
+ abstract set x(core::num value) → void;
}
class C extends self::B {
field invalid-type x = null;
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart
index 22e5ba7..a4da0b2 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- B b;
+ B b = throw '';
}
class B {
- C get c => null;
- void set c(C value) {}
+ C? get c => null;
+ void set c(C? value) {}
}
class C {}
@@ -20,7 +20,7 @@
var a = new A();
var x = a. /*@target=A.b*/ b. /*@target=B.c*/ c;
-var y = a. /*@ type=B* */ /*@target=A.b*/ /*@target=B.c*/ b. /*@target=B.c*/ c
+var y = a. /*@type=B*/ /*@target=A.b*/ /*@target=B.c*/ b. /*@target=B.c*/ c
??= new D();
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline.expect
index eac6ba0..9395c93 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
library test;
class A {
- B b;
+ B b = throw '';
}
class B {
- C get c => null;
- void set c(C value) {}
+ C? get c => null;
+ void set c(C? value) {}
}
class C {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline_modelled.expect
index aadf0b1..2102937 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.textual_outline_modelled.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
library test;
class A {
- B b;
+ B b = throw '';
}
class B {
- C get c => null;
- void set c(C value) {}
+ C? get c => null;
+ void set c(C? value) {}
}
class C {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.expect
index ea950c6..a10db59 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.expect
@@ -1,62 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b = null;
- synthetic constructor •() → self::A*
+ field self::B b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get c() → self::C*
+ get c() → self::C?
return null;
- set c(self::C* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set c(self::C? value) → void {}
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::C* x = self::a.{self::A::b}{self::B*}.{self::B::c}{self::C*};
-static field self::C* y = let final self::B* #t1 = self::a.{self::A::b}{self::B*} in let final self::C* #t2 = #t1.{self::B::c}{self::C*} in #t2 == null ?{self::C*} #t1.{self::B::c} = new self::D::•() : #t2;
+static field self::A a = new self::A::•();
+static field self::C? x = self::a.{self::A::b}{self::B}.{self::B::c}{self::C?};
+static field self::C y = let final self::B #t1 = self::a.{self::A::b}{self::B} in let final self::C? #t2 = #t1.{self::B::c}{self::C?} in #t2 == null ?{self::C} #t1.{self::B::c} = new self::D::•() : #t2{self::C};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.modular.expect
index ea950c6..a10db59 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.modular.expect
@@ -1,62 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b = null;
- synthetic constructor •() → self::A*
+ field self::B b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get c() → self::C*
+ get c() → self::C?
return null;
- set c(self::C* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set c(self::C? value) → void {}
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::C* x = self::a.{self::A::b}{self::B*}.{self::B::c}{self::C*};
-static field self::C* y = let final self::B* #t1 = self::a.{self::A::b}{self::B*} in let final self::C* #t2 = #t1.{self::B::c}{self::C*} in #t2 == null ?{self::C*} #t1.{self::B::c} = new self::D::•() : #t2;
+static field self::A a = new self::A::•();
+static field self::C? x = self::a.{self::A::b}{self::B}.{self::B::c}{self::C?};
+static field self::C y = let final self::B #t1 = self::a.{self::A::b}{self::B} in let final self::C? #t2 = #t1.{self::B::c}{self::C?} in #t2 == null ?{self::C} #t1.{self::B::c} = new self::D::•() : #t2{self::C};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.outline.expect
index da2cfcc..98ea944 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.outline.expect
@@ -1,60 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b;
- synthetic constructor •() → self::A*
+ field self::B b;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- get c() → self::C*
+ get c() → self::C?
;
- set c(self::C* value) → void
+ set c(self::C? value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
}
-static field self::A* a;
-static field self::C* x;
-static field self::C* y;
+static field self::A a;
+static field self::C? x;
+static field self::C y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.transformed.expect
index ea950c6..a10db59 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_accessor_ref.dart.weak.transformed.expect
@@ -1,62 +1,32 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b = null;
- synthetic constructor •() → self::A*
+ field self::B b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- get c() → self::C*
+ get c() → self::C?
return null;
- set c(self::C* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ set c(self::C? value) → void {}
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::C* x = self::a.{self::A::b}{self::B*}.{self::B::c}{self::C*};
-static field self::C* y = let final self::B* #t1 = self::a.{self::A::b}{self::B*} in let final self::C* #t2 = #t1.{self::B::c}{self::C*} in #t2 == null ?{self::C*} #t1.{self::B::c} = new self::D::•() : #t2;
+static field self::A a = new self::A::•();
+static field self::C? x = self::a.{self::A::b}{self::B}.{self::B::c}{self::C?};
+static field self::C y = let final self::B #t1 = self::a.{self::A::b}{self::B} in let final self::C? #t2 = #t1.{self::B::c}{self::C?} in #t2 == null ?{self::C} #t1.{self::B::c} = new self::D::•() : #t2{self::C};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart
index 89d50fb..3e95b72 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart
@@ -1,16 +1,16 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class A {
- B b;
+ B b = throw '';
}
class B {
- C c;
+ C? c;
}
class C {}
@@ -19,7 +19,7 @@
var a = new A();
var x = a. /*@target=A.b*/ b. /*@target=B.c*/ c;
-var y = a. /*@ type=B* */ /*@target=A.b*/ /*@target=B.c*/ b
- . /*@target=B.c*/ c ??= new D();
+var y = a. /*@type=B*/ /*@target=A.b*/ /*@target=B.c*/ b. /*@target=B.c*/ c ??=
+ new D();
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline.expect
index 67bf68d..65c2ede 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class A {
- B b;
+ B b = throw '';
}
class B {
- C c;
+ C? c;
}
class C {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline_modelled.expect
index fe63aea..e8117ba 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.textual_outline_modelled.expect
@@ -1,12 +1,11 @@
-// @dart = 2.9
library test;
class A {
- B b;
+ B b = throw '';
}
class B {
- C c;
+ C? c;
}
class C {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.expect
index b174194..9bba819 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.expect
@@ -1,60 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b = null;
- synthetic constructor •() → self::A*
+ field self::B b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::C* c = null;
- synthetic constructor •() → self::B*
+ field self::C? c = null;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::C* x = self::a.{self::A::b}{self::B*}.{self::B::c}{self::C*};
-static field self::C* y = let final self::B* #t1 = self::a.{self::A::b}{self::B*} in let final self::C* #t2 = #t1.{self::B::c}{self::C*} in #t2 == null ?{self::C*} #t1.{self::B::c} = new self::D::•() : #t2;
+static field self::A a = new self::A::•();
+static field self::C? x = self::a.{self::A::b}{self::B}.{self::B::c}{self::C?};
+static field self::C y = let final self::B #t1 = self::a.{self::A::b}{self::B} in let final self::C? #t2 = #t1.{self::B::c}{self::C?} in #t2 == null ?{self::C} #t1.{self::B::c} = new self::D::•() : #t2{self::C};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.modular.expect
index b174194..9bba819 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.modular.expect
@@ -1,60 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b = null;
- synthetic constructor •() → self::A*
+ field self::B b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::C* c = null;
- synthetic constructor •() → self::B*
+ field self::C? c = null;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::C* x = self::a.{self::A::b}{self::B*}.{self::B::c}{self::C*};
-static field self::C* y = let final self::B* #t1 = self::a.{self::A::b}{self::B*} in let final self::C* #t2 = #t1.{self::B::c}{self::C*} in #t2 == null ?{self::C*} #t1.{self::B::c} = new self::D::•() : #t2;
+static field self::A a = new self::A::•();
+static field self::C? x = self::a.{self::A::b}{self::B}.{self::B::c}{self::C?};
+static field self::C y = let final self::B #t1 = self::a.{self::A::b}{self::B} in let final self::C? #t2 = #t1.{self::B::c}{self::C?} in #t2 == null ?{self::C} #t1.{self::B::c} = new self::D::•() : #t2{self::C};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.outline.expect
index 06be72a..e58b8d0d8 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.outline.expect
@@ -1,57 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b;
- synthetic constructor •() → self::A*
+ field self::B b;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::C* c;
- synthetic constructor •() → self::B*
+ field self::C? c;
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
}
-static field self::A* a;
-static field self::C* x;
-static field self::C* y;
+static field self::A a;
+static field self::C? x;
+static field self::C y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.transformed.expect
index b174194..9bba819 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref.dart.weak.transformed.expect
@@ -1,60 +1,30 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field self::B* b = null;
- synthetic constructor •() → self::A*
+ field self::B b = throw "";
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- field self::C* c = null;
- synthetic constructor •() → self::B*
+ field self::C? c = null;
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
}
-static field self::A* a = new self::A::•();
-static field self::C* x = self::a.{self::A::b}{self::B*}.{self::B::c}{self::C*};
-static field self::C* y = let final self::B* #t1 = self::a.{self::A::b}{self::B*} in let final self::C* #t2 = #t1.{self::B::c}{self::C*} in #t2 == null ?{self::C*} #t1.{self::B::c} = new self::D::•() : #t2;
+static field self::A a = new self::A::•();
+static field self::C? x = self::a.{self::A::b}{self::B}.{self::B::c}{self::C?};
+static field self::C y = let final self::B #t1 = self::a.{self::A::b}{self::B} in let final self::C? #t2 = #t1.{self::B::c}{self::C?} in #t2 == null ?{self::C} #t1.{self::B::c} = new self::D::•() : #t2{self::C};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart
index 0bb8cd3..c0e5706 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart
@@ -1,19 +1,19 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
// In the code below, there is a circularity between A.b and x.
class A {
- var b = /*@ returnType=() ->* invalid-type */ () => x;
- var c = /*@ returnType=() ->* invalid-type */ () => x;
+ var b = /*@returnType=() -> invalid-type*/ () => x;
+ var c = /*@returnType=() -> invalid-type*/ () => x;
}
var a = new A();
var x = /*@ returnType=invalid-type */ () => a. /*@target=A.b*/ b;
-var y = /*@ returnType=() ->* () ->* invalid-type */ () => a. /*@target=A.c*/ c;
+var y = /*@returnType=() -> () -> invalid-type*/ () => a. /*@target=A.c*/ c;
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline.expect
index 04056f2..1d3b6a2 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline_modelled.expect
index 57a8d15..9e8f476 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.expect
index 21df0fc..5f65b99 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () => x;
+// var b = /*@returnType=() -> invalid-type*/ () => x;
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field invalid-type b = () → () →* invalid-type => self::x;
- field () →* () →* invalid-type c = () → () →* invalid-type => self::x;
- synthetic constructor •() → self::A*
+ field invalid-type b = () → () → invalid-type => self::x;
+ field () → () → invalid-type c = () → () → invalid-type => self::x;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field () →* invalid-type x = () → invalid-type => self::a.{self::A::b}{invalid-type};
-static field () →* () →* () →* invalid-type y = () → () →* () →* invalid-type => self::a.{self::A::c}{() →* () →* invalid-type};
+static field self::A a = new self::A::•();
+static field () → invalid-type x = () → invalid-type => self::a.{self::A::b}{invalid-type};
+static field () → () → () → invalid-type y = () → () → () → invalid-type => self::a.{self::A::c}{() → () → invalid-type};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.modular.expect
index 21df0fc..5f65b99 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.modular.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () => x;
+// var b = /*@returnType=() -> invalid-type*/ () => x;
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field invalid-type b = () → () →* invalid-type => self::x;
- field () →* () →* invalid-type c = () → () →* invalid-type => self::x;
- synthetic constructor •() → self::A*
+ field invalid-type b = () → () → invalid-type => self::x;
+ field () → () → invalid-type c = () → () → invalid-type => self::x;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field () →* invalid-type x = () → invalid-type => self::a.{self::A::b}{invalid-type};
-static field () →* () →* () →* invalid-type y = () → () →* () →* invalid-type => self::a.{self::A::c}{() →* () →* invalid-type};
+static field self::A a = new self::A::•();
+static field () → invalid-type x = () → invalid-type => self::a.{self::A::b}{invalid-type};
+static field () → () → () → invalid-type y = () → () → () → invalid-type => self::a.{self::A::c}{() → () → invalid-type};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.outline.expect
index 8ab2ccc..5fd2432 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () => x;
+// var b = /*@returnType=() -> invalid-type*/ () => x;
// ^
//
import self as self;
@@ -12,22 +12,12 @@
class A extends core::Object {
field invalid-type b;
- field () →* () →* invalid-type c;
- synthetic constructor •() → self::A*
+ field () → () → invalid-type c;
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a;
-static field () →* invalid-type x;
-static field () →* () →* () →* invalid-type y;
+static field self::A a;
+static field () → invalid-type x;
+static field () → () → () → invalid-type y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.transformed.expect
index 21df0fc..5f65b99 100644
--- a/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart.weak.transformed.expect
@@ -1,33 +1,23 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/infer_instance_field_ref_circular.dart:11:7: Error: Can't infer the type of 'b': circularity found during type inference.
// Specify the type explicitly.
-// var b = /*@ returnType=() ->* invalid-type */ () => x;
+// var b = /*@returnType=() -> invalid-type*/ () => x;
// ^
//
import self as self;
import "dart:core" as core;
class A extends core::Object {
- field invalid-type b = () → () →* invalid-type => self::x;
- field () →* () →* invalid-type c = () → () →* invalid-type => self::x;
- synthetic constructor •() → self::A*
+ field invalid-type b = () → () → invalid-type => self::x;
+ field () → () → invalid-type c = () → () → invalid-type => self::x;
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A* a = new self::A::•();
-static field () →* invalid-type x = () → invalid-type => self::a.{self::A::b}{invalid-type};
-static field () →* () →* () →* invalid-type y = () → () →* () →* invalid-type => self::a.{self::A::c}{() →* () →* invalid-type};
+static field self::A a = new self::A::•();
+static field () → invalid-type x = () → invalid-type => self::a.{self::A::b}{invalid-type};
+static field () → () → () → invalid-type y = () → () → () → invalid-type => self::a.{self::A::c}{() → () → invalid-type};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart b/pkg/front_end/testcases/inference_new/infer_logical.dart
index 0ac3f2b..dc8f1e8 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart
@@ -1,18 +1,18 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
-var x = /*@ typeArgs=bool* */ f() || /*@ typeArgs=bool* */ f();
-var y = /*@ typeArgs=bool* */ f() && /*@ typeArgs=bool* */ f();
+var x = /*@typeArgs=bool*/ f() || /*@typeArgs=bool*/ f();
+var y = /*@typeArgs=bool*/ f() && /*@typeArgs=bool*/ f();
void test() {
- var /*@ type=bool* */ x = /*@ typeArgs=bool* */ f() || /*@ typeArgs=bool* */ f();
- var /*@ type=bool* */ y = /*@ typeArgs=bool* */ f() && /*@ typeArgs=bool* */ f();
+ var /*@type=bool*/ x = /*@typeArgs=bool*/ f() || /*@typeArgs=bool*/ f();
+ var /*@type=bool*/ y = /*@typeArgs=bool*/ f() && /*@typeArgs=bool*/ f();
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline.expect
index 8269fd0..14932d6 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
var x = f() || f();
var y = f() && f();
void test() {}
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline_modelled.expect
index f6cf705..3c9f6fd 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
main() {}
var x = f() || f();
var y = f() && f();
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.expect
index 2b05154..d637727 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* x = self::f<core::bool*>() || self::f<core::bool*>();
-static field core::bool* y = self::f<core::bool*>() && self::f<core::bool*>();
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static field core::bool x = self::f<core::bool>() || self::f<core::bool>();
+static field core::bool y = self::f<core::bool>() && self::f<core::bool>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- core::bool* x = self::f<core::bool*>() || self::f<core::bool*>();
- core::bool* y = self::f<core::bool*>() && self::f<core::bool*>();
+ core::bool x = self::f<core::bool>() || self::f<core::bool>();
+ core::bool y = self::f<core::bool>() && self::f<core::bool>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.modular.expect
index 2b05154..d637727 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.modular.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* x = self::f<core::bool*>() || self::f<core::bool*>();
-static field core::bool* y = self::f<core::bool*>() && self::f<core::bool*>();
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static field core::bool x = self::f<core::bool>() || self::f<core::bool>();
+static field core::bool y = self::f<core::bool>() && self::f<core::bool>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- core::bool* x = self::f<core::bool*>() || self::f<core::bool*>();
- core::bool* y = self::f<core::bool*>() && self::f<core::bool*>();
+ core::bool x = self::f<core::bool>() || self::f<core::bool>();
+ core::bool y = self::f<core::bool>() && self::f<core::bool>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.outline.expect
index 13732dc..0c96ed5 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.outline.expect
@@ -1,10 +1,10 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* x;
-static field core::bool* y;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static field core::bool x;
+static field core::bool y;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.transformed.expect
index 2b05154..d637727 100644
--- a/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_logical.dart.weak.transformed.expect
@@ -1,13 +1,13 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::bool* x = self::f<core::bool*>() || self::f<core::bool*>();
-static field core::bool* y = self::f<core::bool*>() && self::f<core::bool*>();
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static field core::bool x = self::f<core::bool>() || self::f<core::bool>();
+static field core::bool y = self::f<core::bool>() && self::f<core::bool>();
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- core::bool* x = self::f<core::bool*>() || self::f<core::bool*>();
- core::bool* y = self::f<core::bool*>() && self::f<core::bool*>();
+ core::bool x = self::f<core::bool>() || self::f<core::bool>();
+ core::bool y = self::f<core::bool>() && self::f<core::bool>();
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart
index d5fe17c..5c8e415 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline.expect
index 276af4e..fccbad0 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class B {
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline_modelled.expect
index 699b12b..deba2e5 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class B {
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.expect
index 18cf625..435e9d9 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method f() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
method f() → void {}
}
-static field void x = new self::C::•().{self::C::f}(){() →* void};
+static field void x = new self::C::•().{self::C::f}(){() → void};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.modular.expect
index 18cf625..435e9d9 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method f() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
method f() → void {}
}
-static field void x = new self::C::•().{self::C::f}(){() →* void};
+static field void x = new self::C::•().{self::C::f}(){() → void};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.outline.expect
index ba9bf4a..a341f62 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method f() → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method f() → void
;
diff --git a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.transformed.expect
index 18cf625..435e9d9 100644
--- a/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/infer_use_of_void.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method f() → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
method f() → void {}
}
-static field void x = new self::C::•().{self::C::f}(){() →* void};
+static field void x = new self::C::•().{self::C::f}(){() → void};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart
index 3a6562d..74fbf45 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
-int i;
-String s;
+int i = 0;
+String s = '';
var x = i = s;
main() {}
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline.expect
index 1330573..56699ed 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-int i;
-String s;
+int i = 0;
+String s = '';
var x = i = s;
main() {}
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline_modelled.expect
index 4349743..4015540 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-String s;
-int i;
+String s = '';
+int i = 0;
main() {}
var x = i = s;
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.expect
index 3faad32..6cac1be 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,9 +9,9 @@
import self as self;
import "dart:core" as core;
-static field core::int* i;
-static field core::String* s;
-static field core::String* x = self::i = invalid-expression "pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart:9:13: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+static field core::int i = 0;
+static field core::String s = "";
+static field core::String x = self::i = invalid-expression "pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart:9:13: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var x = i = s;
- ^" in self::s as{TypeError} core::int*;
+ ^" in self::s as{TypeError,ForNonNullableByDefault} core::int;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.modular.expect
index 3faad32..6cac1be 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,9 +9,9 @@
import self as self;
import "dart:core" as core;
-static field core::int* i;
-static field core::String* s;
-static field core::String* x = self::i = invalid-expression "pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart:9:13: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+static field core::int i = 0;
+static field core::String s = "";
+static field core::String x = self::i = invalid-expression "pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart:9:13: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var x = i = s;
- ^" in self::s as{TypeError} core::int*;
+ ^" in self::s as{TypeError,ForNonNullableByDefault} core::int;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.outline.expect
index 51cd968..b009bc7 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::int* i;
-static field core::String* s;
-static field core::String* x;
+static field core::int i;
+static field core::String s;
+static field core::String x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.transformed.expect
index 3faad32..6cac1be 100644
--- a/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -9,9 +9,9 @@
import self as self;
import "dart:core" as core;
-static field core::int* i;
-static field core::String* s;
-static field core::String* x = self::i = invalid-expression "pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart:9:13: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
+static field core::int i = 0;
+static field core::String s = "";
+static field core::String x = self::i = invalid-expression "pkg/front_end/testcases/inference_new/invalid_assignment_during_toplevel_inference.dart:9:13: Error: A value of type 'String' can't be assigned to a variable of type 'int'.
var x = i = s;
- ^" in self::s as{TypeError} core::int*;
+ ^" in self::s as{TypeError,ForNonNullableByDefault} core::int;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart
index 44d091e..95a8a3b 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline.expect
index e352ea2..38b2446 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = [null];
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect
index a043852..9294248 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.expect
index 30af47a..d89c468 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<Null>* x = <Null>[null];
+static field core::List<Null> x = <Null>[null];
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.modular.expect
index 30af47a..d89c468 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<Null>* x = <Null>[null];
+static field core::List<Null> x = <Null>[null];
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.outline.expect
index d051539..06a9fc9 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<Null>* x;
+static field core::List<Null> x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.transformed.expect
index e068583..1a0621fd 100644
--- a/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/list_literals_can_infer_null_top_level.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<Null>* x = core::_GrowableList::_literal1<Null>(null);
+static field core::List<Null> x = core::_GrowableList::_literal1<Null>(null);
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart
index 49da973..4acd9c4 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline.expect
index 3329d4e..1954ad0 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
var x = {null: null};
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect
index e7a37b5..412a917 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
main() {}
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.expect
index c5b6db9..f64b3f9 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<Null, Null>* x = <Null, Null>{null: null};
+static field core::Map<Null, Null> x = <Null, Null>{null: null};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.modular.expect
index c5b6db9..f64b3f9 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<Null, Null>* x = <Null, Null>{null: null};
+static field core::Map<Null, Null> x = <Null, Null>{null: null};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.outline.expect
index 3a23ea0..5507eea 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.outline.expect
@@ -1,7 +1,7 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<Null, Null>* x;
+static field core::Map<Null, Null> x;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.transformed.expect
index c5b6db9..f64b3f9 100644
--- a/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/map_literals_can_infer_null_top_level.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::Map<Null, Null>* x = <Null, Null>{null: null};
+static field core::Map<Null, Null> x = <Null, Null>{null: null};
static method main() → dynamic {
self::x;
}
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart
index 013c8c7..d1f1fe7 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline.expect
index a3dc615..b52257c 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class I1 {
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline_modelled.expect
index 2245528..fa895e1 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
abstract class C implements I1, I2 {}
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.expect
index 35f8118..f667eff 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.expect
@@ -1,87 +1,47 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class I1 extends core::Object {
- synthetic constructor •() → self::I1*
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract method f(core::int* i) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int i) → void;
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract method f(core::Object* o) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::Object o) → void;
}
abstract class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature method f(core::Object* o) → void; -> self::I2::f
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method f(core::Object o) → void; -> self::I2::f
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method f(core::Object* o) → void {}
+ method f(core::Object o) → void {}
}
abstract class E extends core::Object implements self::I2, self::I1 {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super self::E::•()
;
- method f(core::Object* o) → void {}
+ method f(core::Object o) → void {}
}
-static method g1(self::C* c) → void {
- c.{self::C::f}("hi"){(core::Object*) →* void};
+static method g1(self::C c) → void {
+ c.{self::C::f}("hi"){(core::Object) → void};
}
-static method g2(self::E* e) → void {
- e.{self::I2::f}("hi"){(core::Object*) →* void};
+static method g2(self::E e) → void {
+ e.{self::I2::f}("hi"){(core::Object) → void};
}
static method main() → dynamic {
self::g1(new self::D::•());
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.modular.expect
index 35f8118..f667eff 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.modular.expect
@@ -1,87 +1,47 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class I1 extends core::Object {
- synthetic constructor •() → self::I1*
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract method f(core::int* i) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int i) → void;
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract method f(core::Object* o) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::Object o) → void;
}
abstract class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature method f(core::Object* o) → void; -> self::I2::f
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method f(core::Object o) → void; -> self::I2::f
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method f(core::Object* o) → void {}
+ method f(core::Object o) → void {}
}
abstract class E extends core::Object implements self::I2, self::I1 {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super self::E::•()
;
- method f(core::Object* o) → void {}
+ method f(core::Object o) → void {}
}
-static method g1(self::C* c) → void {
- c.{self::C::f}("hi"){(core::Object*) →* void};
+static method g1(self::C c) → void {
+ c.{self::C::f}("hi"){(core::Object) → void};
}
-static method g2(self::E* e) → void {
- e.{self::I2::f}("hi"){(core::Object*) →* void};
+static method g2(self::E e) → void {
+ e.{self::I2::f}("hi"){(core::Object) → void};
}
static method main() → dynamic {
self::g1(new self::D::•());
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.outline.expect
index f0b94c5..7cb49e6 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.outline.expect
@@ -1,81 +1,41 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class I1 extends core::Object {
- synthetic constructor •() → self::I1*
+ synthetic constructor •() → self::I1
;
- abstract method f(core::int* i) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int i) → void;
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
;
- abstract method f(core::Object* o) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::Object o) → void;
}
abstract class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- abstract member-signature method f(core::Object* o) → void; -> self::I2::f
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method f(core::Object o) → void; -> self::I2::f
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- method f(core::Object* o) → void
+ method f(core::Object o) → void
;
}
abstract class E extends core::Object implements self::I2, self::I1 {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
;
- method f(core::Object* o) → void
+ method f(core::Object o) → void
;
}
-static method g1(self::C* c) → void
+static method g1(self::C c) → void
;
-static method g2(self::E* e) → void
+static method g2(self::E e) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.transformed.expect
index 35f8118..f667eff 100644
--- a/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/multiple_interface_inheritance.dart.weak.transformed.expect
@@ -1,87 +1,47 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
abstract class I1 extends core::Object {
- synthetic constructor •() → self::I1*
+ synthetic constructor •() → self::I1
: super core::Object::•()
;
- abstract method f(core::int* i) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::int i) → void;
}
abstract class I2 extends core::Object {
- synthetic constructor •() → self::I2*
+ synthetic constructor •() → self::I2
: super core::Object::•()
;
- abstract method f(core::Object* o) → void;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method f(core::Object o) → void;
}
abstract class C extends core::Object implements self::I1, self::I2 {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- abstract member-signature method f(core::Object* o) → void; -> self::I2::f
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method f(core::Object o) → void; -> self::I2::f
}
class D extends self::C {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super self::C::•()
;
- method f(core::Object* o) → void {}
+ method f(core::Object o) → void {}
}
abstract class E extends core::Object implements self::I2, self::I1 {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends self::E {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super self::E::•()
;
- method f(core::Object* o) → void {}
+ method f(core::Object o) → void {}
}
-static method g1(self::C* c) → void {
- c.{self::C::f}("hi"){(core::Object*) →* void};
+static method g1(self::C c) → void {
+ c.{self::C::f}("hi"){(core::Object) → void};
}
-static method g2(self::E* e) → void {
- e.{self::I2::f}("hi"){(core::Object*) →* void};
+static method g2(self::E e) → void {
+ e.{self::I2::f}("hi"){(core::Object) → void};
}
static method main() → dynamic {
self::g1(new self::D::•());
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart
index 1aeaa68..3a97531 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
class Class {
- T method<T>() => null;
+ T method<T>() => throw '';
}
-main() {
- Class c;
- num Function() f = /*@type=Class**/ c?. /*@target=Class.method*/ method;
+test(Class? c) {
+ num Function()? f = /*@type=Class?*/ /*@promotedType=Class*/ c
+ ?. /*@target=Class.method*/ method;
}
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline.expect
index bcce8ba..fab8f5a 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class Class {
- T method<T>() => null;
+ T method<T>() => throw '';
}
-main() {}
+test(Class? c) {}
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline_modelled.expect
index bcce8ba..fab8f5a 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
library test;
class Class {
- T method<T>() => null;
+ T method<T>() => throw '';
}
-main() {}
+test(Class? c) {}
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.expect b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.expect
index fa63c03..1f05490 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.expect
@@ -1,25 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
- synthetic constructor •() → self::Class*
+ synthetic constructor •() → self::Class
: super core::Object::•()
;
- method method<T extends core::Object* = dynamic>() → self::Class::method::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method method<T extends core::Object? = dynamic>() → self::Class::method::T%
+ return throw "";
}
-static method main() → dynamic {
- self::Class* c;
- () →* core::num* f = let final self::Class* #t1 = c in #t1 == null ?{() →* core::num*} null : #t1.{self::Class::method}{<T extends core::Object* = dynamic>() →* T*}<core::num*>;
+static method test(self::Class? c) → dynamic {
+ () →? core::num f = let final self::Class? #t1 = c in #t1 == null ?{() →? core::num} null : #t1{self::Class}.{self::Class::method}{<T extends core::Object? = dynamic>() → T%}<core::num>;
}
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.modular.expect
index fa63c03..1f05490 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.modular.expect
@@ -1,25 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
- synthetic constructor •() → self::Class*
+ synthetic constructor •() → self::Class
: super core::Object::•()
;
- method method<T extends core::Object* = dynamic>() → self::Class::method::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method method<T extends core::Object? = dynamic>() → self::Class::method::T%
+ return throw "";
}
-static method main() → dynamic {
- self::Class* c;
- () →* core::num* f = let final self::Class* #t1 = c in #t1 == null ?{() →* core::num*} null : #t1.{self::Class::method}{<T extends core::Object* = dynamic>() →* T*}<core::num*>;
+static method test(self::Class? c) → dynamic {
+ () →? core::num f = let final self::Class? #t1 = c in #t1 == null ?{() →? core::num} null : #t1{self::Class}.{self::Class::method}{<T extends core::Object? = dynamic>() → T%}<core::num>;
}
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.outline.expect
index f2eba54..f646d78 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
- synthetic constructor •() → self::Class*
+ synthetic constructor •() → self::Class
;
- method method<T extends core::Object* = dynamic>() → self::Class::method::T*
+ method method<T extends core::Object? = dynamic>() → self::Class::method::T%
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method main() → dynamic
+static method test(self::Class? c) → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.transformed.expect
index fa63c03..1f05490 100644
--- a/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/null_aware_property_get.dart.weak.transformed.expect
@@ -1,25 +1,14 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class Class extends core::Object {
- synthetic constructor •() → self::Class*
+ synthetic constructor •() → self::Class
: super core::Object::•()
;
- method method<T extends core::Object* = dynamic>() → self::Class::method::T*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method method<T extends core::Object? = dynamic>() → self::Class::method::T%
+ return throw "";
}
-static method main() → dynamic {
- self::Class* c;
- () →* core::num* f = let final self::Class* #t1 = c in #t1 == null ?{() →* core::num*} null : #t1.{self::Class::method}{<T extends core::Object* = dynamic>() →* T*}<core::num*>;
+static method test(self::Class? c) → dynamic {
+ () →? core::num f = let final self::Class? #t1 = c in #t1 == null ?{() →? core::num} null : #t1{self::Class}.{self::Class::method}{<T extends core::Object? = dynamic>() → T%}<core::num>;
}
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart
index 7676f3f..2ef22f7 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart
@@ -1,20 +1,20 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(int value) => null;
- C operator *(D value) => null;
+ C operator +(int value) => throw '';
+ C operator *(D value) => throw '';
}
class B {
- E operator +(int value) => null;
- E operator *(F value) => null;
+ E operator +(int value) => throw '';
+ E operator *(F value) => throw '';
}
class C extends B {}
@@ -26,33 +26,33 @@
class F {}
class G {
- A get target => null;
+ A get target => throw '';
void set target(B value) {}
}
void test1(G g) {
- /*@ type=G* */ g. /*@target=G.target*/ /*@target=G.target*/ target
+ /*@type=G*/ g. /*@target=G.target*/ /*@target=G.target*/ target
/*@target=A.**/ *=
- /*@ typeArgs=D* */ f();
- var /*@ type=C* */ x =
- /*@ type=G* */ g. /*@target=G.target*/ /*@target=G.target*/ target
+ /*@typeArgs=D*/ f();
+ var /*@type=C*/ x =
+ /*@type=G*/ g. /*@target=G.target*/ /*@target=G.target*/ target
/*@target=A.**/ *=
- /*@ typeArgs=D* */ f();
+ /*@typeArgs=D*/ f();
}
void test2(G g) {
- /*@target=A.+*/ ++ /*@ type=G* */ g
+ /*@target=A.+*/ ++ /*@type=G*/ g
. /*@target=G.target*/ /*@target=G.target*/ target;
- var /*@ type=C* */ x = /*@target=A.+*/ ++ /*@ type=G* */ g
+ var /*@type=C*/ x = /*@target=A.+*/ ++ /*@type=G*/ g
. /*@target=G.target*/ /*@target=G.target*/ target;
}
void test3(G g) {
- /*@ type=G* */ g
+ /*@type=G*/ g
. /*@target=G.target*/ /*@target=G.target*/ target /*@target=A.+*/ ++;
- var /*@ type=A* */ x = /*@ type=G* */ g. /*@ type=A* */ /*@target=G.target*/
- /*@target=G.target*/ /*@ type=C* */ target
+ var /*@type=A*/ x = /*@type=G*/ g. /*@type=A*/ /*@target=G.target*/
+ /*@target=G.target*/ /*@type=C*/ target
/*@target=A.+*/ ++;
}
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline.expect
index dfd5284..60d9189 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(int value) => null;
- C operator *(D value) => null;
+ C operator +(int value) => throw '';
+ C operator *(D value) => throw '';
}
class B {
- E operator +(int value) => null;
- E operator *(F value) => null;
+ E operator +(int value) => throw '';
+ E operator *(F value) => throw '';
}
class C extends B {}
@@ -22,7 +21,7 @@
class F {}
class G {
- A get target => null;
+ A get target => throw '';
void set target(B value) {}
}
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline_modelled.expect
index 09bae58..1beb8d4 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator *(D value) => null;
- C operator +(int value) => null;
+ C operator *(D value) => throw '';
+ C operator +(int value) => throw '';
}
class B {
- E operator *(F value) => null;
- E operator +(int value) => null;
+ E operator *(F value) => throw '';
+ E operator +(int value) => throw '';
}
class C extends B {}
@@ -22,7 +21,7 @@
class F {}
class G {
- A get target => null;
+ A get target => throw '';
void set target(B value) {}
}
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.expect b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.expect
index facdace..9a5929c 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not assignable to the type 'B' of the setter 'G.target'.
+// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not a subtype of the type 'B' of the setter 'G.target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:31:12: Context: This is the declaration of the setter 'G.target'.
// void set target(B value) {}
@@ -15,123 +15,63 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- get target() → self::A*
- return null;
- set target(self::B* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get target() → self::A
+ return throw "";
+ set target(self::B value) → void {}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test1(self::G* g) → void {
- let final self::G* #t1 = g in #t1.{self::G::target} = #t1.{self::G::target}{self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
- self::C* x = let final self::G* #t2 = g in #t2.{self::G::target} = #t2.{self::G::target}{self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test1(self::G g) → void {
+ let final self::G #t1 = g in #t1.{self::G::target} = #t1.{self::G::target}{self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
+ self::C x = let final self::G #t2 = g in #t2.{self::G::target} = #t2.{self::G::target}{self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
}
-static method test2(self::G* g) → void {
- let final self::G* #t3 = g in #t3.{self::G::target} = #t3.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
- self::C* x = let final self::G* #t4 = g in #t4.{self::G::target} = #t4.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
+static method test2(self::G g) → void {
+ let final self::G #t3 = g in #t3.{self::G::target} = #t3.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
+ self::C x = let final self::G #t4 = g in #t4.{self::G::target} = #t4.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
}
-static method test3(self::G* g) → void {
- let final self::G* #t5 = g in #t5.{self::G::target} = #t5.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
- self::A* x = let final self::G* #t6 = g in let final self::A* #t7 = #t6.{self::G::target}{self::A*} in let final self::C* #t8 = #t6.{self::G::target} = #t7.{self::A::+}(1){(core::int*) →* self::C*} in #t7;
+static method test3(self::G g) → void {
+ let final self::G #t5 = g in #t5.{self::G::target} = #t5.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
+ self::A x = let final self::G #t6 = g in let final self::A #t7 = #t6.{self::G::target}{self::A} in let final self::C #t8 = #t6.{self::G::target} = #t7.{self::A::+}(1){(core::int) → self::C} in #t7;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.modular.expect
index facdace..9a5929c 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not assignable to the type 'B' of the setter 'G.target'.
+// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not a subtype of the type 'B' of the setter 'G.target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:31:12: Context: This is the declaration of the setter 'G.target'.
// void set target(B value) {}
@@ -15,123 +15,63 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- get target() → self::A*
- return null;
- set target(self::B* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get target() → self::A
+ return throw "";
+ set target(self::B value) → void {}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test1(self::G* g) → void {
- let final self::G* #t1 = g in #t1.{self::G::target} = #t1.{self::G::target}{self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
- self::C* x = let final self::G* #t2 = g in #t2.{self::G::target} = #t2.{self::G::target}{self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test1(self::G g) → void {
+ let final self::G #t1 = g in #t1.{self::G::target} = #t1.{self::G::target}{self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
+ self::C x = let final self::G #t2 = g in #t2.{self::G::target} = #t2.{self::G::target}{self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
}
-static method test2(self::G* g) → void {
- let final self::G* #t3 = g in #t3.{self::G::target} = #t3.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
- self::C* x = let final self::G* #t4 = g in #t4.{self::G::target} = #t4.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
+static method test2(self::G g) → void {
+ let final self::G #t3 = g in #t3.{self::G::target} = #t3.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
+ self::C x = let final self::G #t4 = g in #t4.{self::G::target} = #t4.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
}
-static method test3(self::G* g) → void {
- let final self::G* #t5 = g in #t5.{self::G::target} = #t5.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
- self::A* x = let final self::G* #t6 = g in let final self::A* #t7 = #t6.{self::G::target}{self::A*} in let final self::C* #t8 = #t6.{self::G::target} = #t7.{self::A::+}(1){(core::int*) →* self::C*} in #t7;
+static method test3(self::G g) → void {
+ let final self::G #t5 = g in #t5.{self::G::target} = #t5.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
+ self::A x = let final self::G #t6 = g in let final self::A #t7 = #t6.{self::G::target}{self::A} in let final self::C #t8 = #t6.{self::G::target} = #t7.{self::A::+}(1){(core::int) → self::C} in #t7;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.outline.expect
index 1dedb62..bb9ad44 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not assignable to the type 'B' of the setter 'G.target'.
+// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not a subtype of the type 'B' of the setter 'G.target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:31:12: Context: This is the declaration of the setter 'G.target'.
// void set target(B value) {}
@@ -15,112 +15,52 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- operator +(core::int* value) → self::C*
+ operator +(core::int value) → self::C
;
- operator *(self::D* value) → self::C*
+ operator *(self::D value) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(core::int* value) → self::E*
+ operator +(core::int value) → self::E
;
- operator *(self::F* value) → self::E*
+ operator *(self::F value) → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
;
- get target() → self::A*
+ get target() → self::A
;
- set target(self::B* value) → void
+ set target(self::B value) → void
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method test1(self::G* g) → void
+static method test1(self::G g) → void
;
-static method test2(self::G* g) → void
+static method test2(self::G g) → void
;
-static method test3(self::G* g) → void
+static method test3(self::G g) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.transformed.expect
index facdace..9a5929c 100644
--- a/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/property_assign_combiner.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not assignable to the type 'B' of the setter 'G.target'.
+// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:29:9: Error: The type 'A' of the getter 'G.target' is not a subtype of the type 'B' of the setter 'G.target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/property_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/property_assign_combiner.dart:31:12: Context: This is the declaration of the setter 'G.target'.
// void set target(B value) {}
@@ -15,123 +15,63 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class G extends core::Object {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- get target() → self::A*
- return null;
- set target(self::B* value) → void {}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ get target() → self::A
+ return throw "";
+ set target(self::B value) → void {}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test1(self::G* g) → void {
- let final self::G* #t1 = g in #t1.{self::G::target} = #t1.{self::G::target}{self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
- self::C* x = let final self::G* #t2 = g in #t2.{self::G::target} = #t2.{self::G::target}{self::A*}.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test1(self::G g) → void {
+ let final self::G #t1 = g in #t1.{self::G::target} = #t1.{self::G::target}{self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
+ self::C x = let final self::G #t2 = g in #t2.{self::G::target} = #t2.{self::G::target}{self::A}.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
}
-static method test2(self::G* g) → void {
- let final self::G* #t3 = g in #t3.{self::G::target} = #t3.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
- self::C* x = let final self::G* #t4 = g in #t4.{self::G::target} = #t4.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
+static method test2(self::G g) → void {
+ let final self::G #t3 = g in #t3.{self::G::target} = #t3.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
+ self::C x = let final self::G #t4 = g in #t4.{self::G::target} = #t4.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
}
-static method test3(self::G* g) → void {
- let final self::G* #t5 = g in #t5.{self::G::target} = #t5.{self::G::target}{self::A*}.{self::A::+}(1){(core::int*) →* self::C*};
- self::A* x = let final self::G* #t6 = g in let final self::A* #t7 = #t6.{self::G::target}{self::A*} in let final self::C* #t8 = #t6.{self::G::target} = #t7.{self::A::+}(1){(core::int*) →* self::C*} in #t7;
+static method test3(self::G g) → void {
+ let final self::G #t5 = g in #t5.{self::G::target} = #t5.{self::G::target}{self::A}.{self::A::+}(1){(core::int) → self::C};
+ self::A x = let final self::G #t6 = g in let final self::A #t7 = #t6.{self::G::target}{self::A} in let final self::C #t8 = #t6.{self::G::target} = #t7.{self::A::+}(1){(core::int) → self::C} in #t7;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart
index 1c61afa..f2ffbfb 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -15,9 +15,9 @@
var field_ref = c. /*@target=C.field*/ field;
var getter_ref = c. /*@target=C.getter*/ getter;
var function_ref = c. /*@target=C.function*/ function;
-var field_ref_list = /*@ typeArgs=int* */ [c. /*@target=C.field*/ field];
-var getter_ref_list = /*@ typeArgs=int* */ [c. /*@target=C.getter*/ getter];
-var function_ref_list = /*@ typeArgs=() ->* int* */ [
+var field_ref_list = /*@typeArgs=int*/ [c. /*@target=C.field*/ field];
+var getter_ref_list = /*@typeArgs=int*/ [c. /*@target=C.getter*/ getter];
+var function_ref_list = /*@typeArgs=() -> int*/ [
c. /*@target=C.function*/ function
];
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline.expect
index ff89627..efab0ad 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class C {
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline_modelled.expect
index e7fed9c..4e1e6c5 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
C c = new C();
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.expect
index d52af61..873c37c 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field = 0;
- synthetic constructor •() → self::C*
+ field core::int field = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get getter() → core::int*
+ get getter() → core::int
return 0;
- method function() → core::int*
+ method function() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::int* field_ref = self::c.{self::C::field}{core::int*};
-static field core::int* getter_ref = self::c.{self::C::getter}{core::int*};
-static field () →* core::int* function_ref = self::c.{self::C::function}{() →* core::int*};
-static field core::List<core::int*>* field_ref_list = <core::int*>[self::c.{self::C::field}{core::int*}];
-static field core::List<core::int*>* getter_ref_list = <core::int*>[self::c.{self::C::getter}{core::int*}];
-static field core::List<() →* core::int*>* function_ref_list = <() →* core::int*>[self::c.{self::C::function}{() →* core::int*}];
+static field self::C c = new self::C::•();
+static field core::int field_ref = self::c.{self::C::field}{core::int};
+static field core::int getter_ref = self::c.{self::C::getter}{core::int};
+static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
+static field core::List<core::int> field_ref_list = <core::int>[self::c.{self::C::field}{core::int}];
+static field core::List<core::int> getter_ref_list = <core::int>[self::c.{self::C::getter}{core::int}];
+static field core::List<() → core::int> function_ref_list = <() → core::int>[self::c.{self::C::function}{() → core::int}];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.modular.expect
index d52af61..873c37c 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.modular.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field = 0;
- synthetic constructor •() → self::C*
+ field core::int field = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get getter() → core::int*
+ get getter() → core::int
return 0;
- method function() → core::int*
+ method function() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::int* field_ref = self::c.{self::C::field}{core::int*};
-static field core::int* getter_ref = self::c.{self::C::getter}{core::int*};
-static field () →* core::int* function_ref = self::c.{self::C::function}{() →* core::int*};
-static field core::List<core::int*>* field_ref_list = <core::int*>[self::c.{self::C::field}{core::int*}];
-static field core::List<core::int*>* getter_ref_list = <core::int*>[self::c.{self::C::getter}{core::int*}];
-static field core::List<() →* core::int*>* function_ref_list = <() →* core::int*>[self::c.{self::C::function}{() →* core::int*}];
+static field self::C c = new self::C::•();
+static field core::int field_ref = self::c.{self::C::field}{core::int};
+static field core::int getter_ref = self::c.{self::C::getter}{core::int};
+static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
+static field core::List<core::int> field_ref_list = <core::int>[self::c.{self::C::field}{core::int}];
+static field core::List<core::int> getter_ref_list = <core::int>[self::c.{self::C::getter}{core::int}];
+static field core::List<() → core::int> function_ref_list = <() → core::int>[self::c.{self::C::function}{() → core::int}];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.outline.expect
index ae25f00..d1a434c 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.outline.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field;
- synthetic constructor •() → self::C*
+ field core::int field;
+ synthetic constructor •() → self::C
;
- get getter() → core::int*
+ get getter() → core::int
;
- method function() → core::int*
+ method function() → core::int
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c;
-static field core::int* field_ref;
-static field core::int* getter_ref;
-static field () →* core::int* function_ref;
-static field core::List<core::int*>* field_ref_list;
-static field core::List<core::int*>* getter_ref_list;
-static field core::List<() →* core::int*>* function_ref_list;
+static field self::C c;
+static field core::int field_ref;
+static field core::int getter_ref;
+static field () → core::int function_ref;
+static field core::List<core::int> field_ref_list;
+static field core::List<core::int> getter_ref_list;
+static field core::List<() → core::int> function_ref_list;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.transformed.expect
index 6c6d71c..8a9a788 100644
--- a/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/property_get_toplevel.dart.weak.transformed.expect
@@ -1,32 +1,22 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class C extends core::Object {
- field core::int* field = 0;
- synthetic constructor •() → self::C*
+ field core::int field = 0;
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- get getter() → core::int*
+ get getter() → core::int
return 0;
- method function() → core::int*
+ method function() → core::int
return 0;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C* c = new self::C::•();
-static field core::int* field_ref = self::c.{self::C::field}{core::int*};
-static field core::int* getter_ref = self::c.{self::C::getter}{core::int*};
-static field () →* core::int* function_ref = self::c.{self::C::function}{() →* core::int*};
-static field core::List<core::int*>* field_ref_list = core::_GrowableList::_literal1<core::int*>(self::c.{self::C::field}{core::int*});
-static field core::List<core::int*>* getter_ref_list = core::_GrowableList::_literal1<core::int*>(self::c.{self::C::getter}{core::int*});
-static field core::List<() →* core::int*>* function_ref_list = core::_GrowableList::_literal1<() →* core::int*>(self::c.{self::C::function}{() →* core::int*});
+static field self::C c = new self::C::•();
+static field core::int field_ref = self::c.{self::C::field}{core::int};
+static field core::int getter_ref = self::c.{self::C::getter}{core::int};
+static field () → core::int function_ref = self::c.{self::C::function}{() → core::int};
+static field core::List<core::int> field_ref_list = core::_GrowableList::_literal1<core::int>(self::c.{self::C::field}{core::int});
+static field core::List<core::int> getter_ref_list = core::_GrowableList::_literal1<core::int>(self::c.{self::C::getter}{core::int});
+static field core::List<() → core::int> function_ref_list = core::_GrowableList::_literal1<() → core::int>(self::c.{self::C::function}{() → core::int});
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart
index 6fc21ac..06d4883 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart
@@ -1,20 +1,20 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(int value) => null;
- C operator *(D value) => null;
+ C operator +(int value) => throw '';
+ C operator *(D value) => throw '';
}
class B {
- E operator +(int value) => null;
- E operator *(F value) => null;
+ E operator +(int value) => throw '';
+ E operator *(F value) => throw '';
}
class C extends B {}
@@ -25,24 +25,24 @@
class F {}
-A get target => null;
+A get target => throw '';
void set target(B value) {}
void test1() {
- target /*@target=A.**/ *= /*@ typeArgs=D* */ f();
- var /*@ type=C* */ x = target /*@target=A.**/ *= /*@ typeArgs=D* */ f();
+ target /*@target=A.**/ *= /*@typeArgs=D*/ f();
+ var /*@type=C*/ x = target /*@target=A.**/ *= /*@typeArgs=D*/ f();
}
void test2() {
/*@target=A.+*/ ++target;
- var /*@ type=C* */ x = /*@target=A.+*/ ++target;
+ var /*@type=C*/ x = /*@target=A.+*/ ++target;
}
void test3() {
target /*@target=A.+*/ ++;
- var /*@ type=A* */ x = /*@ type=A* */ target
- /*@ type=C* */ /*@target=A.+*/ ++;
+ var /*@type=A*/ x = /*@type=A*/ target
+ /*@type=C*/ /*@target=A.+*/ ++;
}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline.expect
index 4682e12..6df33e9 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class A {
- C operator +(int value) => null;
- C operator *(D value) => null;
+ C operator +(int value) => throw '';
+ C operator *(D value) => throw '';
}
class B {
- E operator +(int value) => null;
- E operator *(F value) => null;
+ E operator +(int value) => throw '';
+ E operator *(F value) => throw '';
}
class C extends B {}
@@ -21,7 +20,7 @@
class F {}
-A get target => null;
+A get target => throw '';
void set target(B value) {}
void test1() {}
void test2() {}
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline_modelled.expect
index d1ab390..284bad6 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.textual_outline_modelled.expect
@@ -1,17 +1,16 @@
-// @dart = 2.9
library test;
-A get target => null;
-T f<T>() => null;
+A get target => throw '';
+T f<T>() => throw '';
class A {
- C operator *(D value) => null;
- C operator +(int value) => null;
+ C operator *(D value) => throw '';
+ C operator +(int value) => throw '';
}
class B {
- E operator *(F value) => null;
- E operator +(int value) => null;
+ E operator *(F value) => throw '';
+ E operator +(int value) => throw '';
}
class C extends B {}
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.expect b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.expect
index 0c920ee..4d57d4a 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not assignable to the type 'B' of the setter 'target'.
+// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not a subtype of the type 'B' of the setter 'target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:30:10: Context: This is the declaration of the setter 'target'.
// void set target(B value) {}
@@ -15,108 +15,58 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static get target() → self::A*
- return null;
-static set target(self::B* value) → void {}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static get target() → self::A
+ return throw "";
+static set target(self::B value) → void {}
static method test1() → void {
- self::target = self::target.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
- self::C* x = self::target = self::target.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
+ self::target = self::target.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
+ self::C x = self::target = self::target.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
}
static method test2() → void {
- self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
- self::C* x = self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
+ self::target = self::target.{self::A::+}(1){(core::int) → self::C};
+ self::C x = self::target = self::target.{self::A::+}(1){(core::int) → self::C};
}
static method test3() → void {
- self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
- self::A* x = let final self::A* #t1 = self::target in let final self::C* #t2 = self::target = #t1.{self::A::+}(1){(core::int*) →* self::C*} in #t1;
+ self::target = self::target.{self::A::+}(1){(core::int) → self::C};
+ self::A x = let final self::A #t1 = self::target in let final self::C #t2 = self::target = #t1.{self::A::+}(1){(core::int) → self::C} in #t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.modular.expect
index 0c920ee..4d57d4a 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not assignable to the type 'B' of the setter 'target'.
+// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not a subtype of the type 'B' of the setter 'target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:30:10: Context: This is the declaration of the setter 'target'.
// void set target(B value) {}
@@ -15,108 +15,58 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static get target() → self::A*
- return null;
-static set target(self::B* value) → void {}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static get target() → self::A
+ return throw "";
+static set target(self::B value) → void {}
static method test1() → void {
- self::target = self::target.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
- self::C* x = self::target = self::target.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
+ self::target = self::target.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
+ self::C x = self::target = self::target.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
}
static method test2() → void {
- self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
- self::C* x = self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
+ self::target = self::target.{self::A::+}(1){(core::int) → self::C};
+ self::C x = self::target = self::target.{self::A::+}(1){(core::int) → self::C};
}
static method test3() → void {
- self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
- self::A* x = let final self::A* #t1 = self::target in let final self::C* #t2 = self::target = #t1.{self::A::+}(1){(core::int*) →* self::C*} in #t1;
+ self::target = self::target.{self::A::+}(1){(core::int) → self::C};
+ self::A x = let final self::A #t1 = self::target in let final self::C #t2 = self::target = #t1.{self::A::+}(1){(core::int) → self::C} in #t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.outline.expect
index bd2765e..0837a97 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.outline.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not assignable to the type 'B' of the setter 'target'.
+// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not a subtype of the type 'B' of the setter 'target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:30:10: Context: This is the declaration of the setter 'target'.
// void set target(B value) {}
@@ -15,92 +15,42 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- operator +(core::int* value) → self::C*
+ operator +(core::int value) → self::C
;
- operator *(self::D* value) → self::C*
+ operator *(self::D value) → self::C
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator +(core::int* value) → self::E*
+ operator +(core::int value) → self::E
;
- operator *(self::F* value) → self::E*
+ operator *(self::F value) → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static get target() → self::A*
+static get target() → self::A
;
-static set target(self::B* value) → void
+static set target(self::B value) → void
;
static method test1() → void
;
diff --git a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.transformed.expect
index 0c920ee..4d57d4a 100644
--- a/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/static_assign_combiner.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not assignable to the type 'B' of the setter 'target'.
+// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:28:7: Error: The type 'A' of the getter 'target' is not a subtype of the type 'B' of the setter 'target'.
// - 'A' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
// - 'B' is from 'pkg/front_end/testcases/inference_new/static_assign_combiner.dart'.
-// A get target => null;
+// A get target => throw '';
// ^^^^^^
// pkg/front_end/testcases/inference_new/static_assign_combiner.dart:30:10: Context: This is the declaration of the setter 'target'.
// void set target(B value) {}
@@ -15,108 +15,58 @@
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- operator +(core::int* value) → self::C*
- return null;
- operator *(self::D* value) → self::C*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::C
+ return throw "";
+ operator *(self::D value) → self::C
+ return throw "";
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator +(core::int* value) → self::E*
- return null;
- operator *(self::F* value) → self::E*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator +(core::int value) → self::E
+ return throw "";
+ operator *(self::F value) → self::E
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static get target() → self::A*
- return null;
-static set target(self::B* value) → void {}
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static get target() → self::A
+ return throw "";
+static set target(self::B value) → void {}
static method test1() → void {
- self::target = self::target.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
- self::C* x = self::target = self::target.{self::A::*}(self::f<self::D*>()){(self::D*) →* self::C*};
+ self::target = self::target.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
+ self::C x = self::target = self::target.{self::A::*}(self::f<self::D>()){(self::D) → self::C};
}
static method test2() → void {
- self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
- self::C* x = self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
+ self::target = self::target.{self::A::+}(1){(core::int) → self::C};
+ self::C x = self::target = self::target.{self::A::+}(1){(core::int) → self::C};
}
static method test3() → void {
- self::target = self::target.{self::A::+}(1){(core::int*) →* self::C*};
- self::A* x = let final self::A* #t1 = self::target in let final self::C* #t2 = self::target = #t1.{self::A::+}(1){(core::int*) →* self::C*} in #t1;
+ self::target = self::target.{self::A::+}(1){(core::int) → self::C};
+ self::A x = let final self::A #t1 = self::target in let final self::C #t2 = self::target = #t1.{self::A::+}(1){(core::int) → self::C} in #t1;
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart
index 0ab4f9a..b212931 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
@@ -14,7 +14,7 @@
// circularity, and for error recovery their type is set to `dynamic`.
// Thereafter, z infers without problems.
-var x = /*@ returnType=() ->* invalid-type */ () => f() ? y : z;
+var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
var y = /*@ returnType=invalid-type */ () => x;
var z = /*@ returnType=invalid-type */ () => x;
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline.expect
index a20ce2a..d4c04a6 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
bool f() => null;
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline_modelled.expect
index a5de498..667ba69 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
bool f() => null;
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.expect
index 276a1c2..2183990 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.expect
@@ -1,18 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => f() ? y : z;
+// var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
// ^
//
+// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
+// bool f() => null;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field invalid-type x = () → () →* invalid-type => self::f() ?{() →* invalid-type} self::y : self::z;
-static field () →* invalid-type y = () → invalid-type => self::x;
-static field () →* invalid-type z = () → invalid-type => self::x;
-static method f() → core::bool*
- return null;
+static field invalid-type x = () → () → invalid-type => self::f() ?{() → invalid-type} self::y : self::z;
+static field () → invalid-type y = () → invalid-type => self::x;
+static field () → invalid-type z = () → invalid-type => self::x;
+static method f() → core::bool
+ return invalid-expression "pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
+bool f() => null;
+ ^" in null as{TypeError,ForNonNullableByDefault} core::bool;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.modular.expect
index 276a1c2..2183990 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.modular.expect
@@ -1,18 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => f() ? y : z;
+// var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
// ^
//
+// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
+// bool f() => null;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field invalid-type x = () → () →* invalid-type => self::f() ?{() →* invalid-type} self::y : self::z;
-static field () →* invalid-type y = () → invalid-type => self::x;
-static field () →* invalid-type z = () → invalid-type => self::x;
-static method f() → core::bool*
- return null;
+static field invalid-type x = () → () → invalid-type => self::f() ?{() → invalid-type} self::y : self::z;
+static field () → invalid-type y = () → invalid-type => self::x;
+static field () → invalid-type z = () → invalid-type => self::x;
+static method f() → core::bool
+ return invalid-expression "pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
+bool f() => null;
+ ^" in null as{TypeError,ForNonNullableByDefault} core::bool;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.outline.expect
index e14b203..099227e 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.outline.expect
@@ -1,19 +1,19 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => f() ? y : z;
+// var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
// ^
//
import self as self;
import "dart:core" as core;
static field invalid-type x;
-static field () →* invalid-type y;
-static field () →* invalid-type z;
-static method f() → core::bool*
+static field () → invalid-type y;
+static field () → invalid-type z;
+static method f() → core::bool
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.transformed.expect
index 276a1c2..476d367 100644
--- a/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/strongly_connected_component.dart.weak.transformed.expect
@@ -1,18 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
//
// Problems in library:
//
// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:17:5: Error: Can't infer the type of 'x': circularity found during type inference.
// Specify the type explicitly.
-// var x = /*@ returnType=() ->* invalid-type */ () => f() ? y : z;
+// var x = /*@returnType=() -> invalid-type*/ () => f() ? y : z;
// ^
//
+// pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
+// bool f() => null;
+// ^
+//
import self as self;
import "dart:core" as core;
-static field invalid-type x = () → () →* invalid-type => self::f() ?{() →* invalid-type} self::y : self::z;
-static field () →* invalid-type y = () → invalid-type => self::x;
-static field () →* invalid-type z = () → invalid-type => self::x;
-static method f() → core::bool*
- return null;
+static field invalid-type x = () → () → invalid-type => self::f() ?{() → invalid-type} self::y : self::z;
+static field () → invalid-type y = () → invalid-type => self::x;
+static field () → invalid-type z = () → invalid-type => self::x;
+static method f() → core::bool
+ return invalid-expression "pkg/front_end/testcases/inference_new/strongly_connected_component.dart:8:13: Error: The value 'null' can't be returned from a function with return type 'bool' because 'bool' is not nullable.
+bool f() => null;
+ ^" in null;
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart b/pkg/front_end/testcases/inference_new/super_index_get.dart
index e947140..1776fc6 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart
@@ -1,22 +1,22 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B {
- num operator [](int x) => null;
+ num operator [](int x) => throw '';
}
class C extends B {
- int operator [](Object x) => null;
+ int operator [](Object x) => throw '';
void h() {
- var /*@ type=num* */ x = super /*@target=B.[]*/ [/*@ typeArgs=int* */ f()];
+ var /*@type=num*/ x = super /*@target=B.[]*/ [/*@typeArgs=int*/ f()];
}
}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline.expect
index b9815ee..748940d 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B {
- num operator [](int x) => null;
+ num operator [](int x) => throw '';
}
class C extends B {
- int operator [](Object x) => null;
+ int operator [](Object x) => throw '';
void h() {}
}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline_modelled.expect
index b9815ee..748940d 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B {
- num operator [](int x) => null;
+ num operator [](int x) => throw '';
}
class C extends B {
- int operator [](Object x) => null;
+ int operator [](Object x) => throw '';
void h() {}
}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.expect b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.expect
index 2910dae..1087bd1 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator [](core::int* x) → core::num*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](core::int x) → core::num
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
- operator [](core::Object* x) → core::int*
- return null;
+ operator [](core::Object x) → core::int
+ return throw "";
method h() → void {
- core::num* x = super.{self::B::[]}(self::f<core::int*>());
+ core::num x = super.{self::B::[]}(self::f<core::int>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.modular.expect
index 2910dae..1087bd1 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.modular.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator [](core::int* x) → core::num*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](core::int x) → core::num
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
- operator [](core::Object* x) → core::int*
- return null;
+ operator [](core::Object x) → core::int
+ return throw "";
method h() → void {
- core::num* x = super.{self::B::[]}(self::f<core::int*>());
+ core::num x = super.{self::B::[]}(self::f<core::int>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.outline.expect
index 63eb56f..e41ca19 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.outline.expect
@@ -1,34 +1,24 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- operator [](core::int* x) → core::num*
+ operator [](core::int x) → core::num
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- operator [](core::Object* x) → core::int*
+ operator [](core::Object x) → core::int
;
method h() → void
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.transformed.expect
index 2910dae..1087bd1 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get.dart.weak.transformed.expect
@@ -1,36 +1,26 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- operator [](core::int* x) → core::num*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](core::int x) → core::num
+ return throw "";
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
- operator [](core::Object* x) → core::int*
- return null;
+ operator [](core::Object x) → core::int
+ return throw "";
method h() → void {
- core::num* x = super.{self::B::[]}(self::f<core::int*>());
+ core::num x = super.{self::B::[]}(self::f<core::int>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart
index ada714a..8f3116d 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart
@@ -1,27 +1,27 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class D<T> {}
class E<T> extends D<T> {}
class B<T> {
- D<T> operator [](E<T> x) => null;
+ D<T> operator [](E<T> x) => throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> operator [](Object x) => null;
+ E<Future<U>> operator [](Object x) => throw '';
void h() {
- var /*@ type=D<Future<C::U*>*>* */ x =
- super /*@target=B.[]*/ [/*@ typeArgs=E<Future<C::U*>*>* */ f()];
+ var /*@type=D<Future<C::U%>>*/ x =
+ super /*@target=B.[]*/ [/*@typeArgs=E<Future<C::U%>>*/ f()];
}
}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline.expect
index 4208381..99e8ca2 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline.expect
@@ -1,20 +1,19 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class D<T> {}
class E<T> extends D<T> {}
class B<T> {
- D<T> operator [](E<T> x) => null;
+ D<T> operator [](E<T> x) => throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> operator [](Object x) => null;
+ E<Future<U>> operator [](Object x) => throw '';
void h() {}
}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline_modelled.expect
index e2bc3de..b9ba970 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.textual_outline_modelled.expect
@@ -1,16 +1,15 @@
-// @dart = 2.9
library test;
import 'dart:async';
-T f<T>() => null;
+T f<T>() => throw '';
class B<T> {
- D<T> operator [](E<T> x) => null;
+ D<T> operator [](E<T> x) => throw '';
}
class C<U> extends B<Future<U>> {
- E<Future<U>> operator [](Object x) => null;
+ E<Future<U>> operator [](Object x) => throw '';
void h() {}
}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.expect
index b2841e6..f9823b6 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- operator [](covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ return throw "";
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- operator [](covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
- return null;
+ operator [](covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
+ return throw "";
method h() → void {
- self::D<asy::Future<self::C::U*>*>* x = super.{self::B::[]}(self::f<self::E<asy::Future<self::C::U*>*>*>());
+ self::D<asy::Future<self::C::U%>> x = super.{self::B::[]}(self::f<self::E<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.modular.expect
index b2841e6..f9823b6 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.modular.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- operator [](covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ return throw "";
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- operator [](covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
- return null;
+ operator [](covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
+ return throw "";
method h() → void {
- self::D<asy::Future<self::C::U*>*>* x = super.{self::B::[]}(self::f<self::E<asy::Future<self::C::U*>*>*>());
+ self::D<asy::Future<self::C::U%>> x = super.{self::B::[]}(self::f<self::E<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.outline.expect
index 968cab6..a02d190 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.outline.expect
@@ -1,53 +1,33 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
-}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
;
- operator [](covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- ;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
;
- operator [](covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
+ operator [](covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ ;
+}
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
+ ;
+ operator [](covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
;
method h() → void
;
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.transformed.expect
index b2841e6..f9823b6 100644
--- a/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/super_index_get_substitution.dart.weak.transformed.expect
@@ -1,57 +1,37 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:async" as asy;
import "dart:async";
-class D<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::D<self::D::T*>*
+class D<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::D<self::D::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<T extends core::Object* = dynamic> extends self::D<self::E::T*> {
- synthetic constructor •() → self::E<self::E::T*>*
+class E<T extends core::Object? = dynamic> extends self::D<self::E::T%> {
+ synthetic constructor •() → self::E<self::E::T%>
: super self::D::•()
;
}
-class B<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T%>
: super core::Object::•()
;
- operator [](covariant-by-class self::E<self::B::T*>* x) → self::D<self::B::T*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ operator [](covariant-by-class self::E<self::B::T%> x) → self::D<self::B::T%>
+ return throw "";
}
-class C<U extends core::Object* = dynamic> extends self::B<asy::Future<self::C::U*>*> {
- synthetic constructor •() → self::C<self::C::U*>*
+class C<U extends core::Object? = dynamic> extends self::B<asy::Future<self::C::U%>> {
+ synthetic constructor •() → self::C<self::C::U%>
: super self::B::•()
;
- operator [](covariant-by-class core::Object* x) → self::E<asy::Future<self::C::U*>*>*
- return null;
+ operator [](covariant-by-class core::Object x) → self::E<asy::Future<self::C::U%>>
+ return throw "";
method h() → void {
- self::D<asy::Future<self::C::U*>*>* x = super.{self::B::[]}(self::f<self::E<asy::Future<self::C::U*>*>*>());
+ self::D<asy::Future<self::C::U%>> x = super.{self::B::[]}(self::f<self::E<asy::Future<self::C::U%>>>());
}
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/switch.dart b/pkg/front_end/testcases/inference_new/switch.dart
index c4ffee2..628f35c 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart
+++ b/pkg/front_end/testcases/inference_new/switch.dart
@@ -1,11 +1,11 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C<T> {
const C();
@@ -13,11 +13,11 @@
void test(C<int> x) {
switch (x) {
- case const /*@ typeArgs=int* */ C():
- var /*@ type=int* */ y = 0;
+ case const /*@typeArgs=int*/ C():
+ var /*@type=int*/ y = 0;
break;
default:
- var /*@ type=int* */ y = 0;
+ var /*@type=int*/ y = 0;
break;
}
}
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/switch.dart.textual_outline.expect
index 85572a1..cc208af 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C<T> {
const C();
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/switch.dart.textual_outline_modelled.expect
index 85039a8..3dfa739 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
class C<T> {
const C();
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.weak.expect b/pkg/front_end/testcases/inference_new/switch.dart.weak.expect
index 6e55000..7c4f04f 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.weak.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test(self::C<core::int*>* x) → void {
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::C<core::int> x) → void {
#L1:
switch(x) {
#L2:
case #C1:
{
- core::int* y = 0;
+ core::int y = 0;
break #L1;
}
#L3:
default:
{
- core::int* y = 0;
+ core::int y = 0;
break #L1;
}
}
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/switch.dart.weak.modular.expect
index 6e55000..7c4f04f 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.weak.modular.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test(self::C<core::int*>* x) → void {
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::C<core::int> x) → void {
#L1:
switch(x) {
#L2:
case #C1:
{
- core::int* y = 0;
+ core::int y = 0;
break #L1;
}
#L3:
default:
{
- core::int* y = 0;
+ core::int y = 0;
break #L1;
}
}
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/switch.dart.weak.outline.expect
index b91e7db..388552b 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
-static method test(self::C<core::int*>* x) → void
+static method test(self::C<core::int> x) → void
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/switch.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/switch.dart.weak.transformed.expect
index 6e55000..7c4f04f 100644
--- a/pkg/front_end/testcases/inference_new/switch.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/switch.dart.weak.transformed.expect
@@ -1,37 +1,27 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<T extends core::Object* = dynamic> extends core::Object /*hasConstConstructor*/ {
- const constructor •() → self::C<self::C::T*>*
+class C<T extends core::Object? = dynamic> extends core::Object /*hasConstConstructor*/ {
+ const constructor •() → self::C<self::C::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
-static method test(self::C<core::int*>* x) → void {
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
+static method test(self::C<core::int> x) → void {
#L1:
switch(x) {
#L2:
case #C1:
{
- core::int* y = 0;
+ core::int y = 0;
break #L1;
}
#L3:
default:
{
- core::int* y = 0;
+ core::int y = 0;
break #L1;
}
}
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart
index e415a1f..361da3e 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline.expect
index 6d54939..7486465 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
class A {}
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline_modelled.expect
index c8f1be4..16dd2e3e 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
G bar() => new H();
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.expect
index 69cac39..54f308d 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.expect
@@ -1,104 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract method foo() → self::A*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::A;
}
abstract class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract method foo() → self::B*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::B;
}
abstract class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract method foo() → core::Object*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → core::Object;
}
abstract class G extends core::Object implements self::D, self::E, self::F {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- abstract member-signature method foo() → self::B*; -> self::E::foo
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method foo() → self::B; -> self::E::foo
}
class H extends self::G {
- synthetic constructor •() → self::H*
+ synthetic constructor •() → self::H
: super self::G::•()
;
- method foo() → self::C*
+ method foo() → self::C
return new self::C::•();
}
-static field self::B* x = self::bar().{self::G::foo}(){() →* self::B*};
-static method bar() → self::G*
+static field self::B x = self::bar().{self::G::foo}(){() → self::B};
+static method bar() → self::G
return new self::H::•();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.modular.expect
index 69cac39..54f308d 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.modular.expect
@@ -1,104 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract method foo() → self::A*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::A;
}
abstract class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract method foo() → self::B*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::B;
}
abstract class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract method foo() → core::Object*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → core::Object;
}
abstract class G extends core::Object implements self::D, self::E, self::F {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- abstract member-signature method foo() → self::B*; -> self::E::foo
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method foo() → self::B; -> self::E::foo
}
class H extends self::G {
- synthetic constructor •() → self::H*
+ synthetic constructor •() → self::H
: super self::G::•()
;
- method foo() → self::C*
+ method foo() → self::C
return new self::C::•();
}
-static field self::B* x = self::bar().{self::G::foo}(){() →* self::B*};
-static method bar() → self::G*
+static field self::B x = self::bar().{self::G::foo}(){() → self::B};
+static method bar() → self::G
return new self::H::•();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.outline.expect
index b2a5eac..8afc3b6 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.outline.expect
@@ -1,97 +1,47 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
;
- abstract method foo() → self::A*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::A;
}
abstract class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
;
- abstract method foo() → self::B*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::B;
}
abstract class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
;
- abstract method foo() → core::Object*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → core::Object;
}
abstract class G extends core::Object implements self::D, self::E, self::F {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
;
- abstract member-signature method foo() → self::B*; -> self::E::foo
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method foo() → self::B; -> self::E::foo
}
class H extends self::G {
- synthetic constructor •() → self::H*
+ synthetic constructor •() → self::H
;
- method foo() → self::C*
+ method foo() → self::C
;
}
-static field self::B* x;
-static method bar() → self::G*
+static field self::B x;
+static method bar() → self::G
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.transformed.expect
index 69cac39..54f308d 100644
--- a/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/top_level_field_depends_on_multiple_inheritance.dart.weak.transformed.expect
@@ -1,104 +1,54 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends self::A {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super self::A::•()
;
}
class C extends self::B {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super self::B::•()
;
}
abstract class D extends core::Object {
- synthetic constructor •() → self::D*
+ synthetic constructor •() → self::D
: super core::Object::•()
;
- abstract method foo() → self::A*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::A;
}
abstract class E extends core::Object {
- synthetic constructor •() → self::E*
+ synthetic constructor •() → self::E
: super core::Object::•()
;
- abstract method foo() → self::B*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → self::B;
}
abstract class F extends core::Object {
- synthetic constructor •() → self::F*
+ synthetic constructor •() → self::F
: super core::Object::•()
;
- abstract method foo() → core::Object*;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract method foo() → core::Object;
}
abstract class G extends core::Object implements self::D, self::E, self::F {
- synthetic constructor •() → self::G*
+ synthetic constructor •() → self::G
: super core::Object::•()
;
- abstract member-signature method foo() → self::B*; -> self::E::foo
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ abstract member-signature method foo() → self::B; -> self::E::foo
}
class H extends self::G {
- synthetic constructor •() → self::H*
+ synthetic constructor •() → self::H
: super self::G::•()
;
- method foo() → self::C*
+ method foo() → self::C
return new self::C::•();
}
-static field self::B* x = self::bar().{self::G::foo}(){() →* self::B*};
-static method bar() → self::G*
+static field self::B x = self::bar().{self::G::foo}(){() → self::B};
+static method bar() → self::G
return new self::H::•();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart
index f36a1e6..937495a5 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = (f) /*@ typeArgs=int* */ (/*@ returnType=int* */ () {
+var v = (f) /*@typeArgs=int*/ (/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect
index d2782bc..7e89a23 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect
index 46f2e5d..f4b01cf 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect
index 26fdda1..f47bc68 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect
index 26fdda1..f47bc68 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect
index f0dd2fa..794a198 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<core::int> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect
index 2f8644bb..a83c306 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_dynamic_param_via_expr2.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart
index f36a1e6..937495a5 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
List<T> f<T>(T g()) => <T>[g()];
-var v = (f) /*@ typeArgs=int* */ (/*@ returnType=int* */ () {
+var v = (f) /*@typeArgs=int*/ (/*@returnType=int*/ () {
return 1;
});
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect
index d2782bc..7e89a23 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect
index 46f2e5d..f4b01cf 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
List<T> f<T>(T g()) => <T>[g()];
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect
index 26fdda1..f47bc68 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect
index 26fdda1..f47bc68 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return <self::f::T*>[g(){() →* self::f::T*}];
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return <self::f::T%>[g(){() → self::f::T%}];
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect
index f0dd2fa..794a198 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v;
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
+static field core::List<core::int> v;
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect
index 2f8644bb..a83c306 100644
--- a/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/unsafe_block_closure_inference_function_call_explicit_type_param_via_expr2.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static field core::List<core::int*>* v = #C1<core::int*>(() → core::int* {
+static field core::List<core::int> v = #C1<core::int>(() → core::int {
return 1;
-}){(() →* core::int*) →* core::List<core::int*>*};
-static method f<T extends core::Object* = dynamic>(() →* self::f::T* g) → core::List<self::f::T*>*
- return core::_GrowableList::_literal1<self::f::T*>(g(){() →* self::f::T*});
+}){(() → core::int) → core::List<core::int>};
+static method f<T extends core::Object? = dynamic>(() → self::f::T% g) → core::List<self::f::T%>
+ return core::_GrowableList::_literal1<self::f::T%>(g(){() → self::f::T%});
static method main() → dynamic {
self::v;
}
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart
index 49a1e1d..c6c4138 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
T run<T>(T f()) {
print("running");
- var /*@ type=run::T* */ t = f();
+ var /*@type=run::T%*/ t = f();
print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline.expect
index 6b28b21..2536526 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T run<T>(T f()) {}
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect
index 3f4a0dc..1e8174f 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
library test;
T run<T>(T f()) {}
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.expect
index 96e59b9..d8bf5cf 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field void y = self::run<void>(#C1);
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* {
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T% {
core::print("running");
- self::run::T* t = f(){() →* self::run::T*};
+ self::run::T% t = f(){() → self::run::T%};
core::print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.modular.expect
index 96e59b9..d8bf5cf 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.modular.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field void y = self::run<void>(#C1);
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* {
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T% {
core::print("running");
- self::run::T* t = f(){() →* self::run::T*};
+ self::run::T% t = f(){() → self::run::T%};
core::print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.outline.expect
index 46dad28..da72055 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field void y;
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T*
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T%
;
static method printRunning() → void
;
diff --git a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.transformed.expect
index 96e59b9..d8bf5cf 100644
--- a/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/void_return_type_subtypes_dynamic.dart.weak.transformed.expect
@@ -1,11 +1,11 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
static field void y = self::run<void>(#C1);
-static method run<T extends core::Object* = dynamic>(() →* self::run::T* f) → self::run::T* {
+static method run<T extends core::Object? = dynamic>(() → self::run::T% f) → self::run::T% {
core::print("running");
- self::run::T* t = f(){() →* self::run::T*};
+ self::run::T% t = f(){() → self::run::T%};
core::print("done running");
return t;
}
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart b/pkg/front_end/testcases/inference_new/while_loop.dart
index 153dbd1..f5cef81 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2017, 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.
-// @dart=2.9
+
/*@testedFeatures=inference*/
library test;
-T f<T>() => null;
+T f<T>() => throw '';
void test() {
- while (/*@ typeArgs=bool* */ f()) {
- var /*@ type=int* */ x = 0;
+ while (/*@typeArgs=bool*/ f()) {
+ var /*@type=int*/ x = 0;
}
}
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline.expect b/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline.expect
index c1725cf..0afd8e8 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
void test() {}
main() {}
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline_modelled.expect
index f75a9d3..c8d2993 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
library test;
-T f<T>() => null;
+T f<T>() => throw '';
main() {}
void test() {}
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.expect b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.expect
index 7469e19..9a66570 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.expect
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- while (self::f<core::bool*>()) {
- core::int* x = 0;
+ while (self::f<core::bool>()) {
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.modular.expect b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.modular.expect
index 7469e19..9a66570 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.modular.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- while (self::f<core::bool*>()) {
- core::int* x = 0;
+ while (self::f<core::bool>()) {
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.outline.expect b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.outline.expect
index dfd99e1..247b913 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
+static method f<T extends core::Object? = dynamic>() → self::f::T%
;
static method test() → void
;
diff --git a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.transformed.expect b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.transformed.expect
index 7469e19..9a66570 100644
--- a/pkg/front_end/testcases/inference_new/while_loop.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/inference_new/while_loop.dart.weak.transformed.expect
@@ -1,12 +1,12 @@
-library test;
+library test /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-static method f<T extends core::Object* = dynamic>() → self::f::T*
- return null;
+static method f<T extends core::Object? = dynamic>() → self::f::T%
+ return throw "";
static method test() → void {
- while (self::f<core::bool*>()) {
- core::int* x = 0;
+ while (self::f<core::bool>()) {
+ core::int x = 0;
}
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart
index 419c25f..293a967 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that all three steps of the instantiate-to-bound algorithm
// implementation, that is, substitution of variables in strongly connected
// components, substitution of dependencies in the acyclic remainder of the type
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline.expect
index 74f29ec..a476c9a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<X, Y> {}
class C<X, Y> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline_modelled.expect
index 74f29ec..a476c9a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<X, Y> {}
class C<X, Y> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect
index 336e446..d65d92b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>, Z extends (self::D::Y) → self::D::X = (Never) → self::B<dynamic, dynamic>, W extends core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y, self::D::Z, self::D::W>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (Null) →* self::B<dynamic, dynamic>*, core::num*>* d;
+ self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, (Never) → self::B<dynamic, dynamic>, core::num> d;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.modular.expect
index 336e446..d65d92b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.modular.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>, Z extends (self::D::Y) → self::D::X = (Never) → self::B<dynamic, dynamic>, W extends core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y, self::D::Z, self::D::W>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (Null) →* self::B<dynamic, dynamic>*, core::num*>* d;
+ self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, (Never) → self::B<dynamic, dynamic>, core::num> d;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect
index dfe429a..92b29da 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.outline.expect
@@ -1,48 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>, Z extends (self::D::Y) → self::D::X = (Never) → self::B<dynamic, dynamic>, W extends core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y, self::D::Z, self::D::W>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect
index 336e446..d65d92b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/all_steps.dart.weak.transformed.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*, Z extends (self::D::Y*) →* self::D::X* = (Null) →* self::B<dynamic, dynamic>*, W extends core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*, self::D::Z*, self::D::W*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>, Z extends (self::D::Y) → self::D::X = (Never) → self::B<dynamic, dynamic>, W extends core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y, self::D::Z, self::D::W>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, (Null) →* self::B<dynamic, dynamic>*, core::num*>* d;
+ self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, (Never) → self::B<dynamic, dynamic>, core::num> d;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart
index 175695d..9ce7fd2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides missing type arguments to
// raw interface types found in bodies of methods in cases where those types
// refer to classes imported from compiled dill files.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline.expect
index a112d3e..1f89431 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'dart:collection';
class A {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline_modelled.expect
index a112d3e..1f89431 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'dart:collection';
class A {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.expect
index 7de5b6d..43c4e90 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
@@ -6,23 +6,13 @@
import "dart:collection";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method foo() → dynamic {
- col::LinkedListEntry<col::LinkedListEntry<dynamic>>* bar;
+ col::LinkedListEntry<col::LinkedListEntry<dynamic>> bar;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- col::LinkedListEntry<col::LinkedListEntry<dynamic>>* bar;
+ col::LinkedListEntry<col::LinkedListEntry<dynamic>> bar;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.modular.expect
index 7de5b6d..43c4e90 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
@@ -6,23 +6,13 @@
import "dart:collection";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method foo() → dynamic {
- col::LinkedListEntry<col::LinkedListEntry<dynamic>>* bar;
+ col::LinkedListEntry<col::LinkedListEntry<dynamic>> bar;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- col::LinkedListEntry<col::LinkedListEntry<dynamic>>* bar;
+ col::LinkedListEntry<col::LinkedListEntry<dynamic>> bar;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.outline.expect
index 2d2b792..8dec0c3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.transformed.expect
index 7de5b6d..43c4e90 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_generic_classes_from_dill.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
@@ -6,23 +6,13 @@
import "dart:collection";
class A extends core::Object {
- synthetic constructor •() → self::A*
+ synthetic constructor •() → self::A
: super core::Object::•()
;
method foo() → dynamic {
- col::LinkedListEntry<col::LinkedListEntry<dynamic>>* bar;
+ col::LinkedListEntry<col::LinkedListEntry<dynamic>> bar;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- col::LinkedListEntry<col::LinkedListEntry<dynamic>>* bar;
+ col::LinkedListEntry<col::LinkedListEntry<dynamic>> bar;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart
index 0ee2811..a97c04f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// interface types that are themselves used as type arguments of literal lists
// found in method bodies.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline.expect
index 699bfa1..c610622 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline_modelled.expect
index 699bfa1..c610622 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect
index ff8c02f..7518bf0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+ core::List<self::A<core::num>> a = <self::A<core::num>>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+ core::List<self::A<core::num>> a = <self::A<core::num>>[];
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.modular.expect
index ff8c02f..7518bf0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+ core::List<self::A<core::num>> a = <self::A<core::num>>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+ core::List<self::A<core::num>> a = <self::A<core::num>>[];
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect
index 4188002..3804621 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect
index e273fa4..a129a66 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::List<self::A<core::num*>*>* a = core::_GrowableList::•<self::A<core::num*>*>(0);
+ core::List<self::A<core::num>> a = core::_GrowableList::•<self::A<core::num>>(0);
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<self::A<core::num*>*>* a = core::_GrowableList::•<self::A<core::num*>*>(0);
+ core::List<self::A<core::num>> a = core::_GrowableList::•<self::A<core::num>>(0);
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart
index fbb12f5..9fd0356 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound leaves interface types that have
// their type arguments defined by the programmer intact in cases when those
// interface types are used as type arguments of literal lists that are found in
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline.expect
index cb20c91..276f316 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {}
class B<U> {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
index cb20c91..276f316 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {}
class B<U> {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.expect
index 186472b..423da6d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
: super core::Object::•()
;
method fun() → dynamic {
- core::List<self::A<self::B::U*>*>* foo = <self::A<self::B::U*>*>[];
- core::List<self::A<core::num*>*>* bar = <self::A<core::num*>*>[];
+ core::List<self::A<self::B::U%>> foo = <self::A<self::B::U%>>[];
+ core::List<self::A<core::num>> bar = <self::A<core::num>>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.modular.expect
index 186472b..423da6d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
: super core::Object::•()
;
method fun() → dynamic {
- core::List<self::A<self::B::U*>*>* foo = <self::A<self::B::U*>*>[];
- core::List<self::A<core::num*>*>* bar = <self::A<core::num*>*>[];
+ core::List<self::A<self::B::U%>> foo = <self::A<self::B::U%>>[];
+ core::List<self::A<core::num>> bar = <self::A<core::num>>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.outline.expect
index fd7b97f..acf89bd 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
;
method fun() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.transformed.expect
index 55af917..fea4461 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_list_with_generic_argument.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
: super core::Object::•()
;
method fun() → dynamic {
- core::List<self::A<self::B::U*>*>* foo = core::_GrowableList::•<self::A<self::B::U*>*>(0);
- core::List<self::A<core::num*>*>* bar = core::_GrowableList::•<self::A<core::num*>*>(0);
+ core::List<self::A<self::B::U%>> foo = core::_GrowableList::•<self::A<self::B::U%>>(0);
+ core::List<self::A<core::num>> bar = core::_GrowableList::•<self::A<core::num>>(0);
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart
index 3fea35a..eb85003 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// interface types that are themselves used as type arguments of literal maps
// found in method bodies.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline.expect
index 699bfa1..c610622 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline_modelled.expect
index 699bfa1..c610622 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect
index 28c2e96..1a4be89 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+ core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+ core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.modular.expect
index 28c2e96..1a4be89 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+ core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+ core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect
index 4188002..3804621 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect
index 28c2e96..1a4be89 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_literal_map.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+ core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+ core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart
index ed2c095..3044ab3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides `dynamic` as the type
// argument for those positions in type argument lists of interface types that
// have the bound omitted in the corresponding type parameter, regardless of
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline.expect
index 7f87d0e..ed3c7fe 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'dart:collection';
class A<T> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline_modelled.expect
index 7f87d0e..ed3c7fe 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'dart:collection';
class A<T> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.expect
index 5aa8724..690f805 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.expect
@@ -1,45 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method fun() → dynamic {
- self::A<dynamic>* a;
- col::DoubleLinkedQueue<dynamic>* c;
+ self::A<dynamic> a;
+ col::DoubleLinkedQueue<dynamic> c;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<dynamic>* a;
- col::DoubleLinkedQueue<dynamic>* c;
+ self::A<dynamic> a;
+ col::DoubleLinkedQueue<dynamic> c;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.modular.expect
index 5aa8724..690f805 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.modular.expect
@@ -1,45 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method fun() → dynamic {
- self::A<dynamic>* a;
- col::DoubleLinkedQueue<dynamic>* c;
+ self::A<dynamic> a;
+ col::DoubleLinkedQueue<dynamic> c;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<dynamic>* a;
- col::DoubleLinkedQueue<dynamic>* c;
+ self::A<dynamic> a;
+ col::DoubleLinkedQueue<dynamic> c;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.outline.expect
index e225d7c..e66434c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method fun() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.transformed.expect
index 5aa8724..690f805 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_omitted_bound.dart.weak.transformed.expect
@@ -1,45 +1,25 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method fun() → dynamic {
- self::A<dynamic>* a;
- col::DoubleLinkedQueue<dynamic>* c;
+ self::A<dynamic> a;
+ col::DoubleLinkedQueue<dynamic> c;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<dynamic>* a;
- col::DoubleLinkedQueue<dynamic>* c;
+ self::A<dynamic> a;
+ col::DoubleLinkedQueue<dynamic> c;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart
index b62a475..511a961 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound produces correct super-bounded
// types from raw interface types that refer to F-bounded classes and are found
// in method bodies.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline.expect
index b0978ef..2b6461d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends A<T>> {}
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline_modelled.expect
index b0978ef..2b6461d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends A<T>> {}
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.expect
index 9b5f2f8..4ff9f1b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- self::A<self::A<dynamic>*>* a;
+ self::A<self::A<dynamic>> a;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<self::A<dynamic>*>* a;
+ self::A<self::A<dynamic>> a;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.modular.expect
index 9b5f2f8..4ff9f1b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.modular.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- self::A<self::A<dynamic>*>* a;
+ self::A<self::A<dynamic>> a;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<self::A<dynamic>*>* a;
+ self::A<self::A<dynamic>> a;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.outline.expect
index 08bfd0b..e5e520a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.transformed.expect
index 9b5f2f8..4ff9f1b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_super_bounded_type.dart.weak.transformed.expect
@@ -1,40 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- self::A<self::A<dynamic>*>* a;
+ self::A<self::A<dynamic>> a;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<self::A<dynamic>*>* a;
+ self::A<self::A<dynamic>> a;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart
index b344f6a..77ea47d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// typedef types that are themselves used as type arguments of literal lists and
// are found in method bodies.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline.expect
index 8d42d56..bc2eead 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T extends num>(T p);
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline_modelled.expect
index 25185b9..30c7151 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B {
foo() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect
index 19c0496..9549520 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+ core::List<(core::num) → dynamic> a = <(core::num) → dynamic>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+ core::List<(core::num) → dynamic> a = <(core::num) → dynamic>[];
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.modular.expect
index 19c0496..9549520 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+ core::List<(core::num) → dynamic> a = <(core::num) → dynamic>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+ core::List<(core::num) → dynamic> a = <(core::num) → dynamic>[];
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect
index 79e9ce6..b13e034 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect
index 1c268dc..fb1d4a8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
+ core::List<(core::num) → dynamic> a = core::_GrowableList::•<(core::num) → dynamic>(0);
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
+ core::List<(core::num) → dynamic> a = core::_GrowableList::•<(core::num) → dynamic>(0);
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart
index 54ccb8f..954d5e6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound leaves typedef types that have
// their arguments defined by the programmer intact in cases when those typedef
// types are used as type arguments of literal lists and are found in method
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline.expect
index e769498..edfd3bd 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T>(T p);
class B<U> {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
index 44981e3..c142ab4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<U> {
fun() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.expect
index cf2c35d..4d0c12d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
: super core::Object::•()
;
method fun() → dynamic {
- core::List<(self::B::U*) →* dynamic>* foo = <(self::B::U*) →* dynamic>[];
- core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+ core::List<(self::B::U%) → dynamic> foo = <(self::B::U%) → dynamic>[];
+ core::List<(core::num) → dynamic> bar = <(core::num) → dynamic>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+ core::List<(core::num) → dynamic> bar = <(core::num) → dynamic>[];
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.modular.expect
index cf2c35d..4d0c12d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
: super core::Object::•()
;
method fun() → dynamic {
- core::List<(self::B::U*) →* dynamic>* foo = <(self::B::U*) →* dynamic>[];
- core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+ core::List<(self::B::U%) → dynamic> foo = <(self::B::U%) → dynamic>[];
+ core::List<(core::num) → dynamic> bar = <(core::num) → dynamic>[];
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
+ core::List<(core::num) → dynamic> bar = <(core::num) → dynamic>[];
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.outline.expect
index 4157d61..44f237a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
;
method fun() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.transformed.expect
index f92729b..a94763d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_list_with_generic_argument.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<U extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::U*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<U extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::U%>
: super core::Object::•()
;
method fun() → dynamic {
- core::List<(self::B::U*) →* dynamic>* foo = core::_GrowableList::•<(self::B::U*) →* dynamic>(0);
- core::List<(core::num*) →* dynamic>* bar = core::_GrowableList::•<(core::num*) →* dynamic>(0);
+ core::List<(self::B::U%) → dynamic> foo = core::_GrowableList::•<(self::B::U%) → dynamic>(0);
+ core::List<(core::num) → dynamic> bar = core::_GrowableList::•<(core::num) → dynamic>(0);
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::List<(core::num*) →* dynamic>* bar = core::_GrowableList::•<(core::num*) →* dynamic>(0);
+ core::List<(core::num) → dynamic> bar = core::_GrowableList::•<(core::num) → dynamic>(0);
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart
index 53ae25d..506f564 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// typedef types that are themselves used as type arguments in literal maps
// found in method bodies.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline.expect
index 8d42d56..bc2eead 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T extends num>(T p);
class B {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline_modelled.expect
index 25185b9..30c7151 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B {
foo() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect
index 82bfe94..f43edf8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+ core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+ core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.modular.expect
index 82bfe94..f43edf8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+ core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+ core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect
index 79e9ce6..b13e034 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect
index 82bfe94..f43edf8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_literal_map.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
method foo() → dynamic {
- core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+ core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+ core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart
index ee423c68..ab623d6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides `dynamic` as the type
// argument for those positions in type argument lists of typedef types that
// have the bound omitted in the corresponding type parameters. Only those
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline.expect
index e048d6e..a5935b8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T>(T p);
class C {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline_modelled.expect
index 98ca1f7..9881ae4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
foo() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.expect
index f6435f7..5e69689 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method foo() → dynamic {
- (dynamic) →* dynamic a;
+ (dynamic) → dynamic a;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- (dynamic) →* dynamic a;
+ (dynamic) → dynamic a;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.modular.expect
index f6435f7..5e69689 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.modular.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method foo() → dynamic {
- (dynamic) →* dynamic a;
+ (dynamic) → dynamic a;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- (dynamic) →* dynamic a;
+ (dynamic) → dynamic a;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.outline.expect
index fb314c8..a6656085 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.transformed.expect
index f6435f7..5e69689 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_omitted_bound.dart.weak.transformed.expect
@@ -1,26 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method foo() → dynamic {
- (dynamic) →* dynamic a;
+ (dynamic) → dynamic a;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- (dynamic) →* dynamic a;
+ (dynamic) → dynamic a;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart
index dc3448f..36f36a9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound produces correct super-bounded
// types from raw typedef types that refer to F-bounded typedefs and are found
// in method bodies.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline.expect
index 90f469f..0fdd67a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T>(T p);
typedef B<U extends A<U>>(U p);
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline_modelled.expect
index 8101382..e05e4bd 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C {
foo() {}
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.expect
index d4a97aa..dfa4ea9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant U extends (U) → dynamic = (dynamic) → dynamic> = (U) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method foo() → dynamic {
- ((dynamic) →* dynamic) →* dynamic b;
+ ((dynamic) → dynamic) → dynamic b;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- ((dynamic) →* dynamic) →* dynamic b;
+ ((dynamic) → dynamic) → dynamic b;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.modular.expect
index d4a97aa..dfa4ea9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.modular.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant U extends (U) → dynamic = (dynamic) → dynamic> = (U) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method foo() → dynamic {
- ((dynamic) →* dynamic) →* dynamic b;
+ ((dynamic) → dynamic) → dynamic b;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- ((dynamic) →* dynamic) →* dynamic b;
+ ((dynamic) → dynamic) → dynamic b;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.outline.expect
index 29654c5..9b0752c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant U extends (U) → dynamic = (dynamic) → dynamic> = (U) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
method foo() → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.transformed.expect
index d4a97aa..dfa4ea9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/body_typedef_super_bounded_type.dart.weak.transformed.expect
@@ -1,27 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant U extends (U*) →* dynamic = (dynamic) →* dynamic> = (U*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant U extends (U) → dynamic = (dynamic) → dynamic> = (U) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
method foo() → dynamic {
- ((dynamic) →* dynamic) →* dynamic b;
+ ((dynamic) → dynamic) → dynamic b;
}
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- ((dynamic) →* dynamic) →* dynamic b;
+ ((dynamic) → dynamic) → dynamic b;
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart
index 0df9ee8..43d99d7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart
@@ -1,13 +1,13 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that contravariant occurrences of a type variable in the
// bounds of the other type variables from the same declaration that are not
// being transitively depended on by that variable are replaced with Null.
class C<X extends num, Y extends void Function(X)> {}
-C c;
+C c = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline.expect
index bf98dcd..4a76ee2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
class C<X extends num, Y extends void Function(X)> {}
-C c;
+C c = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline_modelled.expect
index f4942e67..e612e7f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-C c;
+C c = throw '';
class C<X extends num, Y extends void Function(X)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect
index 98dbd20..d2e2d0d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (Null) →* void>* c;
+static field self::C<core::num, (Never) → void> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.modular.expect
index 98dbd20..d2e2d0d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (Null) →* void>* c;
+static field self::C<core::num, (Never) → void> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect
index 4906673..b5bbb8e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (Null) →* void>* c;
+static field self::C<core::num, (Never) → void> c;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect
index 98dbd20..d2e2d0d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<core::num*, (Null) →* void>* c;
+static field self::C<core::num, (Never) → void> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart
index 5dba617..d6aab8e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that contravariant occurrences of a type variable in the
// bounds of the other type variables from the same declaration that are not
// being transitively depended on by that variable are replaced with Null, in
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline.expect
index d2983a5..e4cafc7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C<X extends num, Y extends void Function(X)> {}
var lc = <C>[];
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline_modelled.expect
index b9ffc63..1572ad5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class C<X extends num, Y extends void Function(X)> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect
index a7c105a..745fcff 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (Null) →* void>*>* lc = <self::C<core::num*, (Null) →* void>*>[];
-static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc = <self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>{};
+static field core::List<self::C<core::num, (Never) → void>> lc = <self::C<core::num, (Never) → void>>[];
+static field core::Map<self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>> mc = <self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.modular.expect
index a7c105a..745fcff 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (Null) →* void>*>* lc = <self::C<core::num*, (Null) →* void>*>[];
-static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc = <self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>{};
+static field core::List<self::C<core::num, (Never) → void>> lc = <self::C<core::num, (Never) → void>>[];
+static field core::Map<self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>> mc = <self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect
index e263f73..8b765b5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.outline.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (Null) →* void>*>* lc;
-static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc;
+static field core::List<self::C<core::num, (Never) → void>> lc;
+static field core::Map<self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>> mc;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect
index 92a4252..863970a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_dependence_in_literals.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class C<X extends core::num*, Y extends (self::C::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::num, Y extends (self::C::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<core::num*, (Null) →* void>*>* lc = core::_GrowableList::•<self::C<core::num*, (Null) →* void>*>(0);
-static field core::Map<self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>* mc = <self::C<core::num*, (Null) →* void>*, self::C<core::num*, (Null) →* void>*>{};
+static field core::List<self::C<core::num, (Never) → void>> lc = core::_GrowableList::•<self::C<core::num, (Never) → void>>(0);
+static field core::Map<self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>> mc = <self::C<core::num, (Never) → void>, self::C<core::num, (Never) → void>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart
index c4cd0c4..44277f9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that contravariant occurrences of mutually dependent type
// variables in the bounds of all of these type variables are replaced with
// Null.
class D<X extends void Function(X, Y), Y extends void Function(X, Y)> {}
-D d;
+D d = throw '';
class E<X extends void Function(X)> {}
-E e;
+E e = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline.expect
index 7ece5b40..9882a70 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
class D<X extends void Function(X, Y), Y extends void Function(X, Y)> {}
-D d;
+D d = throw '';
class E<X extends void Function(X)> {}
-E e;
+E e = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline_modelled.expect
index 6688dd7..2d273c8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
-D d;
-E e;
+D d = throw '';
+E e = throw '';
class D<X extends void Function(X, Y), Y extends void Function(X, Y)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.expect
index e4ecd94..d8c3c47 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
-static field self::E<(Null) →* void>* e;
+static field self::D<(Never, Never) → void, (Never, Never) → void> d = throw "";
+static field self::E<(Never) → void> e = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.modular.expect
index e4ecd94..d8c3c47 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.modular.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
-static field self::E<(Null) →* void>* e;
+static field self::D<(Never, Never) → void, (Never, Never) → void> d = throw "";
+static field self::E<(Never) → void> e = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.outline.expect
index e4a28c9..0be5686 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
-static field self::E<(Null) →* void>* e;
+static field self::D<(Never, Never) → void, (Never, Never) → void> d;
+static field self::E<(Never) → void> e;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.transformed.expect
index e4ecd94..d8c3c47 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence.dart.weak.transformed.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<(Null, Null) →* void, (Null, Null) →* void>* d;
-static field self::E<(Null) →* void>* e;
+static field self::D<(Never, Never) → void, (Never, Never) → void> d = throw "";
+static field self::E<(Never) → void> e = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart
index fbb857c..3c4aee8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that contravariant occurrences of mutually dependent type
// variables in the bounds of all of these type variables are replaced with
// Null, in the case when the raw type is used as a type argument of a list or
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline.expect
index 297808d..0e699bf 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class D<X extends void Function(X, Y), Y extends void Function(X, Y)> {}
var ld = <D>[];
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect
index e3650f5..c05a14c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class D<X extends void Function(X, Y), Y extends void Function(X, Y)> {}
class E<X extends void Function(X)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.expect
index eaaf4d5..ac17639 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = <self::D<(Null, Null) →* void, (Null, Null) →* void>*>[];
-static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md = <self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>{};
-static field core::List<self::E<(Null) →* void>*>* le = <self::E<(Null) →* void>*>[];
-static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me = <self::E<(Null) →* void>*, self::E<(Null) →* void>*>{};
+static field core::List<self::D<(Never, Never) → void, (Never, Never) → void>> ld = <self::D<(Never, Never) → void, (Never, Never) → void>>[];
+static field core::Map<self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>> md = <self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>>{};
+static field core::List<self::E<(Never) → void>> le = <self::E<(Never) → void>>[];
+static field core::Map<self::E<(Never) → void>, self::E<(Never) → void>> me = <self::E<(Never) → void>, self::E<(Never) → void>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.modular.expect
index eaaf4d5..ac17639 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = <self::D<(Null, Null) →* void, (Null, Null) →* void>*>[];
-static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md = <self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>{};
-static field core::List<self::E<(Null) →* void>*>* le = <self::E<(Null) →* void>*>[];
-static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me = <self::E<(Null) →* void>*, self::E<(Null) →* void>*>{};
+static field core::List<self::D<(Never, Never) → void, (Never, Never) → void>> ld = <self::D<(Never, Never) → void, (Never, Never) → void>>[];
+static field core::Map<self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>> md = <self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>>{};
+static field core::List<self::E<(Never) → void>> le = <self::E<(Never) → void>>[];
+static field core::Map<self::E<(Never) → void>, self::E<(Never) → void>> me = <self::E<(Never) → void>, self::E<(Never) → void>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.outline.expect
index 40367c2..dd225f1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld;
-static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md;
-static field core::List<self::E<(Null) →* void>*>* le;
-static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me;
+static field core::List<self::D<(Never, Never) → void, (Never, Never) → void>> ld;
+static field core::Map<self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>> md;
+static field core::List<self::E<(Never) → void>> le;
+static field core::Map<self::E<(Never) → void>, self::E<(Never) → void>> me;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.transformed.expect
index c874a62..85dffdf 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/contravariant_mutual_dependence_in_literals.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class D<X extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void, Y extends (self::D::X*, self::D::Y*) →* void = (Null, Null) →* void> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends (self::D::X, self::D::Y) → void = (Never, Never) → void, Y extends (self::D::X, self::D::Y) → void = (Never, Never) → void> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* void = (Null) →* void> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → void = (Never) → void> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<(Null, Null) →* void, (Null, Null) →* void>*>* ld = core::_GrowableList::•<self::D<(Null, Null) →* void, (Null, Null) →* void>*>(0);
-static field core::Map<self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>* md = <self::D<(Null, Null) →* void, (Null, Null) →* void>*, self::D<(Null, Null) →* void, (Null, Null) →* void>*>{};
-static field core::List<self::E<(Null) →* void>*>* le = core::_GrowableList::•<self::E<(Null) →* void>*>(0);
-static field core::Map<self::E<(Null) →* void>*, self::E<(Null) →* void>*>* me = <self::E<(Null) →* void>*, self::E<(Null) →* void>*>{};
+static field core::List<self::D<(Never, Never) → void, (Never, Never) → void>> ld = core::_GrowableList::•<self::D<(Never, Never) → void, (Never, Never) → void>>(0);
+static field core::Map<self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>> md = <self::D<(Never, Never) → void, (Never, Never) → void>, self::D<(Never, Never) → void, (Never, Never) → void>>{};
+static field core::List<self::E<(Never) → void>> le = core::_GrowableList::•<self::E<(Never) → void>>(0);
+static field core::Map<self::E<(Never) → void>, self::E<(Never) → void>> me = <self::E<(Never) → void>, self::E<(Never) → void>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart
index ad70003..3780a90 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant occurrences of a type variable in the bounds
// of the other type variables from the same declaration that are not being
// transitively depended on by that type variable are replaced with the bound of
@@ -11,18 +11,18 @@
class C<X, Y extends A<X>> {}
-C c;
+C c = throw '';
class D<X extends num, Y extends A<X>> {}
-D d;
+D d = throw '';
class E<X, Y extends X Function()> {}
-E e;
+E e = throw '';
class F<X extends num, Y extends X Function()> {}
-F f;
+F f = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline.expect
index b73c1a2..f83d746 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline.expect
@@ -1,19 +1,18 @@
-// @dart = 2.9
class A<X> {}
class C<X, Y extends A<X>> {}
-C c;
+C c = throw '';
class D<X extends num, Y extends A<X>> {}
-D d;
+D d = throw '';
class E<X, Y extends X Function()> {}
-E e;
+E e = throw '';
class F<X extends num, Y extends X Function()> {}
-F f;
+F f = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline_modelled.expect
index 284982d..7e2b8da 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
-C c;
-D d;
-E e;
-F f;
+C c = throw '';
+D d = throw '';
+E e = throw '';
+F f = throw '';
class A<X> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect
index 5fa1f9e..518e7e8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.expect
@@ -1,84 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, self::A<dynamic>*>* c;
-static field self::D<core::num*, self::A<core::num*>*>* d;
-static field self::E<dynamic, () →* dynamic>* e;
-static field self::F<core::num*, () →* core::num*>* f;
+static field self::C<dynamic, self::A<dynamic>> c = throw "";
+static field self::D<core::num, self::A<core::num>> d = throw "";
+static field self::E<dynamic, () → dynamic> e = throw "";
+static field self::F<core::num, () → core::num> f = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.modular.expect
index 5fa1f9e..518e7e8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.modular.expect
@@ -1,84 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, self::A<dynamic>*>* c;
-static field self::D<core::num*, self::A<core::num*>*>* d;
-static field self::E<dynamic, () →* dynamic>* e;
-static field self::F<core::num*, () →* core::num*>* f;
+static field self::C<dynamic, self::A<dynamic>> c = throw "";
+static field self::D<core::num, self::A<core::num>> d = throw "";
+static field self::E<dynamic, () → dynamic> e = throw "";
+static field self::F<core::num, () → core::num> f = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect
index 24c0e8a..00c898a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.outline.expect
@@ -1,80 +1,30 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, self::A<dynamic>*>* c;
-static field self::D<core::num*, self::A<core::num*>*>* d;
-static field self::E<dynamic, () →* dynamic>* e;
-static field self::F<core::num*, () →* core::num*>* f;
+static field self::C<dynamic, self::A<dynamic>> c;
+static field self::D<core::num, self::A<core::num>> d;
+static field self::E<dynamic, () → dynamic> e;
+static field self::F<core::num, () → core::num> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect
index 5fa1f9e..518e7e8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence.dart.weak.transformed.expect
@@ -1,84 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, self::A<dynamic>*>* c;
-static field self::D<core::num*, self::A<core::num*>*>* d;
-static field self::E<dynamic, () →* dynamic>* e;
-static field self::F<core::num*, () →* core::num*>* f;
+static field self::C<dynamic, self::A<dynamic>> c = throw "";
+static field self::D<core::num, self::A<core::num>> d = throw "";
+static field self::E<dynamic, () → dynamic> e = throw "";
+static field self::F<core::num, () → core::num> f = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart
index cd16323..86fa97d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant occurrences of a type variable in the bounds
// of the other type variables from the same declaration that are not being
// transitively depended on by that type variable are replaced with the bound of
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline.expect
index c0dad6b..498ba79 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {}
class C<X, Y extends A<X>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline_modelled.expect
index b051960..5ae4099 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {}
class C<X, Y extends A<X>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect
index 6957306..e0a8184 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.expect
@@ -1,88 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc = <self::C<dynamic, self::A<dynamic>*>*>[];
-static field core::Map<self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>* mc = <self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>{};
-static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld = <self::D<core::num*, self::A<core::num*>*>*>[];
-static field core::Map<self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>* md = <self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>{};
-static field core::List<self::E<dynamic, () →* dynamic>*>* le = <self::E<dynamic, () →* dynamic>*>[];
-static field core::Map<self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>* me = <self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>{};
-static field core::List<self::F<core::num*, () →* core::num*>*>* lf = <self::F<core::num*, () →* core::num*>*>[];
-static field core::Map<self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>* mf = <self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>{};
+static field core::List<self::C<dynamic, self::A<dynamic>>> lc = <self::C<dynamic, self::A<dynamic>>>[];
+static field core::Map<self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>> mc = <self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>>{};
+static field core::List<self::D<core::num, self::A<core::num>>> ld = <self::D<core::num, self::A<core::num>>>[];
+static field core::Map<self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>> md = <self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>>{};
+static field core::List<self::E<dynamic, () → dynamic>> le = <self::E<dynamic, () → dynamic>>[];
+static field core::Map<self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>> me = <self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>>{};
+static field core::List<self::F<core::num, () → core::num>> lf = <self::F<core::num, () → core::num>>[];
+static field core::Map<self::F<core::num, () → core::num>, self::F<core::num, () → core::num>> mf = <self::F<core::num, () → core::num>, self::F<core::num, () → core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.modular.expect
index 6957306..e0a8184 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.modular.expect
@@ -1,88 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc = <self::C<dynamic, self::A<dynamic>*>*>[];
-static field core::Map<self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>* mc = <self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>{};
-static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld = <self::D<core::num*, self::A<core::num*>*>*>[];
-static field core::Map<self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>* md = <self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>{};
-static field core::List<self::E<dynamic, () →* dynamic>*>* le = <self::E<dynamic, () →* dynamic>*>[];
-static field core::Map<self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>* me = <self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>{};
-static field core::List<self::F<core::num*, () →* core::num*>*>* lf = <self::F<core::num*, () →* core::num*>*>[];
-static field core::Map<self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>* mf = <self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>{};
+static field core::List<self::C<dynamic, self::A<dynamic>>> lc = <self::C<dynamic, self::A<dynamic>>>[];
+static field core::Map<self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>> mc = <self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>>{};
+static field core::List<self::D<core::num, self::A<core::num>>> ld = <self::D<core::num, self::A<core::num>>>[];
+static field core::Map<self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>> md = <self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>>{};
+static field core::List<self::E<dynamic, () → dynamic>> le = <self::E<dynamic, () → dynamic>>[];
+static field core::Map<self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>> me = <self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>>{};
+static field core::List<self::F<core::num, () → core::num>> lf = <self::F<core::num, () → core::num>>[];
+static field core::Map<self::F<core::num, () → core::num>, self::F<core::num, () → core::num>> mf = <self::F<core::num, () → core::num>, self::F<core::num, () → core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect
index 8fc64c5..beaaf9f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.outline.expect
@@ -1,84 +1,34 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc;
-static field core::Map<self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>* mc;
-static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld;
-static field core::Map<self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>* md;
-static field core::List<self::E<dynamic, () →* dynamic>*>* le;
-static field core::Map<self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>* me;
-static field core::List<self::F<core::num*, () →* core::num*>*>* lf;
-static field core::Map<self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>* mf;
+static field core::List<self::C<dynamic, self::A<dynamic>>> lc;
+static field core::Map<self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>> mc;
+static field core::List<self::D<core::num, self::A<core::num>>> ld;
+static field core::Map<self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>> md;
+static field core::List<self::E<dynamic, () → dynamic>> le;
+static field core::Map<self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>> me;
+static field core::List<self::F<core::num, () → core::num>> lf;
+static field core::Map<self::F<core::num, () → core::num>, self::F<core::num, () → core::num>> mf;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect
index e6f8f2a..bc8162b1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_dependence_in_literals.dart.weak.transformed.expect
@@ -1,88 +1,38 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends self::A<self::C::X*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends self::A<self::C::X%> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends self::A<self::D::X*>* = self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends self::A<self::D::X> = self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends core::Object* = dynamic, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends core::Object? = dynamic, Y extends () → self::E::X% = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X%, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends core::num*, Y extends () →* self::F::X* = () →* core::num*> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*, self::F::Y*>*
+class F<X extends core::num, Y extends () → self::F::X = () → core::num> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X, self::F::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, self::A<dynamic>*>*>* lc = core::_GrowableList::•<self::C<dynamic, self::A<dynamic>*>*>(0);
-static field core::Map<self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>* mc = <self::C<dynamic, self::A<dynamic>*>*, self::C<dynamic, self::A<dynamic>*>*>{};
-static field core::List<self::D<core::num*, self::A<core::num*>*>*>* ld = core::_GrowableList::•<self::D<core::num*, self::A<core::num*>*>*>(0);
-static field core::Map<self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>* md = <self::D<core::num*, self::A<core::num*>*>*, self::D<core::num*, self::A<core::num*>*>*>{};
-static field core::List<self::E<dynamic, () →* dynamic>*>* le = core::_GrowableList::•<self::E<dynamic, () →* dynamic>*>(0);
-static field core::Map<self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>* me = <self::E<dynamic, () →* dynamic>*, self::E<dynamic, () →* dynamic>*>{};
-static field core::List<self::F<core::num*, () →* core::num*>*>* lf = core::_GrowableList::•<self::F<core::num*, () →* core::num*>*>(0);
-static field core::Map<self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>* mf = <self::F<core::num*, () →* core::num*>*, self::F<core::num*, () →* core::num*>*>{};
+static field core::List<self::C<dynamic, self::A<dynamic>>> lc = core::_GrowableList::•<self::C<dynamic, self::A<dynamic>>>(0);
+static field core::Map<self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>> mc = <self::C<dynamic, self::A<dynamic>>, self::C<dynamic, self::A<dynamic>>>{};
+static field core::List<self::D<core::num, self::A<core::num>>> ld = core::_GrowableList::•<self::D<core::num, self::A<core::num>>>(0);
+static field core::Map<self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>> md = <self::D<core::num, self::A<core::num>>, self::D<core::num, self::A<core::num>>>{};
+static field core::List<self::E<dynamic, () → dynamic>> le = core::_GrowableList::•<self::E<dynamic, () → dynamic>>(0);
+static field core::Map<self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>> me = <self::E<dynamic, () → dynamic>, self::E<dynamic, () → dynamic>>{};
+static field core::List<self::F<core::num, () → core::num>> lf = core::_GrowableList::•<self::F<core::num, () → core::num>>(0);
+static field core::Map<self::F<core::num, () → core::num>, self::F<core::num, () → core::num>> mf = <self::F<core::num, () → core::num>, self::F<core::num, () → core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart
index 4458c58..b095be0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant occurrences of mutually dependent type
// variables in the bounds of all of these type variables are replaced with
// `dynamic`.
@@ -12,14 +12,14 @@
class D<X extends B<X, Y>, Y extends C<X, Y>> {}
-D d;
+D d = throw '';
class E<X extends B<X, Y>, Y extends X Function()> {}
-E e;
+E e = throw '';
class F<X extends X Function()> {}
-F f;
+F f = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline.expect
index 2d9ea29..3deef45 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline.expect
@@ -1,17 +1,16 @@
-// @dart = 2.9
class B<X, Y> {}
class C<X, Y> {}
class D<X extends B<X, Y>, Y extends C<X, Y>> {}
-D d;
+D d = throw '';
class E<X extends B<X, Y>, Y extends X Function()> {}
-E e;
+E e = throw '';
class F<X extends X Function()> {}
-F f;
+F f = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline_modelled.expect
index 710b59b..bb105d8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
-D d;
-E e;
-F f;
+D d = throw '';
+E e = throw '';
+F f = throw '';
class B<X, Y> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.expect
index e5e5db0..be3048c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.expect
@@ -1,83 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, () →* dynamic>* e;
-static field self::F<() →* dynamic>* f;
+static field self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> d = throw "";
+static field self::E<self::B<dynamic, dynamic>, () → dynamic> e = throw "";
+static field self::F<() → dynamic> f = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.modular.expect
index e5e5db0..be3048c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.modular.expect
@@ -1,83 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, () →* dynamic>* e;
-static field self::F<() →* dynamic>* f;
+static field self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> d = throw "";
+static field self::E<self::B<dynamic, dynamic>, () → dynamic> e = throw "";
+static field self::F<() → dynamic> f = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.outline.expect
index e1e033d..0136001 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.outline.expect
@@ -1,79 +1,29 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, () →* dynamic>* e;
-static field self::F<() →* dynamic>* f;
+static field self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> d;
+static field self::E<self::B<dynamic, dynamic>, () → dynamic> e;
+static field self::F<() → dynamic> f;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.transformed.expect
index e5e5db0..be3048c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence.dart.weak.transformed.expect
@@ -1,83 +1,33 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, () →* dynamic>* e;
-static field self::F<() →* dynamic>* f;
+static field self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> d = throw "";
+static field self::E<self::B<dynamic, dynamic>, () → dynamic> e = throw "";
+static field self::F<() → dynamic> f = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart
index 2ce7f11..29f3ee2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant occurrences of mutually dependent type
// variables in the bounds of all of these type variables are replaced with
// `dynamic`, in case when the raw type is used as a type argument of a list or
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline.expect
index 7ec3207..bd6e734 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<X, Y> {}
class C<X, Y> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect
index 830e511..eb9c16e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<X, Y> {}
class C<X, Y> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.expect
index b532365..0ff0d79 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.expect
@@ -1,86 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>[];
-static field core::Map<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* md = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>{};
-static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>[];
-static field core::Map<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* me = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>{};
-static field core::List<self::F<() →* dynamic>*>* lf = <self::F<() →* dynamic>*>[];
-static field core::Map<self::F<() →* dynamic>*, self::F<() →* dynamic>*>* mf = <self::F<() →* dynamic>*, self::F<() →* dynamic>*>{};
+static field core::List<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> ld = <self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>>[];
+static field core::Map<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> md = <self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>>{};
+static field core::List<self::E<self::B<dynamic, dynamic>, () → dynamic>> le = <self::E<self::B<dynamic, dynamic>, () → dynamic>>[];
+static field core::Map<self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>> me = <self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>>{};
+static field core::List<self::F<() → dynamic>> lf = <self::F<() → dynamic>>[];
+static field core::Map<self::F<() → dynamic>, self::F<() → dynamic>> mf = <self::F<() → dynamic>, self::F<() → dynamic>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.modular.expect
index b532365..0ff0d79 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.modular.expect
@@ -1,86 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>[];
-static field core::Map<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* md = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>{};
-static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>[];
-static field core::Map<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* me = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>{};
-static field core::List<self::F<() →* dynamic>*>* lf = <self::F<() →* dynamic>*>[];
-static field core::Map<self::F<() →* dynamic>*, self::F<() →* dynamic>*>* mf = <self::F<() →* dynamic>*, self::F<() →* dynamic>*>{};
+static field core::List<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> ld = <self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>>[];
+static field core::Map<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> md = <self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>>{};
+static field core::List<self::E<self::B<dynamic, dynamic>, () → dynamic>> le = <self::E<self::B<dynamic, dynamic>, () → dynamic>>[];
+static field core::Map<self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>> me = <self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>>{};
+static field core::List<self::F<() → dynamic>> lf = <self::F<() → dynamic>>[];
+static field core::Map<self::F<() → dynamic>, self::F<() → dynamic>> mf = <self::F<() → dynamic>, self::F<() → dynamic>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.outline.expect
index ed30299..6ade84a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.outline.expect
@@ -1,82 +1,32 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld;
-static field core::Map<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* md;
-static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le;
-static field core::Map<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* me;
-static field core::List<self::F<() →* dynamic>*>* lf;
-static field core::Map<self::F<() →* dynamic>*, self::F<() →* dynamic>*>* mf;
+static field core::List<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> ld;
+static field core::Map<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> md;
+static field core::List<self::E<self::B<dynamic, dynamic>, () → dynamic>> le;
+static field core::Map<self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>> me;
+static field core::List<self::F<() → dynamic>> lf;
+static field core::Map<self::F<() → dynamic>, self::F<() → dynamic>> mf;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.transformed.expect
index 555394a..11e12da 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/covariant_mutual_dependence_in_literals.dart.weak.transformed.expect
@@ -1,86 +1,36 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::B<self::D::X*, self::D::Y*>* = self::B<dynamic, dynamic>*, Y extends self::C<self::D::X*, self::D::Y*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::B<self::D::X, self::D::Y> = self::B<dynamic, dynamic>, Y extends self::C<self::D::X, self::D::Y> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends self::B<self::E::X*, self::E::Y*>* = self::B<dynamic, dynamic>*, Y extends () →* self::E::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*, self::E::Y*>*
+class E<X extends self::B<self::E::X, self::E::Y> = self::B<dynamic, dynamic>, Y extends () → self::E::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X, self::E::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<X extends () →* self::F::X* = () →* dynamic> extends core::Object {
- synthetic constructor •() → self::F<self::F::X*>*
+class F<X extends () → self::F::X = () → dynamic> extends core::Object {
+ synthetic constructor •() → self::F<self::F::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* ld = core::_GrowableList::•<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>(0);
-static field core::Map<self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>* md = <self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::D<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*>{};
-static field core::List<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* le = core::_GrowableList::•<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>(0);
-static field core::Map<self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>* me = <self::E<self::B<dynamic, dynamic>*, () →* dynamic>*, self::E<self::B<dynamic, dynamic>*, () →* dynamic>*>{};
-static field core::List<self::F<() →* dynamic>*>* lf = core::_GrowableList::•<self::F<() →* dynamic>*>(0);
-static field core::Map<self::F<() →* dynamic>*, self::F<() →* dynamic>*>* mf = <self::F<() →* dynamic>*, self::F<() →* dynamic>*>{};
+static field core::List<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> ld = core::_GrowableList::•<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>>(0);
+static field core::Map<self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>> md = <self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::D<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>>{};
+static field core::List<self::E<self::B<dynamic, dynamic>, () → dynamic>> le = core::_GrowableList::•<self::E<self::B<dynamic, dynamic>, () → dynamic>>(0);
+static field core::Map<self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>> me = <self::E<self::B<dynamic, dynamic>, () → dynamic>, self::E<self::B<dynamic, dynamic>, () → dynamic>>{};
+static field core::List<self::F<() → dynamic>> lf = core::_GrowableList::•<self::F<() → dynamic>>(0);
+static field core::Map<self::F<() → dynamic>, self::F<() → dynamic>> mf = <self::F<() → dynamic>, self::F<() → dynamic>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart
index ee1d838..98e40a9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant and contravariant occurrences of the same
// type variable in the bounds of the other type variables from the same
// declaration that are not being transitively depended on by that variable are
@@ -11,10 +11,10 @@
class C<X, Y extends X Function(X)> {}
-C c;
+C c = throw '';
class D<X extends num, Y extends X Function(X)> {}
-D d;
+D d = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline.expect
index 72cb315b..35af3d1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
class A<X> {}
class C<X, Y extends X Function(X)> {}
-C c;
+C c = throw '';
class D<X extends num, Y extends X Function(X)> {}
-D d;
+D d = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline_modelled.expect
index 1ca1686..f246f14 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.textual_outline_modelled.expect
@@ -1,6 +1,5 @@
-// @dart = 2.9
-C c;
-D d;
+C c = throw '';
+D d = throw '';
class A<X> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect
index e5f74ce..d994ba9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (Null) →* dynamic>* c;
-static field self::D<core::num*, (Null) →* core::num*>* d;
+static field self::C<dynamic, (Never) → dynamic> c = throw "";
+static field self::D<core::num, (Never) → core::num> d = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.modular.expect
index e5f74ce..d994ba9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.modular.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (Null) →* dynamic>* c;
-static field self::D<core::num*, (Null) →* core::num*>* d;
+static field self::C<dynamic, (Never) → dynamic> c = throw "";
+static field self::D<core::num, (Never) → core::num> d = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect
index 6f49703c..284ebd1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.outline.expect
@@ -1,50 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (Null) →* dynamic>* c;
-static field self::D<core::num*, (Null) →* core::num*>* d;
+static field self::C<dynamic, (Never) → dynamic> c;
+static field self::D<core::num, (Never) → core::num> d;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect
index e5f74ce..d994ba9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence.dart.weak.transformed.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<dynamic, (Null) →* dynamic>* c;
-static field self::D<core::num*, (Null) →* core::num*>* d;
+static field self::C<dynamic, (Never) → dynamic> c = throw "";
+static field self::D<core::num, (Never) → core::num> d = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart
index 9847562..bbfa488 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant and contravariant occurrences of the same
// type variable in the bounds of the other type variables from the same
// declaration that are not being transitively depended on by that variable are
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline.expect
index 769a041..fc6b50f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {}
class C<X, Y extends X Function(X)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline_modelled.expect
index a56fed6f..dd05869 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {}
class C<X, Y extends X Function(X)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect
index 2cf489e..908964a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.expect
@@ -1,54 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = <self::C<dynamic, (Null) →* dynamic>*>[];
-static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc = <self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = <self::D<core::num*, (Null) →* core::num*>*>[];
-static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md = <self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>{};
+static field core::List<self::C<dynamic, (Never) → dynamic>> lc = <self::C<dynamic, (Never) → dynamic>>[];
+static field core::Map<self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>> mc = <self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>>{};
+static field core::List<self::D<core::num, (Never) → core::num>> ld = <self::D<core::num, (Never) → core::num>>[];
+static field core::Map<self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>> md = <self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.modular.expect
index 2cf489e..908964a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.modular.expect
@@ -1,54 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = <self::C<dynamic, (Null) →* dynamic>*>[];
-static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc = <self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = <self::D<core::num*, (Null) →* core::num*>*>[];
-static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md = <self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>{};
+static field core::List<self::C<dynamic, (Never) → dynamic>> lc = <self::C<dynamic, (Never) → dynamic>>[];
+static field core::Map<self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>> mc = <self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>>{};
+static field core::List<self::D<core::num, (Never) → core::num>> ld = <self::D<core::num, (Never) → core::num>>[];
+static field core::Map<self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>> md = <self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect
index b8ba08d..3364ab8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.outline.expect
@@ -1,52 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc;
-static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc;
-static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld;
-static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md;
+static field core::List<self::C<dynamic, (Never) → dynamic>> lc;
+static field core::Map<self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>> mc;
+static field core::List<self::D<core::num, (Never) → core::num>> ld;
+static field core::Map<self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>> md;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect
index a96c10c..bdc99f7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/dependence_in_literals.dart.weak.transformed.expect
@@ -1,54 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends (self::C::X*) →* self::C::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends (self::C::X%) → self::C::X% = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends core::num*, Y extends (self::D::X*) →* self::D::X* = (Null) →* core::num*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends core::num, Y extends (self::D::X) → self::D::X = (Never) → core::num> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C<dynamic, (Null) →* dynamic>*>* lc = core::_GrowableList::•<self::C<dynamic, (Null) →* dynamic>*>(0);
-static field core::Map<self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>* mc = <self::C<dynamic, (Null) →* dynamic>*, self::C<dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::D<core::num*, (Null) →* core::num*>*>* ld = core::_GrowableList::•<self::D<core::num*, (Null) →* core::num*>*>(0);
-static field core::Map<self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>* md = <self::D<core::num*, (Null) →* core::num*>*, self::D<core::num*, (Null) →* core::num*>*>{};
+static field core::List<self::C<dynamic, (Never) → dynamic>> lc = core::_GrowableList::•<self::C<dynamic, (Never) → dynamic>>(0);
+static field core::Map<self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>> mc = <self::C<dynamic, (Never) → dynamic>, self::C<dynamic, (Never) → dynamic>>{};
+static field core::List<self::D<core::num, (Never) → core::num>> ld = core::_GrowableList::•<self::D<core::num, (Never) → core::num>>(0);
+static field core::Map<self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>> md = <self::D<core::num, (Never) → core::num>, self::D<core::num, (Never) → core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart
index 4b09046..8425634 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides missing type arguments to
// raw interface types that refer to classes imported from compiled dill files.
import 'dart:collection';
-LinkedListEntry y;
+LinkedListEntry y = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline.expect
index e8bd1bf..0719cde 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
import 'dart:collection';
-LinkedListEntry y;
+LinkedListEntry y = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline_modelled.expect
index e8bd1bf..0719cde 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
import 'dart:collection';
-LinkedListEntry y;
+LinkedListEntry y = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.expect
index 175fa49..8a0db2b5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:collection" as col;
import "dart:collection";
-static field col::LinkedListEntry<col::LinkedListEntry<dynamic>>* y;
+static field col::LinkedListEntry<col::LinkedListEntry<dynamic>> y = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.modular.expect
index 175fa49..8a0db2b5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:collection" as col;
import "dart:collection";
-static field col::LinkedListEntry<col::LinkedListEntry<dynamic>>* y;
+static field col::LinkedListEntry<col::LinkedListEntry<dynamic>> y = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.outline.expect
index 510b6e2..bd70c87 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:collection" as col;
import "dart:collection";
-static field col::LinkedListEntry<col::LinkedListEntry<dynamic>>* y;
+static field col::LinkedListEntry<col::LinkedListEntry<dynamic>> y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.transformed.expect
index 175fa49..8a0db2b5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/generic_classes_from_dill.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:collection" as col;
import "dart:collection";
-static field col::LinkedListEntry<col::LinkedListEntry<dynamic>>* y;
+static field col::LinkedListEntry<col::LinkedListEntry<dynamic>> y = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart
index bac8aea..4e50e29 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that type inference uses type arguments provided by
// instantiate to bound in type annotations to infer the type arguments of the
// corresponding constructor invocations.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline.expect
index 2a64c01..e078af5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline_modelled.expect
index 2a64c01..e078af5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect
index 5da171e..449a91e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<core::num*>* a = new self::A::•<core::num*>();
+ self::A<core::num> a = new self::A::•<core::num>();
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.modular.expect
index 5da171e..449a91e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<core::num*>* a = new self::A::•<core::num*>();
+ self::A<core::num> a = new self::A::•<core::num>();
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect
index 408de03..5509e65 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect
index 5da171e..449a91e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_constrained_by_bound.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- self::A<core::num*>* a = new self::A::•<core::num*>();
+ self::A<core::num> a = new self::A::•<core::num>();
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart
index 175c2eb..00dae45 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that type inference invokes instantiate to bound to provide
// type arguments to constructor invocations in cases when nothing constrains
// the arguments or the invocation.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline.expect
index 2a64c01..e078af5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline_modelled.expect
index 2a64c01..e078af5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect
index 13d0abf..2aeb1df 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::num*>();
+ new self::A::•<core::num>();
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.modular.expect
index 13d0abf..2aeb1df 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.modular.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::num*>();
+ new self::A::•<core::num>();
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect
index 408de03..5509e65 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.outline.expect
@@ -1,20 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect
index 13d0abf..2aeb1df 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_defaults_to_bound.dart.weak.transformed.expect
@@ -1,22 +1,12 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {
- new self::A::•<core::num*>();
+ new self::A::•<core::num>();
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart
index 8dc9d73..60d5f7d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart
@@ -1,14 +1,14 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound could be run on partially defined
// type arguments supplied by type inference.
class A<T> {}
class B<T extends num, S extends List<T>> extends A<T> {
- B([T x]) {}
+ B([T? x]) {}
}
main() {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline.expect
index 76ddc76..b1ab2c6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
class A<T> {}
class B<T extends num, S extends List<T>> extends A<T> {
- B([T x]) {}
+ B([T? x]) {}
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline_modelled.expect
index 76ddc76..b1ab2c6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
class A<T> {}
class B<T extends num, S extends List<T>> extends A<T> {
- B([T x]) {}
+ B([T? x]) {}
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect
index f971b81..fd745ff 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.expect
@@ -1,30 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
- constructor •([self::B::T* x = #C1]) → self::B<self::B::T*, self::B::S*>*
+class B<T extends core::num, S extends core::List<self::B::T> = core::List<core::num>> extends self::A<self::B::T> {
+ constructor •([self::B::T? x = #C1]) → self::B<self::B::T, self::B::S>
: super self::A::•() {}
}
static method main() → dynamic {
- self::B<core::num*, core::List<core::num*>*>* x;
- self::B<core::int*, core::List<core::int*>*>* y = new self::B::•<core::int*, core::List<core::int*>*>(3);
- self::A<core::int*>* z = new self::B::•<core::int*, core::List<core::int*>*>();
+ self::B<core::num, core::List<core::num>> x;
+ self::B<core::int, core::List<core::int>> y = new self::B::•<core::int, core::List<core::int>>(3);
+ self::A<core::int> z = new self::B::•<core::int, core::List<core::int>>();
}
constants {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.modular.expect
index f971b81..fd745ff 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.modular.expect
@@ -1,30 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
- constructor •([self::B::T* x = #C1]) → self::B<self::B::T*, self::B::S*>*
+class B<T extends core::num, S extends core::List<self::B::T> = core::List<core::num>> extends self::A<self::B::T> {
+ constructor •([self::B::T? x = #C1]) → self::B<self::B::T, self::B::S>
: super self::A::•() {}
}
static method main() → dynamic {
- self::B<core::num*, core::List<core::num*>*>* x;
- self::B<core::int*, core::List<core::int*>*>* y = new self::B::•<core::int*, core::List<core::int*>*>(3);
- self::A<core::int*>* z = new self::B::•<core::int*, core::List<core::int*>*>();
+ self::B<core::num, core::List<core::num>> x;
+ self::B<core::int, core::List<core::int>> y = new self::B::•<core::int, core::List<core::int>>(3);
+ self::A<core::int> z = new self::B::•<core::int, core::List<core::int>>();
}
constants {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect
index 0cf94f7..101b039 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
- constructor •([self::B::T* x = null]) → self::B<self::B::T*, self::B::S*>*
+class B<T extends core::num, S extends core::List<self::B::T> = core::List<core::num>> extends self::A<self::B::T> {
+ constructor •([self::B::T? x = null]) → self::B<self::B::T, self::B::S>
;
}
static method main() → dynamic
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect
index f971b81..fd745ff 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_gives_input.dart.weak.transformed.expect
@@ -1,30 +1,20 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends core::num*, S extends core::List<self::B::T*>* = core::List<core::num*>*> extends self::A<self::B::T*> {
- constructor •([self::B::T* x = #C1]) → self::B<self::B::T*, self::B::S*>*
+class B<T extends core::num, S extends core::List<self::B::T> = core::List<core::num>> extends self::A<self::B::T> {
+ constructor •([self::B::T? x = #C1]) → self::B<self::B::T, self::B::S>
: super self::A::•() {}
}
static method main() → dynamic {
- self::B<core::num*, core::List<core::num*>*>* x;
- self::B<core::int*, core::List<core::int*>*>* y = new self::B::•<core::int*, core::List<core::int*>*>(3);
- self::A<core::int*>* z = new self::B::•<core::int*, core::List<core::int*>*>();
+ self::B<core::num, core::List<core::num>> x;
+ self::B<core::int, core::List<core::int>> y = new self::B::•<core::int, core::List<core::int>>(3);
+ self::A<core::int> z = new self::B::•<core::int, core::List<core::int>>();
}
constants {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart
index bf65124..4bdbe0d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that super-bounded types that are produced by instantiate to
// bound are rejected when inferred as type arguments of constructor
// invocations.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline.expect
index 8d9c769..d9993ef 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<T extends Comparable<T>> {}
var y = new B();
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline_modelled.expect
index a984318..58bc104 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<T extends Comparable<T>> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.expect
index 7c188466..f00a272 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.expect
@@ -1,9 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<dynamic>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
+// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<Object?>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
// - 'Comparable' is from 'dart:core'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var y = new B();
// ^
@@ -14,20 +15,10 @@
import self as self;
import "dart:core" as core;
-class B<T extends core::Comparable<self::B::T*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Comparable<self::B::T> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<core::Comparable<dynamic>*>* y = new self::B::•<core::Comparable<dynamic>*>();
+static field self::B<core::Comparable<core::Object?>> y = new self::B::•<core::Comparable<core::Object?>>();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.modular.expect
index 7c188466..f00a272 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.modular.expect
@@ -1,9 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<dynamic>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
+// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<Object?>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
// - 'Comparable' is from 'dart:core'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var y = new B();
// ^
@@ -14,20 +15,10 @@
import self as self;
import "dart:core" as core;
-class B<T extends core::Comparable<self::B::T*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Comparable<self::B::T> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<core::Comparable<dynamic>*>* y = new self::B::•<core::Comparable<dynamic>*>();
+static field self::B<core::Comparable<core::Object?>> y = new self::B::•<core::Comparable<core::Object?>>();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.outline.expect
index 297104d5..a30e1fe 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<T extends core::Comparable<self::B::T*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Comparable<self::B::T> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<core::Comparable<dynamic>*>* y;
+static field self::B<core::Comparable<core::Object?>> y;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.transformed.expect
index 7c188466..f00a272 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart.weak.transformed.expect
@@ -1,9 +1,10 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<dynamic>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
+// pkg/front_end/testcases/instantiate_to_bound/inference_super_bounded_rejected.dart:11:13: Error: Inferred type argument 'Comparable<Object?>' doesn't conform to the bound 'Comparable<T>' of the type variable 'T' on 'B'.
// - 'Comparable' is from 'dart:core'.
+// - 'Object' is from 'dart:core'.
// Try specifying type arguments explicitly so that they conform to the bounds.
// var y = new B();
// ^
@@ -14,20 +15,10 @@
import self as self;
import "dart:core" as core;
-class B<T extends core::Comparable<self::B::T*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends core::Comparable<self::B::T> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<core::Comparable<dynamic>*>* y = new self::B::•<core::Comparable<dynamic>*>();
+static field self::B<core::Comparable<core::Object?>> y = new self::B::•<core::Comparable<core::Object?>>();
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart
index 29ad607..6248873 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// interface types that are used in the module outline.
class A<T extends num> {}
class B {
- foo(A a) => null;
- A bar() => null;
+ foo(A a) => throw '';
+ A bar() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline.expect
index 05dd2d4..4a059a6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
class A<T extends num> {}
class B {
- foo(A a) => null;
- A bar() => null;
+ foo(A a) => throw '';
+ A bar() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline_modelled.expect
index f9af173..7a68674 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.textual_outline_modelled.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
class A<T extends num> {}
class B {
- A bar() => null;
- foo(A a) => null;
+ A bar() => throw '';
+ foo(A a) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect
index e04675b..8db49464 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- method foo(self::A<core::num*>* a) → dynamic
- return null;
- method bar() → self::A<core::num*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo(self::A<core::num> a) → dynamic
+ return throw "";
+ method bar() → self::A<core::num>
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.modular.expect
index e04675b..8db49464 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.modular.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- method foo(self::A<core::num*>* a) → dynamic
- return null;
- method bar() → self::A<core::num*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo(self::A<core::num> a) → dynamic
+ return throw "";
+ method bar() → self::A<core::num>
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect
index 2886fc8..7b196cd 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.outline.expect
@@ -1,38 +1,18 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- method foo(self::A<core::num*>* a) → dynamic
+ method foo(self::A<core::num> a) → dynamic
;
- method bar() → self::A<core::num*>*
+ method bar() → self::A<core::num>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect
index e04675b..8db49464 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/instantiated_in_outline.dart.weak.transformed.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- method foo(self::A<core::num*>* a) → dynamic
- return null;
- method bar() → self::A<core::num*>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo(self::A<core::num> a) → dynamic
+ return throw "";
+ method bar() → self::A<core::num>
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart
index 8cf9420..5d026c9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// interface types that are themselves used as type arguments of literal lists.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline.expect
index a6f1bb6..2e3bf3c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
var a = <A>[];
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline_modelled.expect
index 8c591bc..9b30539 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect
index f1af679..0aabe89 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+static field core::List<self::A<core::num>> a = <self::A<core::num>>[];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.modular.expect
index f1af679..0aabe89 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::num*>*>* a = <self::A<core::num*>*>[];
+static field core::List<self::A<core::num>> a = <self::A<core::num>>[];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect
index ce6b446..478087c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::num*>*>* a;
+static field core::List<self::A<core::num>> a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect
index 7b0f742..3a41c7a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::A<core::num*>*>* a = core::_GrowableList::•<self::A<core::num*>*>(0);
+static field core::List<self::A<core::num>> a = core::_GrowableList::•<self::A<core::num>>(0);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart
index 1c06113..ad3d94c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound leaves interface types that have
// their type arguments defined by the programmer intact in cases when those
// interface types are used as type arguments of literal lists.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline.expect
index 62a71ba..fcb0347 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {}
class B<S> {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline_modelled.expect
index 62a71ba..fcb0347 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T> {}
class B<S> {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.expect
index a42b37a..dd07baa 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<self::A<self::B::S*>*>* foo = <self::A<self::B::S*>*>[];
- final field core::List<self::A<core::num*>*>* bar = <self::A<core::num*>*>[];
- synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<self::A<self::B::S%>> foo = <self::A<self::B::S%>>[];
+ final field core::List<self::A<core::num>> bar = <self::A<core::num>>[];
+ synthetic constructor •() → self::B<self::B::S%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.modular.expect
index a42b37a..dd07baa 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.modular.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<self::A<self::B::S*>*>* foo = <self::A<self::B::S*>*>[];
- final field core::List<self::A<core::num*>*>* bar = <self::A<core::num*>*>[];
- synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<self::A<self::B::S%>> foo = <self::A<self::B::S%>>[];
+ final field core::List<self::A<core::num>> bar = <self::A<core::num>>[];
+ synthetic constructor •() → self::B<self::B::S%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.outline.expect
index 748f389..2ed8f3b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.outline.expect
@@ -1,36 +1,16 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<self::A<self::B::S*>*>* foo;
- final field core::List<self::A<core::num*>*>* bar;
- synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<self::A<self::B::S%>> foo;
+ final field core::List<self::A<core::num>> bar;
+ synthetic constructor •() → self::B<self::B::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.transformed.expect
index 6c9f709..4ffc6e0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_list_with_generic_argument.dart.weak.transformed.expect
@@ -1,37 +1,17 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<self::A<self::B::S*>*>* foo = core::_GrowableList::•<self::A<self::B::S*>*>(0);
- final field core::List<self::A<core::num*>*>* bar = core::_GrowableList::•<self::A<core::num*>*>(0);
- synthetic constructor •() → self::B<self::B::S*>*
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<self::A<self::B::S%>> foo = core::_GrowableList::•<self::A<self::B::S%>>(0);
+ final field core::List<self::A<core::num>> bar = core::_GrowableList::•<self::A<core::num>>(0);
+ synthetic constructor •() → self::B<self::B::S%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart
index 2f985bd..febfe6a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// interface types that are themselves used as type arguments of literal maps.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline.expect
index 2bb8495..3f4f92e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
var a = <A, A>{};
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline_modelled.expect
index 827fdca..f4ec5d2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect
index e2fc6ab..44d400e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+static field core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.modular.expect
index e2fc6ab..44d400e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+static field core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect
index 64d45b2..06dbbeb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::Map<self::A<core::num*>*, self::A<core::num*>*>* a;
+static field core::Map<self::A<core::num>, self::A<core::num>> a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect
index e2fc6ab..44d400e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/literal_map.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::Map<self::A<core::num*>*, self::A<core::num*>*>* a = <self::A<core::num*>*, self::A<core::num*>*>{};
+static field core::Map<self::A<core::num>, self::A<core::num>> a = <self::A<core::num>, self::A<core::num>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart
index 29da40e..4456381 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the instantiate-to-bound algorithm implementation works
// well in cases where there are multiple distinct strongly connected components
// of the type variable dependency graph in one declaration.
@@ -15,33 +15,33 @@
// Two loops.
class D<X extends A<X>, Y extends A<Y>> {}
-D d;
+D d = throw '';
class E<W extends B<W, X>, X extends C<W, X>, Y extends B<Y, Z>,
Z extends C<Y, Z>> {}
-E e;
+E e = throw '';
class F<V extends num, W extends B<W, X>, X extends C<W, X>, Y extends B<W, X>,
Z extends C<Y, Z>> {}
-F f;
+F f = throw '';
class G<V extends num, W extends B<V, X>, X extends C<W, V>, Y extends B<W, X>,
Z extends C<Y, Z>> {}
-G g;
+G g = throw '';
class H<S extends A<S>, T extends B<T, U>, U extends C<T, U>, V extends A<V>,
W extends S, X extends T, Y extends U, Z extends V> {}
-H h;
+H h = throw '';
// A square and a triangle.
class I<T extends U, U extends Y, V extends Function(W), W extends Function(X),
X extends Function(V), Y extends Z, Z extends T> {}
-I i;
+I i = throw '';
// A triangle and a "bowtie."
class J<
@@ -54,6 +54,6 @@
Y extends Z,
Z extends X> {}
-J j;
+J j = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline.expect
index 3675488..7aa61be 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X> {}
class B<X, Y> {}
@@ -7,32 +6,32 @@
class D<X extends A<X>, Y extends A<Y>> {}
-D d;
+D d = throw '';
class E<W extends B<W, X>, X extends C<W, X>, Y extends B<Y, Z>,
Z extends C<Y, Z>> {}
-E e;
+E e = throw '';
class F<V extends num, W extends B<W, X>, X extends C<W, X>, Y extends B<W, X>,
Z extends C<Y, Z>> {}
-F f;
+F f = throw '';
class G<V extends num, W extends B<V, X>, X extends C<W, V>, Y extends B<W, X>,
Z extends C<Y, Z>> {}
-G g;
+G g = throw '';
class H<S extends A<S>, T extends B<T, U>, U extends C<T, U>, V extends A<V>,
W extends S, X extends T, Y extends U, Z extends V> {}
-H h;
+H h = throw '';
class I<T extends U, U extends Y, V extends Function(W), W extends Function(X),
X extends Function(V), Y extends Z, Z extends T> {}
-I i;
+I i = throw '';
class J<
S extends T Function(U),
@@ -44,5 +43,5 @@
Y extends Z,
Z extends X> {}
-J j;
+J j = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline_modelled.expect
index 88fbdf6..37b0100 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.textual_outline_modelled.expect
@@ -1,11 +1,10 @@
-// @dart = 2.9
-D d;
-E e;
-F f;
-G g;
-H h;
-I i;
-J j;
+D d = throw '';
+E e = throw '';
+F f = throw '';
+G g = throw '';
+H h = throw '';
+I i = throw '';
+J j = throw '';
class A<X> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect
index 1576c98..5518a58 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,161 +10,61 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::A<self::D::X*>* = self::A<dynamic>*, Y extends self::A<self::D::Y*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::A<self::D::X> = self::A<dynamic>, Y extends self::A<self::D::Y> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<W extends self::B<self::E::W*, self::E::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::E::W*, self::E::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::E::Y*, self::E::Z*>* = self::B<dynamic, dynamic>*, Z extends self::C<self::E::Y*, self::E::Z*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::E<self::E::W*, self::E::X*, self::E::Y*, self::E::Z*>*
+class E<W extends self::B<self::E::W, self::E::X> = self::B<dynamic, dynamic>, X extends self::C<self::E::W, self::E::X> = self::C<dynamic, dynamic>, Y extends self::B<self::E::Y, self::E::Z> = self::B<dynamic, dynamic>, Z extends self::C<self::E::Y, self::E::Z> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::E<self::E::W, self::E::X, self::E::Y, self::E::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
+class F<V extends core::num, W extends self::B<self::F::W, self::F::X> = self::B<dynamic, dynamic>, X extends self::C<self::F::W, self::F::X> = self::C<dynamic, dynamic>, Y extends self::B<self::F::W, self::F::X> = self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, Z extends self::C<self::F::Y, self::F::Z> = self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::F<self::F::V, self::F::W, self::F::X, self::F::Y, self::F::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
+class G<V extends core::num, W extends self::B<self::G::V, self::G::X> = self::B<core::num, dynamic>, X extends self::C<self::G::W, self::G::V> = self::C<dynamic, core::num>, Y extends self::B<self::G::W, self::G::X> = self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, Z extends self::C<self::G::Y, self::G::Z> = self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::G<self::G::V, self::G::W, self::G::X, self::G::Y, self::G::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class H<S extends self::A<self::H::S*>* = self::A<dynamic>*, T extends self::B<self::H::T*, self::H::U*>* = self::B<dynamic, dynamic>*, U extends self::C<self::H::T*, self::H::U*>* = self::C<dynamic, dynamic>*, V extends self::A<self::H::V*>* = self::A<dynamic>*, W extends self::H::S* = self::A<dynamic>*, X extends self::H::T* = self::B<dynamic, dynamic>*, Y extends self::H::U* = self::C<dynamic, dynamic>*, Z extends self::H::V* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::H<self::H::S*, self::H::T*, self::H::U*, self::H::V*, self::H::W*, self::H::X*, self::H::Y*, self::H::Z*>*
+class H<S extends self::A<self::H::S> = self::A<dynamic>, T extends self::B<self::H::T, self::H::U> = self::B<dynamic, dynamic>, U extends self::C<self::H::T, self::H::U> = self::C<dynamic, dynamic>, V extends self::A<self::H::V> = self::A<dynamic>, W extends self::H::S = self::A<dynamic>, X extends self::H::T = self::B<dynamic, dynamic>, Y extends self::H::U = self::C<dynamic, dynamic>, Z extends self::H::V = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::H<self::H::S, self::H::T, self::H::U, self::H::V, self::H::W, self::H::X, self::H::Y, self::H::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
- synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
+class I<T extends invalid-type, U extends self::I::Y% = invalid-type, V extends (self::I::W) → dynamic = (Never) → dynamic, W extends (self::I::X) → dynamic = (Never) → dynamic, X extends (self::I::V) → dynamic = (Never) → dynamic, Y extends self::I::Z% = invalid-type, Z extends self::I::T% = invalid-type> extends core::Object {
+ synthetic constructor •() → self::I<self::I::T%, self::I::U%, self::I::V, self::I::W, self::I::X, self::I::Y%, self::I::Z%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
+class J<S extends (self::J::U) → self::J::T = (Never) → dynamic, T extends (self::J::S) → self::J::U = (Never) → dynamic, U extends (self::J::T) → self::J::S = (Never) → dynamic, V extends self::J::W = dynamic, W extends self::J::X = dynamic, X extends (self::J::V) → self::J::Y = (Never) → dynamic, Y extends self::J::Z = dynamic, Z extends self::J::X = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::S, self::J::T, self::J::U, self::J::V, self::J::W, self::J::X, self::J::Y, self::J::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::A<dynamic>*, self::A<dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* e;
-static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
-static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
-static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
+static field self::D<self::A<dynamic>, self::A<dynamic>> d = throw "";
+static field self::E<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> e = throw "";
+static field self::F<core::num, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> f = throw "";
+static field self::G<core::num, self::B<core::num, dynamic>, self::C<dynamic, core::num>, self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> g = throw "";
+static field self::H<self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>, self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>> h = throw "";
+static field self::I<invalid-type, invalid-type, (Never) → dynamic, (Never) → dynamic, (Never) → dynamic, invalid-type, invalid-type> i = throw "";
+static field self::J<(Never) → dynamic, (Never) → dynamic, (Never) → dynamic, dynamic, dynamic, (Never) → dynamic, dynamic, dynamic> j = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.modular.expect
index 1576c98..5518a58 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,161 +10,61 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::A<self::D::X*>* = self::A<dynamic>*, Y extends self::A<self::D::Y*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::A<self::D::X> = self::A<dynamic>, Y extends self::A<self::D::Y> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<W extends self::B<self::E::W*, self::E::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::E::W*, self::E::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::E::Y*, self::E::Z*>* = self::B<dynamic, dynamic>*, Z extends self::C<self::E::Y*, self::E::Z*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::E<self::E::W*, self::E::X*, self::E::Y*, self::E::Z*>*
+class E<W extends self::B<self::E::W, self::E::X> = self::B<dynamic, dynamic>, X extends self::C<self::E::W, self::E::X> = self::C<dynamic, dynamic>, Y extends self::B<self::E::Y, self::E::Z> = self::B<dynamic, dynamic>, Z extends self::C<self::E::Y, self::E::Z> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::E<self::E::W, self::E::X, self::E::Y, self::E::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
+class F<V extends core::num, W extends self::B<self::F::W, self::F::X> = self::B<dynamic, dynamic>, X extends self::C<self::F::W, self::F::X> = self::C<dynamic, dynamic>, Y extends self::B<self::F::W, self::F::X> = self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, Z extends self::C<self::F::Y, self::F::Z> = self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::F<self::F::V, self::F::W, self::F::X, self::F::Y, self::F::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
+class G<V extends core::num, W extends self::B<self::G::V, self::G::X> = self::B<core::num, dynamic>, X extends self::C<self::G::W, self::G::V> = self::C<dynamic, core::num>, Y extends self::B<self::G::W, self::G::X> = self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, Z extends self::C<self::G::Y, self::G::Z> = self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::G<self::G::V, self::G::W, self::G::X, self::G::Y, self::G::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class H<S extends self::A<self::H::S*>* = self::A<dynamic>*, T extends self::B<self::H::T*, self::H::U*>* = self::B<dynamic, dynamic>*, U extends self::C<self::H::T*, self::H::U*>* = self::C<dynamic, dynamic>*, V extends self::A<self::H::V*>* = self::A<dynamic>*, W extends self::H::S* = self::A<dynamic>*, X extends self::H::T* = self::B<dynamic, dynamic>*, Y extends self::H::U* = self::C<dynamic, dynamic>*, Z extends self::H::V* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::H<self::H::S*, self::H::T*, self::H::U*, self::H::V*, self::H::W*, self::H::X*, self::H::Y*, self::H::Z*>*
+class H<S extends self::A<self::H::S> = self::A<dynamic>, T extends self::B<self::H::T, self::H::U> = self::B<dynamic, dynamic>, U extends self::C<self::H::T, self::H::U> = self::C<dynamic, dynamic>, V extends self::A<self::H::V> = self::A<dynamic>, W extends self::H::S = self::A<dynamic>, X extends self::H::T = self::B<dynamic, dynamic>, Y extends self::H::U = self::C<dynamic, dynamic>, Z extends self::H::V = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::H<self::H::S, self::H::T, self::H::U, self::H::V, self::H::W, self::H::X, self::H::Y, self::H::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
- synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
+class I<T extends invalid-type, U extends self::I::Y% = invalid-type, V extends (self::I::W) → dynamic = (Never) → dynamic, W extends (self::I::X) → dynamic = (Never) → dynamic, X extends (self::I::V) → dynamic = (Never) → dynamic, Y extends self::I::Z% = invalid-type, Z extends self::I::T% = invalid-type> extends core::Object {
+ synthetic constructor •() → self::I<self::I::T%, self::I::U%, self::I::V, self::I::W, self::I::X, self::I::Y%, self::I::Z%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
+class J<S extends (self::J::U) → self::J::T = (Never) → dynamic, T extends (self::J::S) → self::J::U = (Never) → dynamic, U extends (self::J::T) → self::J::S = (Never) → dynamic, V extends self::J::W = dynamic, W extends self::J::X = dynamic, X extends (self::J::V) → self::J::Y = (Never) → dynamic, Y extends self::J::Z = dynamic, Z extends self::J::X = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::S, self::J::T, self::J::U, self::J::V, self::J::W, self::J::X, self::J::Y, self::J::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::A<dynamic>*, self::A<dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* e;
-static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
-static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
-static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
+static field self::D<self::A<dynamic>, self::A<dynamic>> d = throw "";
+static field self::E<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> e = throw "";
+static field self::F<core::num, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> f = throw "";
+static field self::G<core::num, self::B<core::num, dynamic>, self::C<dynamic, core::num>, self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> g = throw "";
+static field self::H<self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>, self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>> h = throw "";
+static field self::I<invalid-type, invalid-type, (Never) → dynamic, (Never) → dynamic, (Never) → dynamic, invalid-type, invalid-type> i = throw "";
+static field self::J<(Never) → dynamic, (Never) → dynamic, (Never) → dynamic, dynamic, dynamic, (Never) → dynamic, dynamic, dynamic> j = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect
index e29ceb1..cb90511 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,152 +10,52 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::A<self::D::X*>* = self::A<dynamic>*, Y extends self::A<self::D::Y*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::A<self::D::X> = self::A<dynamic>, Y extends self::A<self::D::Y> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<W extends self::B<self::E::W*, self::E::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::E::W*, self::E::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::E::Y*, self::E::Z*>* = self::B<dynamic, dynamic>*, Z extends self::C<self::E::Y*, self::E::Z*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::E<self::E::W*, self::E::X*, self::E::Y*, self::E::Z*>*
+class E<W extends self::B<self::E::W, self::E::X> = self::B<dynamic, dynamic>, X extends self::C<self::E::W, self::E::X> = self::C<dynamic, dynamic>, Y extends self::B<self::E::Y, self::E::Z> = self::B<dynamic, dynamic>, Z extends self::C<self::E::Y, self::E::Z> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::E<self::E::W, self::E::X, self::E::Y, self::E::Z>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
+class F<V extends core::num, W extends self::B<self::F::W, self::F::X> = self::B<dynamic, dynamic>, X extends self::C<self::F::W, self::F::X> = self::C<dynamic, dynamic>, Y extends self::B<self::F::W, self::F::X> = self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, Z extends self::C<self::F::Y, self::F::Z> = self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::F<self::F::V, self::F::W, self::F::X, self::F::Y, self::F::Z>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
+class G<V extends core::num, W extends self::B<self::G::V, self::G::X> = self::B<core::num, dynamic>, X extends self::C<self::G::W, self::G::V> = self::C<dynamic, core::num>, Y extends self::B<self::G::W, self::G::X> = self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, Z extends self::C<self::G::Y, self::G::Z> = self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::G<self::G::V, self::G::W, self::G::X, self::G::Y, self::G::Z>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class H<S extends self::A<self::H::S*>* = self::A<dynamic>*, T extends self::B<self::H::T*, self::H::U*>* = self::B<dynamic, dynamic>*, U extends self::C<self::H::T*, self::H::U*>* = self::C<dynamic, dynamic>*, V extends self::A<self::H::V*>* = self::A<dynamic>*, W extends self::H::S* = self::A<dynamic>*, X extends self::H::T* = self::B<dynamic, dynamic>*, Y extends self::H::U* = self::C<dynamic, dynamic>*, Z extends self::H::V* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::H<self::H::S*, self::H::T*, self::H::U*, self::H::V*, self::H::W*, self::H::X*, self::H::Y*, self::H::Z*>*
+class H<S extends self::A<self::H::S> = self::A<dynamic>, T extends self::B<self::H::T, self::H::U> = self::B<dynamic, dynamic>, U extends self::C<self::H::T, self::H::U> = self::C<dynamic, dynamic>, V extends self::A<self::H::V> = self::A<dynamic>, W extends self::H::S = self::A<dynamic>, X extends self::H::T = self::B<dynamic, dynamic>, Y extends self::H::U = self::C<dynamic, dynamic>, Z extends self::H::V = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::H<self::H::S, self::H::T, self::H::U, self::H::V, self::H::W, self::H::X, self::H::Y, self::H::Z>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
- synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
+class I<T extends invalid-type, U extends self::I::Y% = invalid-type, V extends (self::I::W) → dynamic = (Never) → dynamic, W extends (self::I::X) → dynamic = (Never) → dynamic, X extends (self::I::V) → dynamic = (Never) → dynamic, Y extends self::I::Z% = invalid-type, Z extends self::I::T% = invalid-type> extends core::Object {
+ synthetic constructor •() → self::I<self::I::T%, self::I::U%, self::I::V, self::I::W, self::I::X, self::I::Y%, self::I::Z%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
+class J<S extends (self::J::U) → self::J::T = (Never) → dynamic, T extends (self::J::S) → self::J::U = (Never) → dynamic, U extends (self::J::T) → self::J::S = (Never) → dynamic, V extends self::J::W = dynamic, W extends self::J::X = dynamic, X extends (self::J::V) → self::J::Y = (Never) → dynamic, Y extends self::J::Z = dynamic, Z extends self::J::X = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::S, self::J::T, self::J::U, self::J::V, self::J::W, self::J::X, self::J::Y, self::J::Z>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::A<dynamic>*, self::A<dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* e;
-static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
-static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
-static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
+static field self::D<self::A<dynamic>, self::A<dynamic>> d;
+static field self::E<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> e;
+static field self::F<core::num, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> f;
+static field self::G<core::num, self::B<core::num, dynamic>, self::C<dynamic, core::num>, self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> g;
+static field self::H<self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>, self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>> h;
+static field self::I<invalid-type, invalid-type, (Never) → dynamic, (Never) → dynamic, (Never) → dynamic, invalid-type, invalid-type> i;
+static field self::J<(Never) → dynamic, (Never) → dynamic, (Never) → dynamic, dynamic, dynamic, (Never) → dynamic, dynamic, dynamic> j;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect
index 1576c98..5518a58 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/multiple_strongly_connected.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,161 +10,61 @@
import self as self;
import "dart:core" as core;
-class A<X extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::C<self::C::X*, self::C::Y*>*
+class C<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::C<self::C::X%, self::C::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D<X extends self::A<self::D::X*>* = self::A<dynamic>*, Y extends self::A<self::D::Y*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::D<self::D::X*, self::D::Y*>*
+class D<X extends self::A<self::D::X> = self::A<dynamic>, Y extends self::A<self::D::Y> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::D<self::D::X, self::D::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<W extends self::B<self::E::W*, self::E::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::E::W*, self::E::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::E::Y*, self::E::Z*>* = self::B<dynamic, dynamic>*, Z extends self::C<self::E::Y*, self::E::Z*>* = self::C<dynamic, dynamic>*> extends core::Object {
- synthetic constructor •() → self::E<self::E::W*, self::E::X*, self::E::Y*, self::E::Z*>*
+class E<W extends self::B<self::E::W, self::E::X> = self::B<dynamic, dynamic>, X extends self::C<self::E::W, self::E::X> = self::C<dynamic, dynamic>, Y extends self::B<self::E::Y, self::E::Z> = self::B<dynamic, dynamic>, Z extends self::C<self::E::Y, self::E::Z> = self::C<dynamic, dynamic>> extends core::Object {
+ synthetic constructor •() → self::E<self::E::W, self::E::X, self::E::Y, self::E::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class F<V extends core::num*, W extends self::B<self::F::W*, self::F::X*>* = self::B<dynamic, dynamic>*, X extends self::C<self::F::W*, self::F::X*>* = self::C<dynamic, dynamic>*, Y extends self::B<self::F::W*, self::F::X*>* = self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, Z extends self::C<self::F::Y*, self::F::Z*>* = self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::F<self::F::V*, self::F::W*, self::F::X*, self::F::Y*, self::F::Z*>*
+class F<V extends core::num, W extends self::B<self::F::W, self::F::X> = self::B<dynamic, dynamic>, X extends self::C<self::F::W, self::F::X> = self::C<dynamic, dynamic>, Y extends self::B<self::F::W, self::F::X> = self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, Z extends self::C<self::F::Y, self::F::Z> = self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::F<self::F::V, self::F::W, self::F::X, self::F::Y, self::F::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class G<V extends core::num*, W extends self::B<self::G::V*, self::G::X*>* = self::B<core::num*, dynamic>*, X extends self::C<self::G::W*, self::G::V*>* = self::C<dynamic, core::num*>*, Y extends self::B<self::G::W*, self::G::X*>* = self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, Z extends self::C<self::G::Y*, self::G::Z*>* = self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*> extends core::Object {
- synthetic constructor •() → self::G<self::G::V*, self::G::W*, self::G::X*, self::G::Y*, self::G::Z*>*
+class G<V extends core::num, W extends self::B<self::G::V, self::G::X> = self::B<core::num, dynamic>, X extends self::C<self::G::W, self::G::V> = self::C<dynamic, core::num>, Y extends self::B<self::G::W, self::G::X> = self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, Z extends self::C<self::G::Y, self::G::Z> = self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> extends core::Object {
+ synthetic constructor •() → self::G<self::G::V, self::G::W, self::G::X, self::G::Y, self::G::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class H<S extends self::A<self::H::S*>* = self::A<dynamic>*, T extends self::B<self::H::T*, self::H::U*>* = self::B<dynamic, dynamic>*, U extends self::C<self::H::T*, self::H::U*>* = self::C<dynamic, dynamic>*, V extends self::A<self::H::V*>* = self::A<dynamic>*, W extends self::H::S* = self::A<dynamic>*, X extends self::H::T* = self::B<dynamic, dynamic>*, Y extends self::H::U* = self::C<dynamic, dynamic>*, Z extends self::H::V* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::H<self::H::S*, self::H::T*, self::H::U*, self::H::V*, self::H::W*, self::H::X*, self::H::Y*, self::H::Z*>*
+class H<S extends self::A<self::H::S> = self::A<dynamic>, T extends self::B<self::H::T, self::H::U> = self::B<dynamic, dynamic>, U extends self::C<self::H::T, self::H::U> = self::C<dynamic, dynamic>, V extends self::A<self::H::V> = self::A<dynamic>, W extends self::H::S = self::A<dynamic>, X extends self::H::T = self::B<dynamic, dynamic>, Y extends self::H::U = self::C<dynamic, dynamic>, Z extends self::H::V = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::H<self::H::S, self::H::T, self::H::U, self::H::V, self::H::W, self::H::X, self::H::Y, self::H::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class I<T extends invalid-type, U extends self::I::Y* = invalid-type, V extends (self::I::W*) →* dynamic = (Null) →* dynamic, W extends (self::I::X*) →* dynamic = (Null) →* dynamic, X extends (self::I::V*) →* dynamic = (Null) →* dynamic, Y extends self::I::Z* = invalid-type, Z extends self::I::T* = invalid-type> extends core::Object {
- synthetic constructor •() → self::I<self::I::T*, self::I::U*, self::I::V*, self::I::W*, self::I::X*, self::I::Y*, self::I::Z*>*
+class I<T extends invalid-type, U extends self::I::Y% = invalid-type, V extends (self::I::W) → dynamic = (Never) → dynamic, W extends (self::I::X) → dynamic = (Never) → dynamic, X extends (self::I::V) → dynamic = (Never) → dynamic, Y extends self::I::Z% = invalid-type, Z extends self::I::T% = invalid-type> extends core::Object {
+ synthetic constructor •() → self::I<self::I::T%, self::I::U%, self::I::V, self::I::W, self::I::X, self::I::Y%, self::I::Z%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class J<S extends (self::J::U*) →* self::J::T* = (Null) →* dynamic, T extends (self::J::S*) →* self::J::U* = (Null) →* dynamic, U extends (self::J::T*) →* self::J::S* = (Null) →* dynamic, V extends self::J::W* = dynamic, W extends self::J::X* = dynamic, X extends (self::J::V*) →* self::J::Y* = (Null) →* dynamic, Y extends self::J::Z* = dynamic, Z extends self::J::X* = dynamic> extends core::Object {
- synthetic constructor •() → self::J<self::J::S*, self::J::T*, self::J::U*, self::J::V*, self::J::W*, self::J::X*, self::J::Y*, self::J::Z*>*
+class J<S extends (self::J::U) → self::J::T = (Never) → dynamic, T extends (self::J::S) → self::J::U = (Never) → dynamic, U extends (self::J::T) → self::J::S = (Never) → dynamic, V extends self::J::W = dynamic, W extends self::J::X = dynamic, X extends (self::J::V) → self::J::Y = (Never) → dynamic, Y extends self::J::Z = dynamic, Z extends self::J::X = dynamic> extends core::Object {
+ synthetic constructor •() → self::J<self::J::S, self::J::T, self::J::U, self::J::V, self::J::W, self::J::X, self::J::Y, self::J::Z>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::D<self::A<dynamic>*, self::A<dynamic>*>* d;
-static field self::E<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>* e;
-static field self::F<core::num*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, self::C<self::B<self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*>*, dynamic>*>* f;
-static field self::G<core::num*, self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*, self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, self::C<self::B<self::B<core::num*, dynamic>*, self::C<dynamic, core::num*>*>*, dynamic>*>* g;
-static field self::H<self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*, self::A<dynamic>*, self::B<dynamic, dynamic>*, self::C<dynamic, dynamic>*, self::A<dynamic>*>* h;
-static field self::I<invalid-type, invalid-type, (Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, invalid-type, invalid-type>* i;
-static field self::J<(Null) →* dynamic, (Null) →* dynamic, (Null) →* dynamic, dynamic, dynamic, (Null) →* dynamic, dynamic, dynamic>* j;
+static field self::D<self::A<dynamic>, self::A<dynamic>> d = throw "";
+static field self::E<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>> e = throw "";
+static field self::F<core::num, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, self::C<self::B<self::B<dynamic, dynamic>, self::C<dynamic, dynamic>>, dynamic>> f = throw "";
+static field self::G<core::num, self::B<core::num, dynamic>, self::C<dynamic, core::num>, self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, self::C<self::B<self::B<core::num, dynamic>, self::C<dynamic, core::num>>, dynamic>> g = throw "";
+static field self::H<self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>, self::A<dynamic>, self::B<dynamic, dynamic>, self::C<dynamic, dynamic>, self::A<dynamic>> h = throw "";
+static field self::I<invalid-type, invalid-type, (Never) → dynamic, (Never) → dynamic, (Never) → dynamic, invalid-type, invalid-type> i = throw "";
+static field self::J<(Never) → dynamic, (Never) → dynamic, (Never) → dynamic, dynamic, dynamic, (Never) → dynamic, dynamic, dynamic> j = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart
index e2b5f71..b5ecd4c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant and contravariant occurrences of the same
// type variable from the set of mutually dependent type variables in the bounds
// of all of these type variables are replaced with `dynamic` and Null
@@ -11,38 +11,38 @@
class C1<X extends X Function(Y), Y extends X Function(Y)> {}
-C1 c1;
+C1 c1 = throw '';
class C2<X extends X Function(Y), Y extends Y Function(X)> {}
-C2 c2;
+C2 c2 = throw '';
class C3<X extends X Function(X, Y), Y extends X Function(X, Y)> {}
-C3 c3;
+C3 c3 = throw '';
class C4<X extends X Function(X, Y), Y extends Y Function(X, Y)> {}
-C4 c4;
+C4 c4 = throw '';
class D1<X extends B<X, Y>, Y extends X Function(Y)> {}
-D1 d1;
+D1 d1 = throw '';
class D2<X extends B<X, Y>, Y extends Y Function(X)> {}
-D2 d2;
+D2 d2 = throw '';
class D3<X extends B<X, Y>, Y extends X Function(X, Y)> {}
-D3 d3;
+D3 d3 = throw '';
class D4<X extends B<X, Y>, Y extends Y Function(X, Y)> {}
-D4 d4;
+D4 d4 = throw '';
class E<X extends X Function(X)> {}
-E e;
+E e = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline.expect
index 96be19f..2341778 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline.expect
@@ -1,39 +1,38 @@
-// @dart = 2.9
class B<X, Y> {}
class C1<X extends X Function(Y), Y extends X Function(Y)> {}
-C1 c1;
+C1 c1 = throw '';
class C2<X extends X Function(Y), Y extends Y Function(X)> {}
-C2 c2;
+C2 c2 = throw '';
class C3<X extends X Function(X, Y), Y extends X Function(X, Y)> {}
-C3 c3;
+C3 c3 = throw '';
class C4<X extends X Function(X, Y), Y extends Y Function(X, Y)> {}
-C4 c4;
+C4 c4 = throw '';
class D1<X extends B<X, Y>, Y extends X Function(Y)> {}
-D1 d1;
+D1 d1 = throw '';
class D2<X extends B<X, Y>, Y extends Y Function(X)> {}
-D2 d2;
+D2 d2 = throw '';
class D3<X extends B<X, Y>, Y extends X Function(X, Y)> {}
-D3 d3;
+D3 d3 = throw '';
class D4<X extends B<X, Y>, Y extends Y Function(X, Y)> {}
-D4 d4;
+D4 d4 = throw '';
class E<X extends X Function(X)> {}
-E e;
+E e = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline_modelled.expect
index 9d3a4bb..a366f73 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.textual_outline_modelled.expect
@@ -1,13 +1,12 @@
-// @dart = 2.9
-C1 c1;
-C2 c2;
-C3 c3;
-C4 c4;
-D1 d1;
-D2 d2;
-D3 d3;
-D4 d4;
-E e;
+C1 c1 = throw '';
+C2 c2 = throw '';
+C3 c3 = throw '';
+C4 c4 = throw '';
+D1 d1 = throw '';
+D2 d2 = throw '';
+D3 d3 = throw '';
+D4 d4 = throw '';
+E e = throw '';
class B<X, Y> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.expect
index 381fd70..aa8d0b4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.expect
@@ -1,164 +1,64 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
-static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
-static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
-static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
-static field self::E<(Null) →* dynamic>* e;
+static field self::C1<(Never) → dynamic, (Never) → dynamic> c1 = throw "";
+static field self::C2<(Never) → dynamic, (Never) → dynamic> c2 = throw "";
+static field self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic> c3 = throw "";
+static field self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic> c4 = throw "";
+static field self::D1<self::B<dynamic, dynamic>, (Never) → dynamic> d1 = throw "";
+static field self::D2<self::B<dynamic, dynamic>, (Never) → dynamic> d2 = throw "";
+static field self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d3 = throw "";
+static field self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d4 = throw "";
+static field self::E<(Never) → dynamic> e = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.modular.expect
index 381fd70..aa8d0b4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.modular.expect
@@ -1,164 +1,64 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
-static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
-static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
-static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
-static field self::E<(Null) →* dynamic>* e;
+static field self::C1<(Never) → dynamic, (Never) → dynamic> c1 = throw "";
+static field self::C2<(Never) → dynamic, (Never) → dynamic> c2 = throw "";
+static field self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic> c3 = throw "";
+static field self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic> c4 = throw "";
+static field self::D1<self::B<dynamic, dynamic>, (Never) → dynamic> d1 = throw "";
+static field self::D2<self::B<dynamic, dynamic>, (Never) → dynamic> d2 = throw "";
+static field self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d3 = throw "";
+static field self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d4 = throw "";
+static field self::E<(Never) → dynamic> e = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.outline.expect
index b47cdbb..613bdb9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.outline.expect
@@ -1,155 +1,55 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
-static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
-static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
-static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
-static field self::E<(Null) →* dynamic>* e;
+static field self::C1<(Never) → dynamic, (Never) → dynamic> c1;
+static field self::C2<(Never) → dynamic, (Never) → dynamic> c2;
+static field self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic> c3;
+static field self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic> c4;
+static field self::D1<self::B<dynamic, dynamic>, (Never) → dynamic> d1;
+static field self::D2<self::B<dynamic, dynamic>, (Never) → dynamic> d2;
+static field self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d3;
+static field self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d4;
+static field self::E<(Never) → dynamic> e;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.transformed.expect
index 381fd70..aa8d0b4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence.dart.weak.transformed.expect
@@ -1,164 +1,64 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C1<(Null) →* dynamic, (Null) →* dynamic>* c1;
-static field self::C2<(Null) →* dynamic, (Null) →* dynamic>* c2;
-static field self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c3;
-static field self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>* c4;
-static field self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d1;
-static field self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>* d2;
-static field self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d3;
-static field self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>* d4;
-static field self::E<(Null) →* dynamic>* e;
+static field self::C1<(Never) → dynamic, (Never) → dynamic> c1 = throw "";
+static field self::C2<(Never) → dynamic, (Never) → dynamic> c2 = throw "";
+static field self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic> c3 = throw "";
+static field self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic> c4 = throw "";
+static field self::D1<self::B<dynamic, dynamic>, (Never) → dynamic> d1 = throw "";
+static field self::D2<self::B<dynamic, dynamic>, (Never) → dynamic> d2 = throw "";
+static field self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d3 = throw "";
+static field self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic> d4 = throw "";
+static field self::E<(Never) → dynamic> e = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart
index 29becd6..097cba9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that covariant and contravariant occurrences of the same
// type variable from the set of mutually dependent type variables in the bounds
// of all of these type variables are replaced with `dynamic` and Null
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline.expect
index 395a3e3..4c6bc43 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<X, Y> {}
class C1<X extends X Function(Y), Y extends X Function(Y)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline_modelled.expect
index da2b04c..df9101b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<X, Y> {}
class C1<X extends X Function(Y), Y extends X Function(Y)> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.expect
index 57e2111..c9056f03 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.expect
@@ -1,173 +1,73 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*>[];
-static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*>[];
-static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::E<(Null) →* dynamic>*>* le = <self::E<(Null) →* dynamic>*>[];
-static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me = <self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>{};
+static field core::List<self::C1<(Never) → dynamic, (Never) → dynamic>> lc1 = <self::C1<(Never) → dynamic, (Never) → dynamic>>[];
+static field core::Map<self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>> mc1 = <self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>>{};
+static field core::List<self::C2<(Never) → dynamic, (Never) → dynamic>> lc2 = <self::C2<(Never) → dynamic, (Never) → dynamic>>[];
+static field core::Map<self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>> mc2 = <self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>>{};
+static field core::List<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc3 = <self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>>[];
+static field core::Map<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc3 = <self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>>{};
+static field core::List<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc4 = <self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>>[];
+static field core::Map<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc4 = <self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>>{};
+static field core::List<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> ld1 = <self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>>[];
+static field core::Map<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> md1 = <self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>>{};
+static field core::List<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> ld2 = <self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>>[];
+static field core::Map<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> md2 = <self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>>{};
+static field core::List<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld3 = <self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>[];
+static field core::Map<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md3 = <self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>{};
+static field core::List<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld4 = <self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>[];
+static field core::Map<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md4 = <self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>{};
+static field core::List<self::E<(Never) → dynamic>> le = <self::E<(Never) → dynamic>>[];
+static field core::Map<self::E<(Never) → dynamic>, self::E<(Never) → dynamic>> me = <self::E<(Never) → dynamic>, self::E<(Never) → dynamic>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.modular.expect
index 57e2111..c9056f03 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.modular.expect
@@ -1,173 +1,73 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*>[];
-static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*>[];
-static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>[];
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>[];
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::E<(Null) →* dynamic>*>* le = <self::E<(Null) →* dynamic>*>[];
-static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me = <self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>{};
+static field core::List<self::C1<(Never) → dynamic, (Never) → dynamic>> lc1 = <self::C1<(Never) → dynamic, (Never) → dynamic>>[];
+static field core::Map<self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>> mc1 = <self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>>{};
+static field core::List<self::C2<(Never) → dynamic, (Never) → dynamic>> lc2 = <self::C2<(Never) → dynamic, (Never) → dynamic>>[];
+static field core::Map<self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>> mc2 = <self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>>{};
+static field core::List<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc3 = <self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>>[];
+static field core::Map<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc3 = <self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>>{};
+static field core::List<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc4 = <self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>>[];
+static field core::Map<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc4 = <self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>>{};
+static field core::List<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> ld1 = <self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>>[];
+static field core::Map<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> md1 = <self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>>{};
+static field core::List<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> ld2 = <self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>>[];
+static field core::Map<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> md2 = <self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>>{};
+static field core::List<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld3 = <self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>[];
+static field core::Map<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md3 = <self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>{};
+static field core::List<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld4 = <self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>[];
+static field core::Map<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md4 = <self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>{};
+static field core::List<self::E<(Never) → dynamic>> le = <self::E<(Never) → dynamic>>[];
+static field core::Map<self::E<(Never) → dynamic>, self::E<(Never) → dynamic>> me = <self::E<(Never) → dynamic>, self::E<(Never) → dynamic>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.outline.expect
index eee0aab..e553491 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.outline.expect
@@ -1,164 +1,64 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1;
-static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1;
-static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2;
-static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2;
-static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3;
-static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3;
-static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4;
-static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4;
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1;
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1;
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2;
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2;
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3;
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3;
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4;
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4;
-static field core::List<self::E<(Null) →* dynamic>*>* le;
-static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me;
+static field core::List<self::C1<(Never) → dynamic, (Never) → dynamic>> lc1;
+static field core::Map<self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>> mc1;
+static field core::List<self::C2<(Never) → dynamic, (Never) → dynamic>> lc2;
+static field core::Map<self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>> mc2;
+static field core::List<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc3;
+static field core::Map<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc3;
+static field core::List<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc4;
+static field core::Map<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc4;
+static field core::List<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> ld1;
+static field core::Map<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> md1;
+static field core::List<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> ld2;
+static field core::Map<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> md2;
+static field core::List<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld3;
+static field core::Map<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md3;
+static field core::List<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld4;
+static field core::Map<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md4;
+static field core::List<self::E<(Never) → dynamic>> le;
+static field core::Map<self::E<(Never) → dynamic>, self::E<(Never) → dynamic>> me;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.transformed.expect
index 57d3ec5..3b39227 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/mutual_dependence_in_literals.dart.weak.transformed.expect
@@ -1,173 +1,73 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class B<X extends core::Object* = dynamic, Y extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::X*, self::B::Y*>*
+class B<X extends core::Object? = dynamic, Y extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::X%, self::B::Y%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C1<X extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic, Y extends (self::C1::Y*) →* self::C1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C1<self::C1::X*, self::C1::Y*>*
+class C1<X extends (self::C1::Y) → self::C1::X = (Never) → dynamic, Y extends (self::C1::Y) → self::C1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C1<self::C1::X, self::C1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C2<X extends (self::C2::Y*) →* self::C2::X* = (Null) →* dynamic, Y extends (self::C2::X*) →* self::C2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C2<self::C2::X*, self::C2::Y*>*
+class C2<X extends (self::C2::Y) → self::C2::X = (Never) → dynamic, Y extends (self::C2::X) → self::C2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C2<self::C2::X, self::C2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C3<X extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic, Y extends (self::C3::X*, self::C3::Y*) →* self::C3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C3<self::C3::X*, self::C3::Y*>*
+class C3<X extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic, Y extends (self::C3::X, self::C3::Y) → self::C3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C3<self::C3::X, self::C3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C4<X extends (self::C4::X*, self::C4::Y*) →* self::C4::X* = (Null, Null) →* dynamic, Y extends (self::C4::X*, self::C4::Y*) →* self::C4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::C4<self::C4::X*, self::C4::Y*>*
+class C4<X extends (self::C4::X, self::C4::Y) → self::C4::X = (Never, Never) → dynamic, Y extends (self::C4::X, self::C4::Y) → self::C4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::C4<self::C4::X, self::C4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D1<X extends self::B<self::D1::X*, self::D1::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D1::Y*) →* self::D1::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D1<self::D1::X*, self::D1::Y*>*
+class D1<X extends self::B<self::D1::X, self::D1::Y> = self::B<dynamic, dynamic>, Y extends (self::D1::Y) → self::D1::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D1<self::D1::X, self::D1::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D2<X extends self::B<self::D2::X*, self::D2::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D2::X*) →* self::D2::Y* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D2<self::D2::X*, self::D2::Y*>*
+class D2<X extends self::B<self::D2::X, self::D2::Y> = self::B<dynamic, dynamic>, Y extends (self::D2::X) → self::D2::Y = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D2<self::D2::X, self::D2::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D3<X extends self::B<self::D3::X*, self::D3::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D3::X*, self::D3::Y*) →* self::D3::X* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D3<self::D3::X*, self::D3::Y*>*
+class D3<X extends self::B<self::D3::X, self::D3::Y> = self::B<dynamic, dynamic>, Y extends (self::D3::X, self::D3::Y) → self::D3::X = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D3<self::D3::X, self::D3::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class D4<X extends self::B<self::D4::X*, self::D4::Y*>* = self::B<dynamic, dynamic>*, Y extends (self::D4::X*, self::D4::Y*) →* self::D4::Y* = (Null, Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::D4<self::D4::X*, self::D4::Y*>*
+class D4<X extends self::B<self::D4::X, self::D4::Y> = self::B<dynamic, dynamic>, Y extends (self::D4::X, self::D4::Y) → self::D4::Y = (Never, Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::D4<self::D4::X, self::D4::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class E<X extends (self::E::X*) →* self::E::X* = (Null) →* dynamic> extends core::Object {
- synthetic constructor •() → self::E<self::E::X*>*
+class E<X extends (self::E::X) → self::E::X = (Never) → dynamic> extends core::Object {
+ synthetic constructor •() → self::E<self::E::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field core::List<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* lc1 = core::_GrowableList::•<self::C1<(Null) →* dynamic, (Null) →* dynamic>*>(0);
-static field core::Map<self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>* mc1 = <self::C1<(Null) →* dynamic, (Null) →* dynamic>*, self::C1<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* lc2 = core::_GrowableList::•<self::C2<(Null) →* dynamic, (Null) →* dynamic>*>(0);
-static field core::Map<self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>* mc2 = <self::C2<(Null) →* dynamic, (Null) →* dynamic>*, self::C2<(Null) →* dynamic, (Null) →* dynamic>*>{};
-static field core::List<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc3 = core::_GrowableList::•<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>(0);
-static field core::Map<self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc3 = <self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C3<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* lc4 = core::_GrowableList::•<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>(0);
-static field core::Map<self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>* mc4 = <self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*, self::C4<(Null, Null) →* dynamic, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld1 = core::_GrowableList::•<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>(0);
-static field core::Map<self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md1 = <self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D1<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* ld2 = core::_GrowableList::•<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>(0);
-static field core::Map<self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>* md2 = <self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*, self::D2<self::B<dynamic, dynamic>*, (Null) →* dynamic>*>{};
-static field core::List<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld3 = core::_GrowableList::•<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>(0);
-static field core::Map<self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md3 = <self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D3<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* ld4 = core::_GrowableList::•<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>(0);
-static field core::Map<self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>* md4 = <self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*, self::D4<self::B<dynamic, dynamic>*, (Null, Null) →* dynamic>*>{};
-static field core::List<self::E<(Null) →* dynamic>*>* le = core::_GrowableList::•<self::E<(Null) →* dynamic>*>(0);
-static field core::Map<self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>* me = <self::E<(Null) →* dynamic>*, self::E<(Null) →* dynamic>*>{};
+static field core::List<self::C1<(Never) → dynamic, (Never) → dynamic>> lc1 = core::_GrowableList::•<self::C1<(Never) → dynamic, (Never) → dynamic>>(0);
+static field core::Map<self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>> mc1 = <self::C1<(Never) → dynamic, (Never) → dynamic>, self::C1<(Never) → dynamic, (Never) → dynamic>>{};
+static field core::List<self::C2<(Never) → dynamic, (Never) → dynamic>> lc2 = core::_GrowableList::•<self::C2<(Never) → dynamic, (Never) → dynamic>>(0);
+static field core::Map<self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>> mc2 = <self::C2<(Never) → dynamic, (Never) → dynamic>, self::C2<(Never) → dynamic, (Never) → dynamic>>{};
+static field core::List<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc3 = core::_GrowableList::•<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>>(0);
+static field core::Map<self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc3 = <self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C3<(Never, Never) → dynamic, (Never, Never) → dynamic>>{};
+static field core::List<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> lc4 = core::_GrowableList::•<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>>(0);
+static field core::Map<self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>> mc4 = <self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>, self::C4<(Never, Never) → dynamic, (Never, Never) → dynamic>>{};
+static field core::List<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> ld1 = core::_GrowableList::•<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>>(0);
+static field core::Map<self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>> md1 = <self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D1<self::B<dynamic, dynamic>, (Never) → dynamic>>{};
+static field core::List<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> ld2 = core::_GrowableList::•<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>>(0);
+static field core::Map<self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>> md2 = <self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>, self::D2<self::B<dynamic, dynamic>, (Never) → dynamic>>{};
+static field core::List<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld3 = core::_GrowableList::•<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>(0);
+static field core::Map<self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md3 = <self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D3<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>{};
+static field core::List<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> ld4 = core::_GrowableList::•<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>(0);
+static field core::Map<self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>> md4 = <self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>, self::D4<self::B<dynamic, dynamic>, (Never, Never) → dynamic>>{};
+static field core::List<self::E<(Never) → dynamic>> le = core::_GrowableList::•<self::E<(Never) → dynamic>>(0);
+static field core::Map<self::E<(Never) → dynamic>, self::E<(Never) → dynamic>> me = <self::E<(Never) → dynamic>, self::E<(Never) → dynamic>>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart
index dd5cfb9..6bb14c5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that a compile-time error is generated when instantiate to
// bound can't be applied due to raw types with non-simple bounds. The
// non-simplicity in this test is due to having another raw type in the bound
@@ -13,6 +13,6 @@
class C<TypeV extends B> {}
-C c;
+C c = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline.expect
index c2ee308..e93a5b6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
class A<TypeT, TypeS extends TypeT> {}
class B<TypeU extends A> {}
class C<TypeV extends B> {}
-C c;
+C c = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline_modelled.expect
index 79ad1b7..b6eb7a7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-C c;
+C c = throw '';
class A<TypeT, TypeS extends TypeT> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect
index c15ea34..626890a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,50 +13,20 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::TypeV*>*
+class C<TypeV extends self::B<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::TypeV>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<self::B<dynamic>*>* c;
+static field self::C<self::B<dynamic>> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.modular.expect
index c15ea34..626890a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,50 +13,20 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::TypeV*>*
+class C<TypeV extends self::B<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::TypeV>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<self::B<dynamic>*>* c;
+static field self::C<self::B<dynamic>> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect
index b64816e..22c8388 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,48 +13,18 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::TypeV*>*
+class C<TypeV extends self::B<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::TypeV>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<self::B<dynamic>*>* c;
+static field self::C<self::B<dynamic>> c;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect
index c15ea34..626890a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_non_simple.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,50 +13,20 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class C<TypeV extends self::B<dynamic>*> extends core::Object {
- synthetic constructor •() → self::C<self::C::TypeV*>*
+class C<TypeV extends self::B<dynamic>> extends core::Object {
+ synthetic constructor •() → self::C<self::C::TypeV>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::C<self::B<dynamic>*>* c;
+static field self::C<self::B<dynamic>> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart
index ea27509..e026660 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that a compile-time error is generated when instantiate to
// bound can't be applied due to raw types with non-simple bounds. The
// non-simplicity in this test is due to dependencies between type variables.
@@ -10,6 +10,6 @@
class B<TypeU extends A> {}
-B b;
+B b = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline.expect
index f091f4e..fb571d9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
class A<TypeT, TypeS extends TypeT> {}
class B<TypeU extends A> {}
-B b;
+B b = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline_modelled.expect
index bafa4e3..323c659 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-B b;
+B b = throw '';
class A<TypeT, TypeS extends TypeT> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.expect
index a052bc5..18023ea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,35 +13,15 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<dynamic>* b;
+static field self::B<dynamic> b = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.modular.expect
index a052bc5..18023ea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,35 +13,15 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<dynamic>* b;
+static field self::B<dynamic> b = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.outline.expect
index b6852b4..6755c00 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<dynamic>* b;
+static field self::B<dynamic> b;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.transformed.expect
index a052bc5..18023ea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_bound_due_to_variables.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,35 +13,15 @@
import self as self;
import "dart:core" as core;
-class A<TypeT extends core::Object* = dynamic, TypeS extends self::A::TypeT* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::TypeT*, self::A::TypeS*>*
+class A<TypeT extends core::Object? = dynamic, TypeS extends self::A::TypeT% = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::TypeT%, self::A::TypeS%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<TypeU extends self::A<dynamic, dynamic>* = dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::TypeU*>*
+class B<TypeU extends self::A<dynamic, dynamic> = dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::TypeU>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::B<dynamic>* b;
+static field self::B<dynamic> b = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart
index 7a10a41..708063b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart
@@ -1,7 +1,9 @@
// Copyright (c) 2018, 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.
+
// @dart=2.9
+
// This test checks that the cyclic non-simplicity issues are detected in case
// when both class declaration and a parametrized typedef participate in the
// cycle.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.expect
index a8be06f..42c263c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.expect
@@ -2,18 +2,18 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Error: Type variables can't have generic function types in their bounds.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Error: Type variables can't have generic function types in their bounds.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:30: Context: Bound of this variable references raw type 'Hest'.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Context: Bound of this variable references raw type 'Fisk'.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.modular.expect
index a8be06f..42c263c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.modular.expect
@@ -2,18 +2,18 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Error: Type variables can't have generic function types in their bounds.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Error: Type variables can't have generic function types in their bounds.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:30: Context: Bound of this variable references raw type 'Hest'.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Context: Bound of this variable references raw type 'Fisk'.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.outline.expect
index 6f257ee..966cb04 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.outline.expect
@@ -2,18 +2,18 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Error: Type variables can't have generic function types in their bounds.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Error: Type variables can't have generic function types in their bounds.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:30: Context: Bound of this variable references raw type 'Hest'.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Context: Bound of this variable references raw type 'Fisk'.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.transformed.expect
index a8be06f..42c263c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart.weak.transformed.expect
@@ -2,18 +2,18 @@
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Error: Type variables can't have generic function types in their bounds.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Error: Type variables can't have generic function types in their bounds.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:13:30: Context: Bound of this variable references raw type 'Hest'.
// typedef Fisk = void Function<TypeY extends Hest>();
// ^^^^^
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle.dart:11:12: Context: Bound of this variable references raw type 'Fisk'.
// class Hest<TypeX extends Fisk> {}
// ^^^^^
//
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart
new file mode 100644
index 0000000..d3acace
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart
@@ -0,0 +1,13 @@
+// Copyright (c) 2018, 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.
+
+// This test checks that the cyclic non-simplicity issues are detected in case
+// when both class declaration and a parametrized typedef participate in the
+// cycle.
+
+class Hest<TypeX extends Fisk> {}
+
+typedef Fisk = void Function<TypeY extends Hest>();
+
+main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.textual_outline.expect
new file mode 100644
index 0000000..e977e49
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.textual_outline.expect
@@ -0,0 +1,4 @@
+class Hest<TypeX extends Fisk> {}
+
+typedef Fisk = void Function<TypeY extends Hest>();
+main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.textual_outline_modelled.expect
new file mode 100644
index 0000000..7213ffd
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.textual_outline_modelled.expect
@@ -0,0 +1,4 @@
+class Hest<TypeX extends Fisk> {}
+
+main() {}
+typedef Fisk = void Function<TypeY extends Hest>();
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.expect
new file mode 100644
index 0000000..d02480f
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// class Hest<TypeX extends Fisk> {}
+// ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef Fisk = <TypeY extends core::Object? = dynamic>() → void;
+class Hest<TypeX extends <TypeY extends core::Object? = dynamic>() → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.modular.expect
new file mode 100644
index 0000000..d02480f
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.modular.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// class Hest<TypeX extends Fisk> {}
+// ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef Fisk = <TypeY extends core::Object? = dynamic>() → void;
+class Hest<TypeX extends <TypeY extends core::Object? = dynamic>() → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.outline.expect
new file mode 100644
index 0000000..4514a42
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.outline.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// class Hest<TypeX extends Fisk> {}
+// ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef Fisk = <TypeY extends core::Object? = dynamic>() → void;
+class Hest<TypeX extends <TypeY extends core::Object? = dynamic>() → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
+ ;
+}
+static method main() → dynamic
+ ;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.transformed.expect
new file mode 100644
index 0000000..d02480f
--- /dev/null
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart.weak.transformed.expect
@@ -0,0 +1,25 @@
+library /*isNonNullableByDefault*/;
+//
+// Problems in library:
+//
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:9: Error: Generic type 'Fisk' can't be used without type arguments in the bounds of its own type variables. It is referenced indirectly through 'Hest'.
+// Try providing type arguments to 'Hest' here or to some other raw types in the bounds along the reference chain.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:11:30: Context: Bound of this variable references raw type 'Hest'.
+// typedef Fisk = void Function<TypeY extends Hest>();
+// ^^^^^
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_class_parametrized_typedef_cycle2.dart:9:12: Context: Bound of this variable references raw type 'Fisk'.
+// class Hest<TypeX extends Fisk> {}
+// ^^^^^
+//
+import self as self;
+import "dart:core" as core;
+
+typedef Fisk = <TypeY extends core::Object? = dynamic>() → void;
+class Hest<TypeX extends <TypeY extends core::Object? = dynamic>() → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
+ : super core::Object::•()
+ ;
+}
+static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart
index fc13d78..5aebdc0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the cyclic non-simplicity detection works in case when
// both class declarations and typedefs participate in the cycle.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline.expect
index d617fa8..f524d0c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Fisk> {}
typedef void Fisk<TypeY extends Hest>();
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline_modelled.expect
index d1f5a32..b7b4f11 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Fisk> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect
index 1adc8bcb..27b77b9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,20 +16,10 @@
import self as self;
import "dart:core" as core;
-typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+typedef Fisk<unrelated TypeY extends core::Object? = dynamic> = () → void;
+class Hest<TypeX extends () → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.modular.expect
index 1adc8bcb..27b77b9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,20 +16,10 @@
import self as self;
import "dart:core" as core;
-typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+typedef Fisk<unrelated TypeY extends core::Object? = dynamic> = () → void;
+class Hest<TypeX extends () → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect
index 1828b6d..03b2ff15 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,20 +16,10 @@
import self as self;
import "dart:core" as core;
-typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+typedef Fisk<unrelated TypeY extends core::Object? = dynamic> = () → void;
+class Hest<TypeX extends () → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect
index 1adc8bcb..27b77b9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_class_typedef_cycle.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -16,20 +16,10 @@
import self as self;
import "dart:core" as core;
-typedef Fisk<unrelated TypeY extends core::Object* = dynamic> = () →* void;
-class Hest<TypeX extends () →* void> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+typedef Fisk<unrelated TypeY extends core::Object? = dynamic> = () → void;
+class Hest<TypeX extends () → void> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart
index e3b3f29..5df69f7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the use of a raw generic type in the bounds of its own
// type variables is recognized and reported as a compile-time error.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline.expect
index 3a179d7..bd9ba50 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline_modelled.expect
index 3a179d7..bd9ba50 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.expect
index a6180cf..7ec133a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.modular.expect
index a6180cf..7ec133a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.outline.expect
index 920ce20..148665e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.transformed.expect
index a6180cf..7ec133a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart
index 542b729..2703630 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the error is reported for all type variables that
// reference the raw generic type they are defined on.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline.expect
index 5125405..ff0266b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest, TypeY extends Hest> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline_modelled.expect
index 5125405..ff0266b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest, TypeY extends Hest> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.expect
index 3cc0758..22ce490 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -15,19 +15,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic, TypeY extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*, self::Hest::TypeY*>*
+class Hest<TypeX extends core::Object? = dynamic, TypeY extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%, self::Hest::TypeY%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.modular.expect
index 3cc0758..22ce490 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -15,19 +15,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic, TypeY extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*, self::Hest::TypeY*>*
+class Hest<TypeX extends core::Object? = dynamic, TypeY extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%, self::Hest::TypeY%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.outline.expect
index 0ad5f58..e2b216d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -15,19 +15,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic, TypeY extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*, self::Hest::TypeY*>*
+class Hest<TypeX extends core::Object? = dynamic, TypeY extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%, self::Hest::TypeY%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.transformed.expect
index 3cc0758..22ce490 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_for_each.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -15,19 +15,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic, TypeY extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*, self::Hest::TypeY*>*
+class Hest<TypeX extends core::Object? = dynamic, TypeY extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%, self::Hest::TypeY%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart
index 42359be..a72f472 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the error message is not duplicated in case when the
// raw generic type is used more than once in the bound of its own type
// variable.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline.expect
index d029c13..c2a3766 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Map<Hest, Hest>> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline_modelled.expect
index d029c13..c2a3766 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Map<Hest, Hest>> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.expect
index 637253f..2f66487 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.modular.expect
index 637253f..2f66487 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.outline.expect
index e954708..7af893c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.transformed.expect
index 637253f..2f66487 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_co_inductive_no_dup.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -10,19 +10,9 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart
index cd3608a..91a3b2b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that same generic type passed as a type argument to itself
// doesn't cause issues in the mechanism for detection of non-simple bounds.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline.expect
index c23f912..d637216 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX> {}
class Fisk<TypeY extends Hest<Hest<Object>>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline_modelled.expect
index 6328216..e5df9718 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Fisk<TypeY extends Hest<Hest<Object>>> {}
class Hest<TypeX> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect
index f205aa6..4a53f08 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object>>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.modular.expect
index f205aa6..4a53f08 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.modular.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object>>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect
index 8159df5..802d82d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.outline.expect
@@ -1,34 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object>>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect
index f205aa6..4a53f08 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_folded_regress.dart.weak.transformed.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<core::Object*>*>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<core::Object>>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart
index bb94997..e7415fe 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that an error is reported on all type variables that have a
// raw generic type in their bounds in case this generic type has non-simple
// bounds.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline.expect
index fc6ec7e..dec8c30 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest<TypeX>> {}
class Fisk<TypeY extends Hest, TypeZ extends Hest> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline_modelled.expect
index 06d86f8..e8fe427 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Fisk<TypeY extends Hest, TypeZ extends Hest> {}
class Hest<TypeX extends Hest<TypeX>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.expect
index 340e597..bfc473d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,34 +21,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*, self::Fisk::TypeZ*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY, self::Fisk::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.modular.expect
index 340e597..bfc473d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,34 +21,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*, self::Fisk::TypeZ*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY, self::Fisk::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.outline.expect
index bcabd56..b7a6e5b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,33 +21,13 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*, self::Fisk::TypeZ*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY, self::Fisk::TypeZ>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.transformed.expect
index 340e597..bfc473d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_for_each.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,34 +21,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*, self::Fisk::TypeZ*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic, TypeZ extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY, self::Fisk::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart
index fd7f0ae..696a47f 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the use of a raw generic type with non-simple bounds in
// a bound of a type variable is detected when that generic type comes from a
// compiled .dill file.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline.expect
index 91c2f07..ae4efd5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'dart:collection';
class Hest<X extends LinkedListEntry> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline_modelled.expect
index 91c2f07..ae4efd5 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'dart:collection';
class Hest<X extends LinkedListEntry> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.expect
index 5f8978b..b54c2d9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,19 +13,9 @@
import "dart:collection";
-class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::X*>*
+class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.modular.expect
index 5f8978b..b54c2d9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,19 +13,9 @@
import "dart:collection";
-class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::X*>*
+class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.outline.expect
index 59930e9..86778b3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,19 +13,9 @@
import "dart:collection";
-class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::X*>*
+class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.transformed.expect
index 5f8978b..b54c2d9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_from_compiled.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,19 +13,9 @@
import "dart:collection";
-class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::X*>*
+class Hest<X extends col::LinkedListEntry<col::LinkedListEntry<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart
index 22fb32f..6345d59 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart
@@ -1,13 +1,15 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
+// @dart=2.13
+
// This test checks that the use of generic function types in the bound of a
// type variable is detected early and doesn't cause issues to the mechanism for
// detection of non-simple bounds.
class Hest<TypeX extends Hest<TypeX>> {}
-class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline.expect
index 778bd3e..685ff92 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline.expect
@@ -1,6 +1,6 @@
-// @dart = 2.9
+// @dart = 2.13
class Hest<TypeX extends Hest<TypeX>> {}
-class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline_modelled.expect
index cadda6a..552afea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.textual_outline_modelled.expect
@@ -1,5 +1,5 @@
-// @dart = 2.9
-class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+// @dart = 2.13
+class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
class Hest<TypeX extends Hest<TypeX>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.expect
index 74416db..170b8ea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:11:12: Error: Type variables can't have generic function types in their bounds.
-// class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:13:12: Error: Type variables can't have generic function types in their bounds.
+// class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
// ^^^^^
//
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends <TypeZ extends self::Hest<Never> = dynamic>(TypeZ) → dynamic = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.modular.expect
index 74416db..170b8ea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.modular.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:11:12: Error: Type variables can't have generic function types in their bounds.
-// class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:13:12: Error: Type variables can't have generic function types in their bounds.
+// class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
// ^^^^^
//
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends <TypeZ extends self::Hest<Never> = dynamic>(TypeZ) → dynamic = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.outline.expect
index fd3806b..60296ee 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.outline.expect
@@ -1,41 +1,21 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:11:12: Error: Type variables can't have generic function types in their bounds.
-// class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:13:12: Error: Type variables can't have generic function types in their bounds.
+// class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
// ^^^^^
//
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends <TypeZ extends self::Hest<Never> = dynamic>(TypeZ) → dynamic = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.transformed.expect
index 74416db..170b8ea 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart.weak.transformed.expect
@@ -1,42 +1,22 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
-// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:11:12: Error: Type variables can't have generic function types in their bounds.
-// class Fisk<TypeY extends Function<TypeZ extends Hest<Null>>(TypeZ)> {}
+// pkg/front_end/testcases/instantiate_to_bound/non_simple_generic_function_in_bound_regress.dart:13:12: Error: Type variables can't have generic function types in their bounds.
+// class Fisk<TypeY extends Function<TypeZ extends Hest<Never>>(TypeZ)> {}
// ^^^^^
//
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends <TypeZ extends self::Hest<Null>* = dynamic>(TypeZ*) →* dynamic = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends <TypeZ extends self::Hest<Never> = dynamic>(TypeZ) → dynamic = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart
index 9721dda..496b166 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that an error is reported on all raw generic types with
// non-simple bounds used in the bound of the same type variable.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline.expect
index 59d0dd8..2138431 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest<TypeX>> {}
class Fisk<TypeY extends Fisk<TypeY>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline_modelled.expect
index 3762b1e..c60a816 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Fisk<TypeY extends Fisk<TypeY>> {}
class Hest<TypeX extends Hest<TypeX>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.expect
index e411b58..7997d18 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,49 +21,19 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY*>* = self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY> = self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Fisk<self::Fisk<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>>, self::Fisk<self::Fisk<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.modular.expect
index e411b58..7997d18 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,49 +21,19 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY*>* = self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY> = self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Fisk<self::Fisk<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>>, self::Fisk<self::Fisk<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.outline.expect
index 8f5be00..0118f8d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,47 +21,17 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY*>* = self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY> = self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Fisk<self::Fisk<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>>, self::Fisk<self::Fisk<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.transformed.expect
index e411b58..7997d18 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -21,49 +21,19 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY*>* = self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Fisk<self::Fisk::TypeY> = self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Fisk<self::Fisk<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends core::Map<self::Hest<self::Hest<dynamic>>, self::Fisk<self::Fisk<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart
index a802adc..e2c8f9c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that a cyclic dependence is not reported twice in case the
// class declarations from the cycle are in different libraries, but have the
// same name within their respective libraries.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline.expect
index 723934f..cd141ca 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import './non_simple_many_libs_same_name_cycle_lib.dart' as lib;
class Hest<TypeX extends lib.Hest> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline_modelled.expect
index 723934f..cd141ca 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import './non_simple_many_libs_same_name_cycle_lib.dart' as lib;
class Hest<TypeX extends lib.Hest> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect
index 0124e15..9ea9bba 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,42 +18,22 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle_lib.dart" as lib;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library non_simple_many_libs_same_name_cycle_lib;
+library non_simple_many_libs_same_name_cycle_lib /*isNonNullableByDefault*/;
import self as self2;
import "non_simple_many_libs_same_name_cycle.dart" as self;
import "dart:core" as core;
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
+class Hest<TypeY extends self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self2::Hest<self2::Hest::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.modular.expect
index 0124e15..9ea9bba 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,42 +18,22 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle_lib.dart" as lib;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library non_simple_many_libs_same_name_cycle_lib;
+library non_simple_many_libs_same_name_cycle_lib /*isNonNullableByDefault*/;
import self as self2;
import "non_simple_many_libs_same_name_cycle.dart" as self;
import "dart:core" as core;
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
+class Hest<TypeY extends self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self2::Hest<self2::Hest::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect
index e783ebd..577f5e3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,41 +18,21 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle_lib.dart" as lib;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
-library non_simple_many_libs_same_name_cycle_lib;
+library non_simple_many_libs_same_name_cycle_lib /*isNonNullableByDefault*/;
import self as self2;
import "non_simple_many_libs_same_name_cycle.dart" as self;
import "dart:core" as core;
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
+class Hest<TypeY extends self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self2::Hest<self2::Hest::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect
index 0124e15..9ea9bba 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -18,42 +18,22 @@
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle_lib.dart" as lib;
-class Hest<TypeX extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
-library non_simple_many_libs_same_name_cycle_lib;
+library non_simple_many_libs_same_name_cycle_lib /*isNonNullableByDefault*/;
import self as self2;
import "non_simple_many_libs_same_name_cycle.dart" as self;
import "dart:core" as core;
import "org-dartlang-testcase:///non_simple_many_libs_same_name_cycle.dart" as lib;
-class Hest<TypeY extends self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self2::Hest<self2::Hest::TypeY*>*
+class Hest<TypeY extends self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self2::Hest<self2::Hest::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle_lib.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle_lib.dart
index c60b253..a716476 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle_lib.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_many_libs_same_name_cycle_lib.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that a cyclic dependence is not reported twice in case the
// class declarations from the cycle are in different libraries, but have the
// same name within their respective libraries.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart
index f71e5ca..dbedd5a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that the error message is not duplicated in the case when
// the same raw generic type with non-simple bounds is used in the bound of a
// type variable.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline.expect
index 0908971..9d9cb28 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest<TypeX>> {}
class Fisk<TypeY extends Map<Hest, Hest>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline_modelled.expect
index 0c6ea3c..b11d407 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Fisk<TypeY extends Map<Hest, Hest>> {}
class Hest<TypeX extends Hest<TypeX>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.expect
index 28d37ca..67288ba 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Hest<self::Hest<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>>, self::Hest<self::Hest<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.modular.expect
index 28d37ca..67288ba 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Hest<self::Hest<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>>, self::Hest<self::Hest<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.outline.expect
index 0ba251f..44aebed 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,33 +13,13 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Hest<self::Hest<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>>, self::Hest<self::Hest<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.transformed.expect
index 28d37ca..67288ba 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_no_dup.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>*>*, self::Hest<self::Hest<dynamic>*>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends core::Map<self::Hest<self::Hest<dynamic>>, self::Hest<self::Hest<dynamic>>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart
index 0de3b0e..d6b640b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that in the case of an error on a class related to
// non-simple bounds, the implied errors on other classes that reference the
// erroneous one in the bounds of their type variables is not reported.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline.expect
index dda5df1..98cfbeb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest<TypeX>> {}
class Fisk<TypeY extends Hest> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline_modelled.expect
index 5843d4a..568af17 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Fisk<TypeY extends Hest> {}
class Hest<TypeX extends Hest<TypeX>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect
index 34ba795..20dc388 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,49 +13,19 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.modular.expect
index 34ba795..20dc388 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,49 +13,19 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect
index 4c03b0d..15ab9c7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,47 +13,17 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect
index 34ba795..20dc388 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_suppress_consequence.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,49 +13,19 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Naebdyr<TypeZ extends self::Fisk<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ*>*
+class Naebdyr<TypeZ extends self::Fisk<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Naebdyr<self::Naebdyr::TypeZ>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart
index b789886..8dc56a0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that an attempt to use a raw generic type with non-simple
// bounds is detected and reported as a compile-time error in case the
// non-simple bound is due to the use of the type variable from the same
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline.expect
index 1aa72de..0755cda 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Hest<TypeX extends Hest<TypeX>> {}
class Fisk<TypeY extends Hest> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline_modelled.expect
index 340ced2..b1177bb 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class Fisk<TypeY extends Hest> {}
class Hest<TypeX extends Hest<TypeX>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.expect
index 5334658..b1b7391 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.modular.expect
index 5334658..b1b7391 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.outline.expect
index 248c6b9..f9c0e34 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.outline.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,33 +13,13 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.transformed.expect
index 5334658..b1b7391 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/non_simple_variables_from_same.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
//
// Problems in library:
//
@@ -13,34 +13,14 @@
import self as self;
import "dart:core" as core;
-class Hest<TypeX extends self::Hest<self::Hest::TypeX*>* = self::Hest<dynamic>*> extends core::Object {
- synthetic constructor •() → self::Hest<self::Hest::TypeX*>*
+class Hest<TypeX extends self::Hest<self::Hest::TypeX> = self::Hest<dynamic>> extends core::Object {
+ synthetic constructor •() → self::Hest<self::Hest::TypeX>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Fisk<TypeY extends self::Hest<self::Hest<dynamic>*>* = dynamic> extends core::Object {
- synthetic constructor •() → self::Fisk<self::Fisk::TypeY*>*
+class Fisk<TypeY extends self::Hest<self::Hest<dynamic>> = dynamic> extends core::Object {
+ synthetic constructor •() → self::Fisk<self::Fisk::TypeY>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart
index 67fb1d6..a4e73c8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides `dynamic` as the type
// argument for those positions in type argument lists of interface types that
// have the bound omitted in the corresponding type parameter, regardless of
@@ -13,12 +13,12 @@
class A<T> {}
-A a;
-DoubleLinkedQueue c;
+A a = throw '';
+DoubleLinkedQueue c = throw '';
class C {
- A foo() => null;
- DoubleLinkedQueue baz() => null;
+ A foo() => throw '';
+ DoubleLinkedQueue baz() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline.expect
index abd73b5..f48ee52 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
import 'dart:collection';
class A<T> {}
-A a;
-DoubleLinkedQueue c;
+A a = throw '';
+DoubleLinkedQueue c = throw '';
class C {
- A foo() => null;
- DoubleLinkedQueue baz() => null;
+ A foo() => throw '';
+ DoubleLinkedQueue baz() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline_modelled.expect
index 8d3fdea..c6a5bb0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.textual_outline_modelled.expect
@@ -1,14 +1,13 @@
-// @dart = 2.9
import 'dart:collection';
-A a;
-DoubleLinkedQueue c;
+A a = throw '';
+DoubleLinkedQueue c = throw '';
class A<T> {}
class C {
- A foo() => null;
- DoubleLinkedQueue baz() => null;
+ A foo() => throw '';
+ DoubleLinkedQueue baz() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.expect
index 8000a5e..5c25894 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo() → self::A<dynamic>*
- return null;
- method baz() → col::DoubleLinkedQueue<dynamic>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo() → self::A<dynamic>
+ return throw "";
+ method baz() → col::DoubleLinkedQueue<dynamic>
+ return throw "";
}
-static field self::A<dynamic>* a;
-static field col::DoubleLinkedQueue<dynamic>* c;
+static field self::A<dynamic> a = throw "";
+static field col::DoubleLinkedQueue<dynamic> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.modular.expect
index 8000a5e..5c25894 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.modular.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo() → self::A<dynamic>*
- return null;
- method baz() → col::DoubleLinkedQueue<dynamic>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo() → self::A<dynamic>
+ return throw "";
+ method baz() → col::DoubleLinkedQueue<dynamic>
+ return throw "";
}
-static field self::A<dynamic>* a;
-static field col::DoubleLinkedQueue<dynamic>* c;
+static field self::A<dynamic> a = throw "";
+static field col::DoubleLinkedQueue<dynamic> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.outline.expect
index 912e2e3..b013a278 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.outline.expect
@@ -1,43 +1,23 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method foo() → self::A<dynamic>*
+ method foo() → self::A<dynamic>
;
- method baz() → col::DoubleLinkedQueue<dynamic>*
+ method baz() → col::DoubleLinkedQueue<dynamic>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<dynamic>* a;
-static field col::DoubleLinkedQueue<dynamic>* c;
+static field self::A<dynamic> a;
+static field col::DoubleLinkedQueue<dynamic> c;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.transformed.expect
index 8000a5e..5c25894 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/omitted_bound.dart.weak.transformed.expect
@@ -1,44 +1,24 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "dart:collection" as col;
import "dart:collection";
-class A<T extends core::Object* = dynamic> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::Object? = dynamic> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo() → self::A<dynamic>*
- return null;
- method baz() → col::DoubleLinkedQueue<dynamic>*
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo() → self::A<dynamic>
+ return throw "";
+ method baz() → col::DoubleLinkedQueue<dynamic>
+ return throw "";
}
-static field self::A<dynamic>* a;
-static field col::DoubleLinkedQueue<dynamic>* c;
+static field self::A<dynamic> a = throw "";
+static field col::DoubleLinkedQueue<dynamic> c = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart
index c29f86e..772113a 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// interface types that are themselves used as bounds of type parameters.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline.expect
index 67c7bc5..7391350 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
class B<T extends A> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline_modelled.expect
index 67c7bc5..7391350 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<T extends num> {}
class B<T extends A> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect
index 97505bc..372d4df 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.modular.expect
index 97505bc..372d4df 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.modular.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect
index 86a3170..075da22 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.outline.expect
@@ -1,34 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect
index 97505bc..372d4df 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/raw_in_bound.dart.weak.transformed.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends core::num*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends core::num> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<T extends self::A<core::num*>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+class B<T extends self::A<core::num>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart
index e4578f4..8ecef66 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2019, 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.
-// @dart=2.9
+
class A<X extends Comparable<X>> {}
class B<Y extends A<dynamic>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline.expect
index 193369a..f965240 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X extends Comparable<X>> {}
class B<Y extends A<dynamic>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline_modelled.expect
index 193369a..f965240 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class A<X extends Comparable<X>> {}
class B<Y extends A<dynamic>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect
index 5ec3988..c45502c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Comparable<self::A::X*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Comparable<self::A::X> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.modular.expect
index 5ec3988..c45502c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.modular.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Comparable<self::A::X*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Comparable<self::A::X> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect
index c896444..83cf8a8 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.outline.expect
@@ -1,34 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Comparable<self::A::X*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Comparable<self::A::X> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::Y>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect
index 5ec3988..c45502c 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_in_bound.dart.weak.transformed.expect
@@ -1,35 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<X extends core::Comparable<self::A::X*>* = core::Comparable<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::X*>*
+class A<X extends core::Comparable<self::A::X> = core::Comparable<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::X>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class B<Y extends self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::B<self::B::Y*>*
+class B<Y extends self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::B<self::B::Y>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart
index 7b5f653..7365b49 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart
@@ -1,12 +1,12 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound produces correct super-bounded
// types from raw interface types that refer to F-bounded classes.
class A<T extends A<T>> {}
-A a;
+A a = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline.expect
index 3155529..199eace 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
class A<T extends A<T>> {}
-A a;
+A a = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline_modelled.expect
index f602854..1e99726 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-A a;
+A a = throw '';
class A<T extends A<T>> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.expect
index a0f95a2..cd8f266 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<self::A<dynamic>*>* a;
+static field self::A<self::A<dynamic>> a = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.modular.expect
index a0f95a2..cd8f266 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<self::A<dynamic>*>* a;
+static field self::A<self::A<dynamic>> a = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.outline.expect
index de9197c..86ed93e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<self::A<dynamic>*>* a;
+static field self::A<self::A<dynamic>> a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.transformed.expect
index a0f95a2..cd8f266 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/super_bounded_type.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-class A<T extends self::A<self::A::T*>* = self::A<dynamic>*> extends core::Object {
- synthetic constructor •() → self::A<self::A::T*>*
+class A<T extends self::A<self::A::T> = self::A<dynamic>> extends core::Object {
+ synthetic constructor •() → self::A<self::A::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field self::A<self::A<dynamic>*>* a;
+static field self::A<self::A<dynamic>> a = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart
index d8629fd..65f0c61 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// The test checks that instantiate to bound is applied to raw generic
// supertypes.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline.expect
index eb243ac..7ff14a2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'package:expect/expect.dart';
class B {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline_modelled.expect
index eb243ac..7ff14a2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
import 'package:expect/expect.dart';
class B {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect
index fbb18cb..fa776b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;
@@ -6,40 +6,20 @@
import "package:expect/expect.dart";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B*> extends core::Object {
- synthetic constructor •() → self::X<self::X::T*>*
+class X<T extends self::B> extends core::Object {
+ synthetic constructor •() → self::X<self::X::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Y extends self::X<self::B*> {
- synthetic constructor •() → self::Y*
+class Y extends self::X<self::B> {
+ synthetic constructor •() → self::Y
: super self::X::•()
;
}
static method main() → void {
- exp::Expect::isTrue(new self::Y::•() is self::X<self::B*>*);
+ exp::Expect::isTrue(new self::Y::•() is{ForNonNullableByDefault} self::X<self::B>);
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.modular.expect
index fbb18cb..fa776b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.modular.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;
@@ -6,40 +6,20 @@
import "package:expect/expect.dart";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B*> extends core::Object {
- synthetic constructor •() → self::X<self::X::T*>*
+class X<T extends self::B> extends core::Object {
+ synthetic constructor •() → self::X<self::X::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Y extends self::X<self::B*> {
- synthetic constructor •() → self::Y*
+class Y extends self::X<self::B> {
+ synthetic constructor •() → self::Y
: super self::X::•()
;
}
static method main() → void {
- exp::Expect::isTrue(new self::Y::•() is self::X<self::B*>*);
+ exp::Expect::isTrue(new self::Y::•() is{ForNonNullableByDefault} self::X<self::B>);
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect
index 43c0107..1491aca 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.outline.expect
@@ -1,39 +1,19 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B*> extends core::Object {
- synthetic constructor •() → self::X<self::X::T*>*
+class X<T extends self::B> extends core::Object {
+ synthetic constructor •() → self::X<self::X::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Y extends self::X<self::B*> {
- synthetic constructor •() → self::Y*
+class Y extends self::X<self::B> {
+ synthetic constructor •() → self::Y
;
}
static method main() → void
diff --git a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect
index fbb18cb..fa776b2 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/supertypes.dart.weak.transformed.expect
@@ -1,4 +1,4 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
import "package:expect/expect.dart" as exp;
@@ -6,40 +6,20 @@
import "package:expect/expect.dart";
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class X<T extends self::B*> extends core::Object {
- synthetic constructor •() → self::X<self::X::T*>*
+class X<T extends self::B> extends core::Object {
+ synthetic constructor •() → self::X<self::X::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-class Y extends self::X<self::B*> {
- synthetic constructor •() → self::Y*
+class Y extends self::X<self::B> {
+ synthetic constructor •() → self::Y
: super self::X::•()
;
}
static method main() → void {
- exp::Expect::isTrue(new self::Y::•() is self::X<self::B*>*);
+ exp::Expect::isTrue(new self::Y::•() is{ForNonNullableByDefault} self::X<self::B>);
}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart
index 30e8110..f5a8af0 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart
@@ -1,15 +1,15 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// typedef types that are used in the module outline.
typedef A<T extends num>(T p);
class B {
- foo(A a) => null;
- A bar() => null;
+ foo(A a) => throw '';
+ A bar() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline.expect
index a122c88..0387482 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
typedef A<T extends num>(T p);
class B {
- foo(A a) => null;
- A bar() => null;
+ foo(A a) => throw '';
+ A bar() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline_modelled.expect
index 58e1b8b..6f00e78 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.textual_outline_modelled.expect
@@ -1,7 +1,6 @@
-// @dart = 2.9
class B {
- A bar() => null;
- foo(A a) => null;
+ A bar() => throw '';
+ foo(A a) => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect
index 1e4c90a..eabb487 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- method foo((core::num*) →* dynamic a) → dynamic
- return null;
- method bar() → (core::num*) →* dynamic
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo((core::num) → dynamic a) → dynamic
+ return throw "";
+ method bar() → (core::num) → dynamic
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.modular.expect
index 1e4c90a..eabb487 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.modular.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- method foo((core::num*) →* dynamic a) → dynamic
- return null;
- method bar() → (core::num*) →* dynamic
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo((core::num) → dynamic a) → dynamic
+ return throw "";
+ method bar() → (core::num) → dynamic
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect
index bd8b1e2..36752cd 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.outline.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
;
- method foo((core::num*) →* dynamic a) → dynamic
+ method foo((core::num) → dynamic a) → dynamic
;
- method bar() → (core::num*) →* dynamic
+ method bar() → (core::num) → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect
index 1e4c90a..eabb487 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_instantiated_in_outline.dart.weak.transformed.expect
@@ -1,25 +1,15 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
class B extends core::Object {
- synthetic constructor •() → self::B*
+ synthetic constructor •() → self::B
: super core::Object::•()
;
- method foo((core::num*) →* dynamic a) → dynamic
- return null;
- method bar() → (core::num*) →* dynamic
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo((core::num) → dynamic a) → dynamic
+ return throw "";
+ method bar() → (core::num) → dynamic
+ return throw "";
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart
index 957d840..fb2e07e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// typedef types that are themselves used as type arguments of literal lists.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline.expect
index 045ad8b..62a0a7e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T extends num>(T p);
var a = <A>[];
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline_modelled.expect
index 780921f..f07241b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
main() {}
typedef A<T extends num>(T p);
var a = <A>[];
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect
index 954f38c..b54b5a7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::List<(core::num) → dynamic> a = <(core::num) → dynamic>[];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.modular.expect
index 954f38c..b54b5a7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::List<(core::num*) →* dynamic>* a = <(core::num*) →* dynamic>[];
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::List<(core::num) → dynamic> a = <(core::num) → dynamic>[];
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect
index 88f9288..27f2aa3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::List<(core::num*) →* dynamic>* a;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::List<(core::num) → dynamic> a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect
index bf9f10e..3f49e03 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list.dart.weak.transformed.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::List<(core::num*) →* dynamic>* a = core::_GrowableList::•<(core::num*) →* dynamic>(0);
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::List<(core::num) → dynamic> a = core::_GrowableList::•<(core::num) → dynamic>(0);
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart
index bcdc91c..222f8ed 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound leaves typedef types that have
// their arguments defined by the programmer intact in cases when those typedef
// types are used as type arguments of literal lists.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline.expect
index 551f25c..9b7bab7 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T>(T p);
class B<S> {
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
index 15a4e52..86ca2d6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<S> {
final List<A<S>> foo = <A<S>>[];
final List<A<num>> bar = <A<num>>[];
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.expect
index 8f09136..21b79d3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<(self::B::S*) →* dynamic>* foo = <(self::B::S*) →* dynamic>[];
- final field core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
- synthetic constructor •() → self::B<self::B::S*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<(self::B::S%) → dynamic> foo = <(self::B::S%) → dynamic>[];
+ final field core::List<(core::num) → dynamic> bar = <(core::num) → dynamic>[];
+ synthetic constructor •() → self::B<self::B::S%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.modular.expect
index 8f09136..21b79d3 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.modular.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<(self::B::S*) →* dynamic>* foo = <(self::B::S*) →* dynamic>[];
- final field core::List<(core::num*) →* dynamic>* bar = <(core::num*) →* dynamic>[];
- synthetic constructor •() → self::B<self::B::S*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<(self::B::S%) → dynamic> foo = <(self::B::S%) → dynamic>[];
+ final field core::List<(core::num) → dynamic> bar = <(core::num) → dynamic>[];
+ synthetic constructor •() → self::B<self::B::S%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.outline.expect
index 03cb8ec..2418740 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.outline.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<(self::B::S*) →* dynamic>* foo;
- final field core::List<(core::num*) →* dynamic>* bar;
- synthetic constructor •() → self::B<self::B::S*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<(self::B::S%) → dynamic> foo;
+ final field core::List<(core::num) → dynamic> bar;
+ synthetic constructor •() → self::B<self::B::S%>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.transformed.expect
index db93d8e..9c7bed4 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_list_with_generic_argument.dart.weak.transformed.expect
@@ -1,23 +1,13 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-class B<S extends core::Object* = dynamic> extends core::Object {
- final field core::List<(self::B::S*) →* dynamic>* foo = core::_GrowableList::•<(self::B::S*) →* dynamic>(0);
- final field core::List<(core::num*) →* dynamic>* bar = core::_GrowableList::•<(core::num*) →* dynamic>(0);
- synthetic constructor •() → self::B<self::B::S*>*
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+class B<S extends core::Object? = dynamic> extends core::Object {
+ final field core::List<(self::B::S%) → dynamic> foo = core::_GrowableList::•<(self::B::S%) → dynamic>(0);
+ final field core::List<(core::num) → dynamic> bar = core::_GrowableList::•<(core::num) → dynamic>(0);
+ synthetic constructor •() → self::B<self::B::S%>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart
index b6016b3..f49c235 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// typedef types that are themselves used as type arguments of literal maps.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline.expect
index 43ea88c..8924ab9 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T extends num>(T p);
var a = <A, A>{};
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline_modelled.expect
index cebe024..b88eb51 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
main() {}
typedef A<T extends num>(T p);
var a = <A, A>{};
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect
index 0914a2c..910a982 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.modular.expect
index 0914a2c..910a982 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.modular.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect
index 9f56108..1cc4a7b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.outline.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a;
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::Map<(core::num) → dynamic, (core::num) → dynamic> a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect
index 0914a2c..910a982 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_literal_map.dart.weak.transformed.expect
@@ -1,7 +1,7 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-static field core::Map<(core::num*) →* dynamic, (core::num*) →* dynamic>* a = <(core::num*) →* dynamic, (core::num*) →* dynamic>{};
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+static field core::Map<(core::num) → dynamic, (core::num) → dynamic> a = <(core::num) → dynamic, (core::num) → dynamic>{};
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart
index 691e4ad..db92c8d 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart
@@ -1,17 +1,17 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides `dynamic` as the type
// argument for those positions in type argument lists of typedef types that
// have the bound omitted in the corresponding type parameter.
typedef A<T>(T p);
-A a;
+A a = throw '';
class C {
- A foo() => null;
+ A foo() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline.expect
index 3913f88..4b7c7c1 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline.expect
@@ -1,9 +1,8 @@
-// @dart = 2.9
typedef A<T>(T p);
-A a;
+A a = throw '';
class C {
- A foo() => null;
+ A foo() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline_modelled.expect
index 154d206..1ae8c7b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.textual_outline_modelled.expect
@@ -1,8 +1,7 @@
-// @dart = 2.9
-A a;
+A a = throw '';
class C {
- A foo() => null;
+ A foo() => throw '';
}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.expect
index 900d197..29e6bb6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo() → (dynamic) →* dynamic
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo() → (dynamic) → dynamic
+ return throw "";
}
-static field (dynamic) →* dynamic a;
+static field (dynamic) → dynamic a = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.modular.expect
index 900d197..29e6bb6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.modular.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo() → (dynamic) →* dynamic
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo() → (dynamic) → dynamic
+ return throw "";
}
-static field (dynamic) →* dynamic a;
+static field (dynamic) → dynamic a = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.outline.expect
index a33ccb5..c81585e 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.outline.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
;
- method foo() → (dynamic) →* dynamic
+ method foo() → (dynamic) → dynamic
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
-static field (dynamic) →* dynamic a;
+static field (dynamic) → dynamic a;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.transformed.expect
index 900d197..29e6bb6 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_omitted_bound.dart.weak.transformed.expect
@@ -1,24 +1,14 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
class C extends core::Object {
- synthetic constructor •() → self::C*
+ synthetic constructor •() → self::C
: super core::Object::•()
;
- method foo() → (dynamic) →* dynamic
- return null;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
+ method foo() → (dynamic) → dynamic
+ return throw "";
}
-static field (dynamic) →* dynamic a;
+static field (dynamic) → dynamic a = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart
index 141ef41..9b32686 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound provides type arguments to raw
// typedef types that are themselves used as bounds of type parameters.
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline.expect
index 9653282..f90dddc 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
typedef A<T extends num>(T p);
class B<T extends A> {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline_modelled.expect
index 304fdf3..fb74707 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.textual_outline_modelled.expect
@@ -1,4 +1,3 @@
-// @dart = 2.9
class B<T extends A> {}
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect
index f32d1b22..dd0bdac 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+class B<T extends (core::num) → dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.modular.expect
index f32d1b22..dd0bdac 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.modular.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+class B<T extends (core::num) → dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect
index 8f890d3..fa14b1b 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.outline.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+class B<T extends (core::num) → dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect
index f32d1b22..dd0bdac 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_raw_in_bound.dart.weak.transformed.expect
@@ -1,21 +1,11 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::num*> = (T*) →* dynamic;
-class B<T extends (core::num*) →* dynamic> extends core::Object {
- synthetic constructor •() → self::B<self::B::T*>*
+typedef A<contravariant T extends core::num> = (T) → dynamic;
+class B<T extends (core::num) → dynamic> extends core::Object {
+ synthetic constructor •() → self::B<self::B::T>
: super core::Object::•()
;
- abstract member-signature get _identityHashCode() → core::int*; -> core::Object::_identityHashCode
- abstract member-signature method _instanceOf(dynamic instantiatorTypeArguments, dynamic functionTypeArguments, dynamic type) → core::bool*; -> core::Object::_instanceOf
- abstract member-signature method _simpleInstanceOf(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOf
- abstract member-signature method _simpleInstanceOfTrue(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfTrue
- abstract member-signature method _simpleInstanceOfFalse(dynamic type) → core::bool*; -> core::Object::_simpleInstanceOfFalse
- abstract member-signature operator ==(dynamic other) → core::bool*; -> core::Object::==
- abstract member-signature get hashCode() → core::int*; -> core::Object::hashCode
- abstract member-signature method toString() → core::String*; -> core::Object::toString
- abstract member-signature method noSuchMethod(core::Invocation* invocation) → dynamic; -> core::Object::noSuchMethod
- abstract member-signature get runtimeType() → core::Type*; -> core::Object::runtimeType
}
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart
index b195ba2..2147afe 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart
@@ -1,7 +1,7 @@
// Copyright (c) 2018, 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.
-// @dart=2.9
+
// This test checks that instantiate to bound produces correct super-bounded
// types from raw typedef types that refer to F-bounded typedefs.
@@ -9,6 +9,6 @@
typedef B<S extends A<S>>(S p);
-B b;
+B b = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline.expect
index 7ca164d..d15bb21 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
typedef A<T>(T p);
typedef B<S extends A<S>>(S p);
-B b;
+B b = throw '';
main() {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline_modelled.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline_modelled.expect
index 4c6a47a..7eee4b43 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline_modelled.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.textual_outline_modelled.expect
@@ -1,5 +1,4 @@
-// @dart = 2.9
-B b;
+B b = throw '';
main() {}
typedef A<T>(T p);
typedef B<S extends A<S>>(S p);
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.expect
index 4280623..b139a88 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
-static field ((dynamic) →* dynamic) →* dynamic b;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant S extends (S) → dynamic = (dynamic) → dynamic> = (S) → dynamic;
+static field ((dynamic) → dynamic) → dynamic b = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.modular.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.modular.expect
index 4280623..b139a88 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.modular.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.modular.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
-static field ((dynamic) →* dynamic) →* dynamic b;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant S extends (S) → dynamic = (dynamic) → dynamic> = (S) → dynamic;
+static field ((dynamic) → dynamic) → dynamic b = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.outline.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.outline.expect
index 32182bf..0340a16 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.outline.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.outline.expect
@@ -1,9 +1,9 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
-static field ((dynamic) →* dynamic) →* dynamic b;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant S extends (S) → dynamic = (dynamic) → dynamic> = (S) → dynamic;
+static field ((dynamic) → dynamic) → dynamic b;
static method main() → dynamic
;
diff --git a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.transformed.expect b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.transformed.expect
index 4280623..b139a88 100644
--- a/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.transformed.expect
+++ b/pkg/front_end/testcases/instantiate_to_bound/typedef_super_bounded_type.dart.weak.transformed.expect
@@ -1,8 +1,8 @@
-library;
+library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;
-typedef A<contravariant T extends core::Object* = dynamic> = (T*) →* dynamic;
-typedef B<contravariant S extends (S*) →* dynamic = (dynamic) →* dynamic> = (S*) →* dynamic;
-static field ((dynamic) →* dynamic) →* dynamic b;
+typedef A<contravariant T extends core::Object? = dynamic> = (T%) → dynamic;
+typedef B<contravariant S extends (S) → dynamic = (dynamic) → dynamic> = (S) → dynamic;
+static field ((dynamic) → dynamic) → dynamic b = throw "";
static method main() → dynamic {}
diff --git a/pkg/front_end/testcases/modular.status b/pkg/front_end/testcases/modular.status
index 7fa67cd..a1b7a94 100644
--- a/pkg/front_end/testcases/modular.status
+++ b/pkg/front_end/testcases/modular.status
@@ -56,6 +56,7 @@
inference/generic_methods_handle_override_of_non_generic_with_generic: TypeCheckError
inference/infer_method_missing_params: TypeCheckError
inference/infer_types_on_generic_instantiations_infer: TypeCheckError
+inference/instantiate_tearoff_of_call2: TypeCheckError
inference/mixin_inference_outwards_3: TypeCheckError
inference/mixin_inference_outwards_4: TypeCheckError
inference/mixin_inference_unification_1: TypeCheckError
diff --git a/pkg/front_end/testcases/textual_outline.status b/pkg/front_end/testcases/textual_outline.status
index b9079b7..c38ad6c 100644
--- a/pkg/front_end/testcases/textual_outline.status
+++ b/pkg/front_end/testcases/textual_outline.status
@@ -108,8 +108,6 @@
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/later: FormatterCrash
macros/augment_class: FormatterCrash
macros/augment_concrete: FormatterCrash
diff --git a/pkg/front_end/testcases/weak.status b/pkg/front_end/testcases/weak.status
index 82204c5..f65a46a 100644
--- a/pkg/front_end/testcases/weak.status
+++ b/pkg/front_end/testcases/weak.status
@@ -178,8 +178,6 @@
inference/do_not_infer_overridden_fields_that_explicitly_say_dynamic_infer: TypeCheckError
inference/downwards_inference_for_each: RuntimeError # Issue #36382
inference/downwards_inference_on_list_literals_infer_downwards: RuntimeError
-inference/future_then_upwards: RuntimeError
-inference/future_then_upwards_2: RuntimeError
inference/generic_methods_correctly_recognize_generic_upper_bound: TypeCheckError
inference/generic_methods_do_not_infer_invalid_override_of_generic_method: TypeCheckError
inference/generic_methods_handle_override_of_non_generic_with_generic: TypeCheckError
@@ -187,7 +185,7 @@
inference/infer_type_regardless_of_declaration_order_or_cycles: RuntimeError
inference/infer_types_on_generic_instantiations_4: RuntimeError
inference/infer_types_on_generic_instantiations_infer: TypeCheckError
-inference/instantiate_to_bounds_generic_has_bound_defined_after transform: RuntimeError
+inference/instantiate_tearoff_of_call2: TypeCheckError
inference/mixin_inference_outwards_3: TypeCheckError
inference/mixin_inference_outwards_4: TypeCheckError
inference/mixin_inference_unification_1: TypeCheckError
diff --git a/pkg/front_end/testing.json b/pkg/front_end/testing.json
index 435e80e..793a556 100644
--- a/pkg/front_end/testing.json
+++ b/pkg/front_end/testing.json
@@ -323,6 +323,7 @@
"testcases/inference/for_in_loop_promotion\\.dart$",
"testcases/inference/future_union_upwards_generic_methods\\.dart$",
"testcases/inference/generic_methods_infer_generic_instantiation\\.dart$",
+ "testcases/inference/generic_methods_infer_generic_instantiation2\\.dart$",
"testcases/inference/overloaded_int_operators\\.dart$",
"testcases/instantiate_to_bound/non_simple_many\\.dart$",
"testcases/instantiate_to_bound/non_simple_suppress_consequence\\.dart$",
diff --git a/pkg/vm/lib/transformations/ffi/common.dart b/pkg/vm/lib/transformations/ffi/common.dart
index c99635a..a34a828 100644
--- a/pkg/vm/lib/transformations/ffi/common.dart
+++ b/pkg/vm/lib/transformations/ffi/common.dart
@@ -7,6 +7,12 @@
library vm.transformations.ffi;
+import 'package:front_end/src/api_unstable/vm.dart'
+ show
+ messageFfiLeafCallMustNotReturnHandle,
+ messageFfiLeafCallMustNotTakeHandle,
+ templateFfiTypeInvalid,
+ templateFfiTypeMismatch;
import 'package:kernel/ast.dart';
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
import 'package:kernel/core_types.dart';
@@ -981,6 +987,180 @@
]),
)..fileOffset = fileOffset;
}
+
+ /// Prevents the struct from being tree-shaken in TFA by invoking its
+ /// constructor in a `_nativeEffect` expression.
+ Expression invokeCompoundConstructor(
+ Expression nestedExpression, Class compoundClass) {
+ final constructor = compoundClass.constructors
+ .firstWhere((c) => c.name == Name("#fromTypedDataBase"));
+ return BlockExpression(
+ Block([
+ ExpressionStatement(StaticInvocation(
+ nativeEffectMethod,
+ Arguments([
+ ConstructorInvocation(
+ constructor,
+ Arguments([
+ StaticInvocation(
+ uint8ListFactory,
+ Arguments([
+ ConstantExpression(IntConstant(1)),
+ ]))
+ ..fileOffset = nestedExpression.fileOffset,
+ ]))
+ ..fileOffset = nestedExpression.fileOffset
+ ])))
+ ]),
+ nestedExpression)
+ ..fileOffset = nestedExpression.fileOffset;
+ }
+
+ /// Creates an invocation to asFunctionInternal.
+ ///
+ /// Adds a native effect invoking a compound constructors if this is used
+ /// as return type.
+ Expression buildAsFunctionInternal({
+ required Expression functionPointer,
+ required DartType nativeSignature,
+ required DartType dartSignature,
+ required bool isLeaf,
+ required int fileOffset,
+ }) {
+ final asFunctionInternalInvocation = StaticInvocation(
+ asFunctionInternal,
+ Arguments([
+ functionPointer,
+ BoolLiteral(isLeaf),
+ ], types: [
+ dartSignature,
+ nativeSignature,
+ ]))
+ ..fileOffset = fileOffset;
+
+ if (dartSignature is FunctionType) {
+ final returnType = dartSignature.returnType;
+ if (returnType is InterfaceType) {
+ final clazz = returnType.classNode;
+ if (clazz.superclass == structClass || clazz.superclass == unionClass) {
+ return invokeCompoundConstructor(asFunctionInternalInvocation, clazz);
+ }
+ }
+ }
+
+ return asFunctionInternalInvocation;
+ }
+
+ /// Returns
+ /// - `true` if leaf
+ /// - `false` if not leaf
+ /// - `null` if the expression is not valid (e.g. non-const bool, null)
+ bool? getIsLeafBoolean(StaticInvocation node) {
+ for (final named in node.arguments.named) {
+ if (named.name == 'isLeaf') {
+ final expr = named.value;
+ if (expr is BoolLiteral) {
+ return expr.value;
+ } else if (expr is ConstantExpression) {
+ final constant = expr.constant;
+ if (constant is BoolConstant) {
+ return constant.value;
+ }
+ }
+ // isLeaf is passed some invalid value.
+ return null;
+ }
+ }
+ // isLeaf defaults to false.
+ return false;
+ }
+
+ void ensureLeafCallDoesNotUseHandles(
+ InterfaceType nativeType, bool isLeaf, TreeNode reportErrorOn) {
+ // Handles are only disallowed for leaf calls.
+ if (isLeaf == false) {
+ return;
+ }
+
+ bool error = false;
+
+ // Check if return type is Handle.
+ final functionType = nativeType.typeArguments[0];
+ if (functionType is FunctionType) {
+ final returnType = functionType.returnType;
+ if (returnType is InterfaceType) {
+ if (returnType.classNode == handleClass) {
+ diagnosticReporter.report(messageFfiLeafCallMustNotReturnHandle,
+ reportErrorOn.fileOffset, 1, reportErrorOn.location?.file);
+ error = true;
+ }
+ }
+ // Check if any of the argument types are Handle.
+ for (DartType param in functionType.positionalParameters) {
+ if ((param as InterfaceType).classNode == handleClass) {
+ diagnosticReporter.report(messageFfiLeafCallMustNotTakeHandle,
+ reportErrorOn.fileOffset, 1, reportErrorOn.location?.file);
+ error = true;
+ }
+ }
+ }
+
+ if (error) {
+ throw FfiStaticTypeError();
+ }
+ }
+
+ void ensureNativeTypeToDartType(
+ DartType nativeType, DartType dartType, TreeNode reportErrorOn,
+ {bool allowHandle: false}) {
+ final DartType correspondingDartType = convertNativeTypeToDartType(
+ nativeType,
+ allowCompounds: true,
+ allowHandle: allowHandle)!;
+ if (dartType == correspondingDartType) return;
+ if (env.isSubtypeOf(correspondingDartType, dartType,
+ SubtypeCheckMode.ignoringNullabilities)) {
+ return;
+ }
+ diagnosticReporter.report(
+ templateFfiTypeMismatch.withArguments(dartType, correspondingDartType,
+ nativeType, currentLibrary.isNonNullableByDefault),
+ reportErrorOn.fileOffset,
+ 1,
+ reportErrorOn.location?.file);
+ throw FfiStaticTypeError();
+ }
+
+ void ensureNativeTypeValid(DartType nativeType, TreeNode reportErrorOn,
+ {bool allowHandle: false,
+ bool allowCompounds: false,
+ bool allowInlineArray = false}) {
+ if (!_nativeTypeValid(nativeType,
+ allowCompounds: allowCompounds,
+ allowHandle: allowHandle,
+ allowInlineArray: allowInlineArray)) {
+ diagnosticReporter.report(
+ templateFfiTypeInvalid.withArguments(
+ nativeType, currentLibrary.isNonNullableByDefault),
+ reportErrorOn.fileOffset,
+ 1,
+ reportErrorOn.location?.file);
+ throw FfiStaticTypeError();
+ }
+ }
+
+ /// The Dart type system does not enforce that NativeFunction return and
+ /// parameter types are only NativeTypes, so we need to check this.
+ bool _nativeTypeValid(DartType nativeType,
+ {bool allowCompounds: false,
+ bool allowHandle = false,
+ bool allowInlineArray = false}) {
+ return convertNativeTypeToDartType(nativeType,
+ allowCompounds: allowCompounds,
+ allowHandle: allowHandle,
+ allowInlineArray: allowInlineArray) !=
+ null;
+ }
}
/// Returns all libraries including the ones from component except for platform
@@ -1044,3 +1224,7 @@
bool get isPartial =>
[for (final abi in Abi.values) this[abi]].contains(null);
}
+
+/// Used internally for abnormal control flow to prevent cascading error
+/// messages.
+class FfiStaticTypeError implements Exception {}
diff --git a/pkg/vm/lib/transformations/ffi/native.dart b/pkg/vm/lib/transformations/ffi/native.dart
index bc63d3a..feaa323 100644
--- a/pkg/vm/lib/transformations/ffi/native.dart
+++ b/pkg/vm/lib/transformations/ffi/native.dart
@@ -19,7 +19,7 @@
import 'package:kernel/target/targets.dart' show DiagnosticReporter;
import 'package:kernel/type_environment.dart';
-import 'common.dart' show FfiTransformer;
+import 'common.dart' show FfiStaticTypeError, FfiTransformer;
/// Transform @FfiNative annotated functions into FFI native function pointer
/// functions.
@@ -186,19 +186,13 @@
]))
..fileOffset = fileOffset;
- // NativeFunctionPointer.asFunction
- // <Double Function(Double), double Function(double)>(..., isLeaf:true)
- final asFunctionInvocation = StaticInvocation(
- asFunctionMethod,
- Arguments(<Expression>[
- fromAddressInvocation
- ], types: <DartType>[
- ffiFunctionType,
- dartFunctionType
- ], named: <NamedExpression>[
- NamedExpression('isLeaf', BoolLiteral(isLeaf))
- ]))
- ..fileOffset = fileOffset;
+ final asFunctionInvocation = buildAsFunctionInternal(
+ functionPointer: fromAddressInvocation,
+ dartSignature: dartFunctionType,
+ nativeSignature: ffiFunctionType,
+ isLeaf: isLeaf,
+ fileOffset: fileOffset,
+ );
// static final _doXyz$FfiNative$Ptr = ...
final fieldName =
@@ -413,6 +407,19 @@
final wrappedDartFunctionType =
_wrapFunctionType(dartFunctionType, ffiFunctionType);
+ final nativeType = InterfaceType(
+ nativeFunctionClass, Nullability.legacy, [ffiFunctionType]);
+ try {
+ ensureNativeTypeValid(nativeType, node);
+ ensureNativeTypeToDartType(nativeType, wrappedDartFunctionType, node);
+ ensureLeafCallDoesNotUseHandles(nativeType, isLeaf, node);
+ } on FfiStaticTypeError {
+ // It's OK to swallow the exception because the diagnostics issued will
+ // cause compilation to fail. By continuing, we can report more
+ // diagnostics before compilation ends.
+ return node;
+ }
+
final parent = node.parent;
var fileUri = currentLibrary.fileUri;
diff --git a/pkg/vm/lib/transformations/ffi/use_sites.dart b/pkg/vm/lib/transformations/ffi/use_sites.dart
index 725db11..f95320e 100644
--- a/pkg/vm/lib/transformations/ffi/use_sites.dart
+++ b/pkg/vm/lib/transformations/ffi/use_sites.dart
@@ -6,16 +6,12 @@
show
messageFfiExceptionalReturnNull,
messageFfiExpectedConstant,
- messageFfiLeafCallMustNotReturnHandle,
- messageFfiLeafCallMustNotTakeHandle,
templateFfiDartTypeMismatch,
templateFfiExpectedConstantArg,
templateFfiExpectedExceptionalReturn,
templateFfiExpectedNoExceptionalReturn,
templateFfiExtendsOrImplementsSealedClass,
- templateFfiNotStatic,
- templateFfiTypeInvalid,
- templateFfiTypeMismatch;
+ templateFfiNotStatic;
import 'package:kernel/ast.dart';
import 'package:kernel/class_hierarchy.dart' show ClassHierarchy;
@@ -30,7 +26,13 @@
import 'abi.dart' show wordSize;
import 'native_type_cfe.dart';
import 'common.dart'
- show NativeType, FfiTransformer, nativeTypeSizes, WORD_SIZE, UNKNOWN;
+ show
+ FfiStaticTypeError,
+ FfiTransformer,
+ NativeType,
+ nativeTypeSizes,
+ UNKNOWN,
+ WORD_SIZE;
import 'finalizable.dart';
/// Checks and replaces calls to dart:ffi compound fields and methods.
@@ -106,7 +108,7 @@
try {
_ensureNotExtendsOrImplementsSealedClass(node);
return super.visitClass(node);
- } on _FfiStaticTypeError {
+ } on FfiStaticTypeError {
// It's OK to swallow the exception because the diagnostics issued will
// cause compilation to fail. By continuing, we can report more
// diagnostics before compilation ends.
@@ -154,7 +156,7 @@
final pointer = node.arguments.positional[0];
final pointerType =
pointer.getStaticType(staticTypeContext!) as InterfaceType;
- _ensureNativeTypeValid(pointerType, pointer,
+ ensureNativeTypeValid(pointerType, pointer,
allowCompounds: true, allowInlineArray: true);
final typeArg = pointerType.typeArguments.single;
@@ -187,7 +189,7 @@
target == unionPointerGetElemAt) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node, allowCompounds: true);
+ ensureNativeTypeValid(nativeType, node, allowCompounds: true);
return _replaceGetRef(node);
} else if (target == structPointerSetRef ||
@@ -196,33 +198,33 @@
target == unionPointerSetElemAt) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node, allowCompounds: true);
+ ensureNativeTypeValid(nativeType, node, allowCompounds: true);
return _replaceSetRef(node);
} else if (target == structArrayElemAt || target == unionArrayElemAt) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node, allowCompounds: true);
+ ensureNativeTypeValid(nativeType, node, allowCompounds: true);
return _replaceRefArray(node);
} else if (target == arrayArrayElemAt) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node,
+ ensureNativeTypeValid(nativeType, node,
allowInlineArray: true, allowCompounds: true);
return _replaceArrayArrayElemAt(node);
} else if (target == arrayArrayAssignAt) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node,
+ ensureNativeTypeValid(nativeType, node,
allowInlineArray: true, allowCompounds: true);
return _replaceArrayArrayElemAt(node, setter: true);
} else if (target == sizeOfMethod) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node, allowCompounds: true);
+ ensureNativeTypeValid(nativeType, node, allowCompounds: true);
if (nativeType is InterfaceType) {
Expression? inlineSizeOf = _inlineSizeOf(nativeType);
@@ -235,58 +237,34 @@
nativeFunctionClass, Nullability.legacy, [node.arguments.types[0]]);
final DartType dartType = node.arguments.types[1];
- _ensureNativeTypeValid(nativeType, node);
- _ensureNativeTypeToDartType(nativeType, dartType, node);
+ ensureNativeTypeValid(nativeType, node);
+ ensureNativeTypeToDartType(nativeType, dartType, node);
_ensureIsLeafIsConst(node);
- _ensureLeafCallDoesNotUseHandles(nativeType, node);
+ final isLeaf = getIsLeafBoolean(node) ?? false;
+ ensureLeafCallDoesNotUseHandles(nativeType, isLeaf, node);
- final replacement = _replaceLookupFunction(node);
-
- if (dartType is FunctionType) {
- final returnType = dartType.returnType;
- if (returnType is InterfaceType) {
- final clazz = returnType.classNode;
- if (clazz.superclass == structClass ||
- clazz.superclass == unionClass) {
- return _invokeCompoundConstructor(replacement, clazz);
- }
- }
- }
- return replacement;
+ return _replaceLookupFunction(node);
} else if (target == asFunctionMethod) {
final dartType = node.arguments.types[1];
final InterfaceType nativeType = InterfaceType(
nativeFunctionClass, Nullability.legacy, [node.arguments.types[0]]);
- _ensureNativeTypeValid(nativeType, node);
- _ensureNativeTypeToDartType(nativeType, dartType, node);
+ ensureNativeTypeValid(nativeType, node);
+ ensureNativeTypeToDartType(nativeType, dartType, node);
_ensureIsLeafIsConst(node);
- _ensureLeafCallDoesNotUseHandles(nativeType, node);
+
+ final isLeaf = getIsLeafBoolean(node) ?? false;
+ ensureLeafCallDoesNotUseHandles(nativeType, isLeaf, node);
final DartType nativeSignature = nativeType.typeArguments[0];
- bool? isLeaf = _getIsLeafBoolean(node);
- if (isLeaf == null) {
- isLeaf = false;
- }
-
- // Inline function body to make all type arguments instantiated.
- final replacement = StaticInvocation(
- asFunctionInternal,
- Arguments([node.arguments.positional[0], BoolLiteral(isLeaf)],
- types: [dartType, nativeSignature]));
-
- if (dartType is FunctionType) {
- final returnType = dartType.returnType;
- if (returnType is InterfaceType) {
- final clazz = returnType.classNode;
- if (clazz.superclass == structClass ||
- clazz.superclass == unionClass) {
- return _invokeCompoundConstructor(replacement, clazz);
- }
- }
- }
- return replacement;
+ return buildAsFunctionInternal(
+ functionPointer: node.arguments.positional[0],
+ nativeSignature: nativeSignature,
+ dartSignature: dartType,
+ isLeaf: isLeaf,
+ fileOffset: node.fileOffset,
+ );
} else if (target == fromFunctionMethod) {
final DartType nativeType = InterfaceType(
nativeFunctionClass, Nullability.legacy, [node.arguments.types[0]]);
@@ -295,8 +273,8 @@
_ensureIsStaticFunction(func);
- _ensureNativeTypeValid(nativeType, node);
- _ensureNativeTypeToDartType(nativeType, dartType, node);
+ ensureNativeTypeValid(nativeType, node);
+ ensureNativeTypeToDartType(nativeType, dartType, node);
final funcType = dartType as FunctionType;
@@ -383,7 +361,7 @@
} else if (target == allocateMethod) {
final DartType nativeType = node.arguments.types[0];
- _ensureNativeTypeValid(nativeType, node, allowCompounds: true);
+ ensureNativeTypeValid(nativeType, node, allowCompounds: true);
// Inline the body to get rid of a generic invocation of sizeOf.
// TODO(http://dartbug.com/39964): Add `alignmentOf<T>()` call.
@@ -406,7 +384,7 @@
.withoutTypeParameters) as FunctionType);
}
}
- } on _FfiStaticTypeError {
+ } on FfiStaticTypeError {
// It's OK to swallow the exception because the diagnostics issued will
// cause compilation to fail. By continuing, we can report more
// diagnostics before compilation ends.
@@ -415,39 +393,11 @@
return node;
}
- /// Prevents the struct from being tree-shaken in TFA by invoking its
- /// constructor in a `_nativeEffect` expression.
- Expression _invokeCompoundConstructor(
- Expression nestedExpression, Class compoundClass) {
- final constructor = compoundClass.constructors
- .firstWhere((c) => c.name == Name("#fromTypedDataBase"));
- return BlockExpression(
- Block([
- ExpressionStatement(StaticInvocation(
- nativeEffectMethod,
- Arguments([
- ConstructorInvocation(
- constructor,
- Arguments([
- StaticInvocation(
- uint8ListFactory,
- Arguments([
- ConstantExpression(IntConstant(1)),
- ]))
- ..fileOffset = nestedExpression.fileOffset,
- ]))
- ..fileOffset = nestedExpression.fileOffset
- ])))
- ]),
- nestedExpression)
- ..fileOffset = nestedExpression.fileOffset;
- }
-
Expression _invokeCompoundConstructors(
Expression nestedExpression, List<Class> compoundClasses) =>
compoundClasses
.distinct()
- .fold(nestedExpression, _invokeCompoundConstructor);
+ .fold(nestedExpression, invokeCompoundConstructor);
Expression? _inlineSizeOf(InterfaceType nativeType) {
final Class nativeClass = nativeType.classNode;
@@ -503,15 +453,15 @@
.substituteType(lookupFunctionType.withoutTypeParameters)
as FunctionType);
- bool? isLeaf = _getIsLeafBoolean(node);
- if (isLeaf == null) {
- isLeaf = false;
- }
+ final isLeaf = getIsLeafBoolean(node) ?? false;
- return StaticInvocation(
- asFunctionInternal,
- Arguments([lookupResult, BoolLiteral(isLeaf)],
- types: [dartSignature, nativeSignature]));
+ return buildAsFunctionInternal(
+ functionPointer: lookupResult,
+ nativeSignature: nativeSignature,
+ dartSignature: dartSignature,
+ isLeaf: isLeaf,
+ fileOffset: node.fileOffset,
+ );
}
// We need to rewrite calls to 'fromFunction' into two calls, representing the
@@ -777,7 +727,7 @@
node.receiver.getStaticType(staticTypeContext!);
final DartType nativeType = _pointerTypeGetTypeArg(pointerType)!;
- _ensureNativeTypeValid(nativeType, node, allowCompounds: true);
+ ensureNativeTypeValid(nativeType, node, allowCompounds: true);
Expression? inlineSizeOf = _inlineSizeOf(nativeType as InterfaceType);
if (inlineSizeOf != null) {
@@ -795,7 +745,7 @@
as FunctionType);
}
}
- } on _FfiStaticTypeError {
+ } on FfiStaticTypeError {
// It's OK to swallow the exception because the diagnostics issued will
// cause compilation to fail. By continuing, we can report more
// diagnostics before compilation ends.
@@ -808,58 +758,6 @@
return pointerType is InterfaceType ? pointerType.typeArguments[0] : null;
}
- void _ensureNativeTypeToDartType(
- DartType nativeType, DartType dartType, Expression node,
- {bool allowHandle: false}) {
- final DartType correspondingDartType = convertNativeTypeToDartType(
- nativeType,
- allowCompounds: true,
- allowHandle: allowHandle)!;
- if (dartType == correspondingDartType) return;
- if (env.isSubtypeOf(correspondingDartType, dartType,
- SubtypeCheckMode.ignoringNullabilities)) {
- return;
- }
- diagnosticReporter.report(
- templateFfiTypeMismatch.withArguments(dartType, correspondingDartType,
- nativeType, currentLibrary.isNonNullableByDefault),
- node.fileOffset,
- 1,
- node.location?.file);
- throw _FfiStaticTypeError();
- }
-
- void _ensureNativeTypeValid(DartType nativeType, Expression node,
- {bool allowHandle: false,
- bool allowCompounds: false,
- bool allowInlineArray = false}) {
- if (!_nativeTypeValid(nativeType,
- allowCompounds: allowCompounds,
- allowHandle: allowHandle,
- allowInlineArray: allowInlineArray)) {
- diagnosticReporter.report(
- templateFfiTypeInvalid.withArguments(
- nativeType, currentLibrary.isNonNullableByDefault),
- node.fileOffset,
- 1,
- node.location?.file);
- throw _FfiStaticTypeError();
- }
- }
-
- /// The Dart type system does not enforce that NativeFunction return and
- /// parameter types are only NativeTypes, so we need to check this.
- bool _nativeTypeValid(DartType nativeType,
- {bool allowCompounds: false,
- bool allowHandle = false,
- bool allowInlineArray = false}) {
- return convertNativeTypeToDartType(nativeType,
- allowCompounds: allowCompounds,
- allowHandle: allowHandle,
- allowInlineArray: allowInlineArray) !=
- null;
- }
-
void _ensureIsStaticFunction(Expression node) {
if ((node is StaticGet && node.target is Procedure) ||
(node is ConstantExpression &&
@@ -871,7 +769,7 @@
node.fileOffset,
1,
node.location?.file);
- throw _FfiStaticTypeError();
+ throw FfiStaticTypeError();
}
/// Returns the class that should not be implemented or extended.
@@ -928,36 +826,12 @@
klass.fileOffset,
1,
klass.location?.file);
- throw _FfiStaticTypeError();
+ throw FfiStaticTypeError();
}
}
- // Returns
- // - `true` if leaf
- // - `false` if not leaf
- // - `null` if the expression is not valid (e.g. non-const bool, null)
- bool? _getIsLeafBoolean(StaticInvocation node) {
- for (final named in node.arguments.named) {
- if (named.name == 'isLeaf') {
- final expr = named.value;
- if (expr is BoolLiteral) {
- return expr.value;
- } else if (expr is ConstantExpression) {
- final constant = expr.constant;
- if (constant is BoolConstant) {
- return constant.value;
- }
- }
- // isLeaf is passed some invalid value.
- return null;
- }
- }
- // isLeaf defaults to false.
- return false;
- }
-
void _ensureIsLeafIsConst(StaticInvocation node) {
- final isLeaf = _getIsLeafBoolean(node);
+ final isLeaf = getIsLeafBoolean(node);
if (isLeaf == null) {
diagnosticReporter.report(
templateFfiExpectedConstantArg.withArguments('isLeaf'),
@@ -966,43 +840,11 @@
node.location?.file);
// Throw so we don't get another error about not replacing
// `lookupFunction`, which will shadow the above error.
- throw _FfiStaticTypeError();
- }
- }
-
- void _ensureLeafCallDoesNotUseHandles(
- InterfaceType nativeType, StaticInvocation node) {
- // Handles are only disallowed for leaf calls.
- final isLeaf = _getIsLeafBoolean(node);
- if (isLeaf == null || isLeaf == false) {
- return;
- }
-
- // Check if return type is Handle.
- final functionType = nativeType.typeArguments[0];
- if (functionType is FunctionType) {
- final returnType = functionType.returnType;
- if (returnType is InterfaceType) {
- if (returnType.classNode == handleClass) {
- diagnosticReporter.report(messageFfiLeafCallMustNotReturnHandle,
- node.fileOffset, 1, node.location?.file);
- }
- }
- // Check if any of the argument types are Handle.
- for (DartType param in functionType.positionalParameters) {
- if ((param as InterfaceType).classNode == handleClass) {
- diagnosticReporter.report(messageFfiLeafCallMustNotTakeHandle,
- node.fileOffset, 1, node.location?.file);
- }
- }
+ throw FfiStaticTypeError();
}
}
}
-/// Used internally for abnormal control flow to prevent cascading error
-/// messages.
-class _FfiStaticTypeError implements Exception {}
-
extension<T extends Object> on List<T> {
/// Order-preserved distinct elements.
List<T> distinct() {
diff --git a/tests/ffi/ffi_native_test.dart b/tests/ffi/ffi_native_test.dart
index 44b35fb..808c70c 100644
--- a/tests/ffi/ffi_native_test.dart
+++ b/tests/ffi/ffi_native_test.dart
@@ -8,29 +8,10 @@
import 'dart:ffi';
import 'dart:nativewrappers';
-// Error: FFI leaf call must not have Handle return type.
-@FfiNative<Handle Function()>("foo", isLeaf: true) //# 01: compile-time error
-external Object foo(); //# 01: compile-time error
-
-// Error: FFI leaf call must not have Handle argument types.
-@FfiNative<Void Function(Handle)>("bar", //# 02: compile-time error
- isLeaf: true) //# 02: compile-time error
-external void bar(Object); //# 02: compile-time error
-
class Classy {
@FfiNative<IntPtr Function(IntPtr)>('ReturnIntPtr')
external static int returnIntPtrStatic(int x);
- // Error: Missing receiver in FfiNative annotation.
- @FfiNative<Void Function(IntPtr)>('doesntmatter') //# 03: compile-time error
- external void badMissingReceiver(int v); //# 03: compile-time error
-
- // Error: Class doesn't extend NativeFieldWrapperClass1 - can't be converted
- // to Pointer.
- @FfiNative<Void Function(Pointer<Void>, IntPtr)>(//# 04: compile-time error
- 'doesntmatter') //# 04: compile-time error
- external void badHasReceiverPointer(int v); //# 04: compile-time error
-
@FfiNative<Void Function(Handle, IntPtr)>('doesntmatter')
external void goodHasReceiverHandle(int v);
}
@@ -39,10 +20,6 @@
@FfiNative<IntPtr Function(IntPtr)>('ReturnIntPtr')
external static int returnIntPtrStatic(int x);
- // Error: Missing receiver in FfiNative annotation.
- @FfiNative<Void Function(IntPtr)>('doesntmatter') //# 05: compile-time error
- external void badMissingReceiver(int v); //# 05: compile-time error
-
@FfiNative<Void Function(Pointer<Void>, IntPtr)>('doesntmatter')
external void goodHasReceiverPointer(int v);
@@ -50,19 +27,6 @@
external void goodHasReceiverHandle(int v);
}
-// Error: Too many FfiNative parameters.
-@FfiNative<Handle Function(IntPtr, IntPtr)>(//# 06: compile-time error
- 'doesntmatter') //# 06: compile-time error
-external Object badTooManyFfiParameter(int v); //# 06: compile-time error
-
-// Error: Too few FfiNative parameters.
-@FfiNative<Handle Function(IntPtr)>('doesntmatter') //# 07: compile-time error
-external Object badTooFewFfiParameter(int v, int v2); //# 07: compile-time error
-
-// Error: FfiNatives must be marked external (and by extension have no body).
-@FfiNative<Void Function()>('doesntmatter') //# 08: compile-time error
-void mustBeMarkedExternal() {} //# 08: compile-time error
-
// Regression test: Ensure same-name FfiNative functions don't collide in the
// top-level namespace, but instead live under their parent (Library, Class).
class A {
@@ -75,32 +39,6 @@
external static void foo();
}
-class DoesNotExtend implements NativeFieldWrapperClass1 {
- // Error: Receiver type can't be converted to Pointer since it doesn't extend
- // NativeFieldWrapperClass1.
- @FfiNative<IntPtr Function(Pointer<Void>, Handle)>(//# 09: compile-time error
- 'doesntmatter') //# 09: compile-time error
- external int bad1(DoesNotExtend obj); //# 09: compile-time error
-
- // Error: Parameter type can't be converted to Pointer since it doesn't extend
- // NativeFieldWrapperClass1.
- @FfiNative<IntPtr Function(Handle, Pointer<Void>)>(//# 10: compile-time error
- 'doesntmatter') //# 10: compile-time error
- external int bad2(DoesNotExtend obj); //# 10: compile-time error
-
- // Error: Parameter type can't be converted to Pointer since it doesn't extend
- // NativeFieldWrapperClass1.
- @FfiNative<IntPtr Function(Pointer<Void>)>(//# 11: compile-time error
- 'doesntmatter') //# 11: compile-time error
- external static int bad3(DoesNotExtend obj); //# 11: compile-time error
+void main() {
+ /* Intentionally empty: Checks that the transform succeeds. */
}
-
-// Error: 'FfiNative' can't be declared with optional parameters.
-@FfiNative<Void Function([Double])>('doesntmatter') //# 12: compile-time error
-external static int badOptParam(); //# 12: compile-time error
-
-// Error: 'FfiNative' can't be declared with named parameters.
-@FfiNative<Void Function({Double})>('doesntmatter') //# 13: compile-time error
-external static int badNamedParam(); //# 13: compile-time error
-
-void main() {/* Intentionally empty: Compile-time error tests. */}
diff --git a/tests/ffi/vmspecific_static_checks_ffinative_test.dart b/tests/ffi/vmspecific_static_checks_ffinative_test.dart
new file mode 100644
index 0000000..24bd3d4
--- /dev/null
+++ b/tests/ffi/vmspecific_static_checks_ffinative_test.dart
@@ -0,0 +1,97 @@
+// Copyright (c) 2022, 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.
+
+// NOTE: There is no `test/ffi_2/...` version of this test since annotations
+// with type arguments isn't supported in that version of Dart.
+
+import 'dart:ffi';
+import 'dart:nativewrappers';
+
+void main() {
+ /* Intentionally empty: Compile-time error tests. */
+}
+
+// Error: FFI leaf call must not have Handle return type.
+@FfiNative<Handle Function()>("foo", isLeaf: true) //# 01: compile-time error
+external Object foo(); //# 01: compile-time error
+
+// Error: FFI leaf call must not have Handle argument types.
+@FfiNative<Void Function(Handle)>("bar", //# 02: compile-time error
+ isLeaf: true) //# 02: compile-time error
+external void bar(Object); //# 02: compile-time error
+
+class Classy {
+ // Error: Missing receiver in FfiNative annotation.
+ @FfiNative<Void Function(IntPtr)>('doesntmatter') //# 03: compile-time error
+ external void badMissingReceiver(int v); //# 03: compile-time error
+
+ // Error: Class doesn't extend NativeFieldWrapperClass1 - can't be converted
+ // to Pointer.
+ @FfiNative<Void Function(Pointer<Void>, IntPtr)>(//# 04: compile-time error
+ 'doesntmatter') //# 04: compile-time error
+ external void badHasReceiverPointer(int v); //# 04: compile-time error
+}
+
+class NativeClassy extends NativeFieldWrapperClass1 {
+ // Error: Missing receiver in FfiNative annotation.
+ @FfiNative<Void Function(IntPtr)>('doesntmatter') //# 05: compile-time error
+ external void badMissingReceiver(int v); //# 05: compile-time error
+}
+
+// Error: Too many FfiNative parameters.
+@FfiNative<Handle Function(IntPtr, IntPtr)>(//# 06: compile-time error
+ 'doesntmatter') //# 06: compile-time error
+external Object badTooManyFfiParameter(int v); //# 06: compile-time error
+
+// Error: Too few FfiNative parameters.
+@FfiNative<Handle Function(IntPtr)>('doesntmatter') //# 07: compile-time error
+external Object badTooFewFfiParameter(int v, int v2); //# 07: compile-time error
+
+// Error: FfiNatives must be marked external (and by extension have no body).
+@FfiNative<Void Function()>('doesntmatter') //# 08: compile-time error
+void mustBeMarkedExternal() {} //# 08: compile-time error
+
+class DoesNotExtend implements NativeFieldWrapperClass1 {
+ // Error: Receiver type can't be converted to Pointer since it doesn't extend
+ // NativeFieldWrapperClass1.
+ @FfiNative<IntPtr Function(Pointer<Void>, Handle)>(//# 09: compile-time error
+ 'doesntmatter') //# 09: compile-time error
+ external int bad1(DoesNotExtend obj); //# 09: compile-time error
+
+ // Error: Parameter type can't be converted to Pointer since it doesn't extend
+ // NativeFieldWrapperClass1.
+ @FfiNative<IntPtr Function(Handle, Pointer<Void>)>(//# 10: compile-time error
+ 'doesntmatter') //# 10: compile-time error
+ external int bad2(DoesNotExtend obj); //# 10: compile-time error
+
+ // Error: Parameter type can't be converted to Pointer since it doesn't extend
+ // NativeFieldWrapperClass1.
+ @FfiNative<IntPtr Function(Pointer<Void>)>(//# 11: compile-time error
+ 'doesntmatter') //# 11: compile-time error
+ external static int bad3(DoesNotExtend obj); //# 11: compile-time error
+}
+
+// Error: 'FfiNative' can't be declared with optional parameters.
+@FfiNative<Void Function([Double])>('doesntmatter') //# 12: compile-time error
+external static int badOptParam(); //# 12: compile-time error
+
+// Error: 'FfiNative' can't be declared with named parameters.
+@FfiNative<Void Function({Double})>('doesntmatter') //# 13: compile-time error
+external static int badNamedParam(); //# 13: compile-time error
+
+// TODO(https://dartbug.com/49412): Implement in analyzer.
+@FfiNative<IntPtr Function(Double)>('doesntmatter') //# 14: compile-time error
+external int wrongFfiParameter(int v); //# 14: compile-time error
+
+// TODO(https://dartbug.com/49412): Implement in analyzer.
+@FfiNative<IntPtr Function(IntPtr)>('doesntmatter') //# 15: compile-time error
+external double wrongFfiReturnType(int v); //# 15: compile-time error
+
+// TODO(https://dartbug.com/49412): Implement in analyzer.
+@FfiNative<int Function(Double)>('doesntmatter') //# 16: compile-time error
+external int nonFfiParameter(int v); //# 16: compile-time error
+
+// TODO(https://dartbug.com/49412): Implement in analyzer.
+@FfiNative<double Function(IntPtr)>('doesntmatter') //# 17: compile-time error
+external double nonFfiReturnType(int v); //# 17: compile-time error
diff --git a/tools/VERSION b/tools/VERSION
index 42e501c..c439ee5b 100644
--- a/tools/VERSION
+++ b/tools/VERSION
@@ -27,5 +27,5 @@
MAJOR 2
MINOR 18
PATCH 0
-PRERELEASE 266
+PRERELEASE 267
PRERELEASE_PATCH 0
\ No newline at end of file